Pour info, simple variante, qui efface sans supprimer le fichier existant.
Code : Tout sélectionner
'LISTE DES ENCODAGES POSSIBLES /
' { "ISO-IR-6", RTL_TEXTENCODING_ASCII_US },
' { "ANSI_X3.4-1986", RTL_TEXTENCODING_ASCII_US },
' { "ISO_646.IRV:1991", RTL_TEXTENCODING_ASCII_US },
' { "ASCII", RTL_TEXTENCODING_ASCII_US },
' { "ISO646-US", RTL_TEXTENCODING_ASCII_US },
' { "US", RTL_TEXTENCODING_ASCII_US },
' { "IBM367", RTL_TEXTENCODING_ASCII_US },
' { "CP367", RTL_TEXTENCODING_ASCII_US },
' { "CSASCII", RTL_TEXTENCODING_ASCII_US },
' { "ISO-8859-1", RTL_TEXTENCODING_ISO_8859_1 },
' { "ISO_8859-1:1987", RTL_TEXTENCODING_ISO_8859_1 },
' { "ISO-IR-100", RTL_TEXTENCODING_ISO_8859_1 },
' { "ISO_8859-1", RTL_TEXTENCODING_ISO_8859_1 },
' { "LATIN1", RTL_TEXTENCODING_ISO_8859_1 },
' { "L1", RTL_TEXTENCODING_ISO_8859_1 },
' { "IBM819", RTL_TEXTENCODING_ISO_8859_1 },
' { "CP819", RTL_TEXTENCODING_ISO_8859_1 },
' { "CSISOLATIN1", RTL_TEXTENCODING_ISO_8859_1 },
' { "ISO-8859-2", RTL_TEXTENCODING_ISO_8859_2 },
' { "ISO_8859-2:1987", RTL_TEXTENCODING_ISO_8859_2 },
' { "ISO-IR-101", RTL_TEXTENCODING_ISO_8859_2 },
' { "ISO_8859-2", RTL_TEXTENCODING_ISO_8859_2 },
' { "LATIN2", RTL_TEXTENCODING_ISO_8859_2 },
' { "L2", RTL_TEXTENCODING_ISO_8859_2 },
' { "CSISOLATIN2", RTL_TEXTENCODING_ISO_8859_2 },
' { "ISO-8859-3", RTL_TEXTENCODING_ISO_8859_3 },
' { "ISO_8859-3:1988", RTL_TEXTENCODING_ISO_8859_3 },
' { "ISO-IR-109", RTL_TEXTENCODING_ISO_8859_3 },
' { "ISO_8859-3", RTL_TEXTENCODING_ISO_8859_3 },
' { "LATIN3", RTL_TEXTENCODING_ISO_8859_3 },
' { "L3", RTL_TEXTENCODING_ISO_8859_3 },
' { "CSISOLATIN3", RTL_TEXTENCODING_ISO_8859_3 },
' { "ISO-8859-4", RTL_TEXTENCODING_ISO_8859_4 },
' { "ISO_8859-4:1988", RTL_TEXTENCODING_ISO_8859_4 },
' { "ISO-IR-110", RTL_TEXTENCODING_ISO_8859_4 },
' { "ISO_8859-4", RTL_TEXTENCODING_ISO_8859_4 },
' { "LATIN4", RTL_TEXTENCODING_ISO_8859_4 },
' { "L4", RTL_TEXTENCODING_ISO_8859_4 },
' { "CSISOLATIN4", RTL_TEXTENCODING_ISO_8859_4 },
' { "ISO-8859-5", RTL_TEXTENCODING_ISO_8859_5 },
' { "ISO_8859-5:1988", RTL_TEXTENCODING_ISO_8859_5 },
' { "ISO-IR-144", RTL_TEXTENCODING_ISO_8859_5 },
' { "ISO_8859-5", RTL_TEXTENCODING_ISO_8859_5 },
' { "CYRILLIC", RTL_TEXTENCODING_ISO_8859_5 },
' { "CSISOLATINCYRILLIC", RTL_TEXTENCODING_ISO_8859_5 },
' { "ISO-8859-6", RTL_TEXTENCODING_ISO_8859_6 },
' { "ISO_8859-6:1987", RTL_TEXTENCODING_ISO_8859_6 },
' { "ISO-IR-127", RTL_TEXTENCODING_ISO_8859_6 },
' { "ISO_8859-6", RTL_TEXTENCODING_ISO_8859_6 },
' { "ECMA-114", RTL_TEXTENCODING_ISO_8859_6 },
' { "ASMO-708", RTL_TEXTENCODING_ISO_8859_6 },
' { "ARABIC", RTL_TEXTENCODING_ISO_8859_6 },
' { "CSISOLATINARABIC", RTL_TEXTENCODING_ISO_8859_6 },
' { "ISO-8859-7", RTL_TEXTENCODING_ISO_8859_7 },
' { "ISO_8859-7:1987", RTL_TEXTENCODING_ISO_8859_7 },
' { "ISO-IR-126", RTL_TEXTENCODING_ISO_8859_7 },
' { "ISO_8859-7", RTL_TEXTENCODING_ISO_8859_7 },
' { "ELOT_928", RTL_TEXTENCODING_ISO_8859_7 },
' { "ECMA-118", RTL_TEXTENCODING_ISO_8859_7 },
' { "GREEK", RTL_TEXTENCODING_ISO_8859_7 },
' { "GREEK8", RTL_TEXTENCODING_ISO_8859_7 },
' { "CSISOLATINGREEK", RTL_TEXTENCODING_ISO_8859_7 },
' { "ISO-8859-8", RTL_TEXTENCODING_ISO_8859_8 },
' { "ISO_8859-8:1988", RTL_TEXTENCODING_ISO_8859_8 },
' { "ISO-IR-138", RTL_TEXTENCODING_ISO_8859_8 },
' { "ISO_8859-8", RTL_TEXTENCODING_ISO_8859_8 },
' { "HEBREW", RTL_TEXTENCODING_ISO_8859_8 },
' { "CSISOLATINHEBREW", RTL_TEXTENCODING_ISO_8859_8 },
' { "ISO-8859-9", RTL_TEXTENCODING_ISO_8859_9 },
' { "ISO_8859-9:1989", RTL_TEXTENCODING_ISO_8859_9 },
' { "ISO-IR-148", RTL_TEXTENCODING_ISO_8859_9 },
' { "ISO_8859-9", RTL_TEXTENCODING_ISO_8859_9 },
' { "LATIN5", RTL_TEXTENCODING_ISO_8859_9 },
' { "L5", RTL_TEXTENCODING_ISO_8859_9 },
' { "CSISOLATIN5", RTL_TEXTENCODING_ISO_8859_9 },
' { "ISO-8859-14", RTL_TEXTENCODING_ISO_8859_14 }, // RFC 2047
' { "ISO_8859-15", RTL_TEXTENCODING_ISO_8859_15 },
' { "ISO-8859-15", RTL_TEXTENCODING_ISO_8859_15 }, // RFC 2047
' { "MACINTOSH", RTL_TEXTENCODING_APPLE_ROMAN },
' { "MAC", RTL_TEXTENCODING_APPLE_ROMAN },
' { "CSMACINTOSH", RTL_TEXTENCODING_APPLE_ROMAN },
' { "IBM437", RTL_TEXTENCODING_IBM_437 },
' { "CP437", RTL_TEXTENCODING_IBM_437 },
' { "437", RTL_TEXTENCODING_IBM_437 },
' { "CSPC8CODEPAGE437", RTL_TEXTENCODING_IBM_437 },
' { "IBM850", RTL_TEXTENCODING_IBM_850 },
' { "CP850", RTL_TEXTENCODING_IBM_850 },
' { "850", RTL_TEXTENCODING_IBM_850 },
' { "CSPC850MULTILINGUAL", RTL_TEXTENCODING_IBM_850 },
' { "IBM860", RTL_TEXTENCODING_IBM_860 },
' { "CP860", RTL_TEXTENCODING_IBM_860 },
' { "860", RTL_TEXTENCODING_IBM_860 },
' { "CSIBM860", RTL_TEXTENCODING_IBM_860 },
' { "IBM861", RTL_TEXTENCODING_IBM_861 },
' { "CP861", RTL_TEXTENCODING_IBM_861 },
' { "861", RTL_TEXTENCODING_IBM_861 },
' { "CP-IS", RTL_TEXTENCODING_IBM_861 },
' { "CSIBM861", RTL_TEXTENCODING_IBM_861 },
' { "IBM863", RTL_TEXTENCODING_IBM_863 },
' { "CP863", RTL_TEXTENCODING_IBM_863 },
' { "863", RTL_TEXTENCODING_IBM_863 },
' { "CSIBM863", RTL_TEXTENCODING_IBM_863 },
' { "IBM865", RTL_TEXTENCODING_IBM_865 },
' { "CP865", RTL_TEXTENCODING_IBM_865 },
' { "865", RTL_TEXTENCODING_IBM_865 },
' { "CSIBM865", RTL_TEXTENCODING_IBM_865 },
' { "IBM775", RTL_TEXTENCODING_IBM_775 },
' { "CP775", RTL_TEXTENCODING_IBM_775 },
' { "CSPC775BALTIC", RTL_TEXTENCODING_IBM_775 },
' { "IBM852", RTL_TEXTENCODING_IBM_852 },
' { "CP852", RTL_TEXTENCODING_IBM_852 },
' { "852", RTL_TEXTENCODING_IBM_852 },
' { "CSPCP852", RTL_TEXTENCODING_IBM_852 },
' { "IBM855", RTL_TEXTENCODING_IBM_855 },
' { "CP855", RTL_TEXTENCODING_IBM_855 },
' { "855", RTL_TEXTENCODING_IBM_855 },
' { "CSIBM855", RTL_TEXTENCODING_IBM_855 },
' { "IBM857", RTL_TEXTENCODING_IBM_857 },
' { "CP857", RTL_TEXTENCODING_IBM_857 },
' { "857", RTL_TEXTENCODING_IBM_857 },
' { "CSIBM857", RTL_TEXTENCODING_IBM_857 },
' { "IBM862", RTL_TEXTENCODING_IBM_862 },
' { "CP862", RTL_TEXTENCODING_IBM_862 },
' { "862", RTL_TEXTENCODING_IBM_862 },
' { "CSPC862LATINHEBREW", RTL_TEXTENCODING_IBM_862 },
' { "IBM864", RTL_TEXTENCODING_IBM_864 },
' { "CP864", RTL_TEXTENCODING_IBM_864 },
' { "CSIBM864", RTL_TEXTENCODING_IBM_864 },
' { "IBM866", RTL_TEXTENCODING_IBM_866 },
' { "CP866", RTL_TEXTENCODING_IBM_866 },
' { "866", RTL_TEXTENCODING_IBM_866 },
' { "CSIBM866", RTL_TEXTENCODING_IBM_866 },
' { "IBM869", RTL_TEXTENCODING_IBM_869 },
' { "CP869", RTL_TEXTENCODING_IBM_869 },
' { "869", RTL_TEXTENCODING_IBM_869 },
' { "CP-GR", RTL_TEXTENCODING_IBM_869 },
' { "CSIBM869", RTL_TEXTENCODING_IBM_869 },
' { "WINDOWS-1250", RTL_TEXTENCODING_MS_1250 },
' { "WINDOWS-1251", RTL_TEXTENCODING_MS_1251 },
' { "WINDOWS-1253", RTL_TEXTENCODING_MS_1253 },
' { "WINDOWS-1254", RTL_TEXTENCODING_MS_1254 },
' { "WINDOWS-1255", RTL_TEXTENCODING_MS_1255 },
' { "WINDOWS-1256", RTL_TEXTENCODING_MS_1256 },
' { "WINDOWS-1257", RTL_TEXTENCODING_MS_1257 },
' { "WINDOWS-1258", RTL_TEXTENCODING_MS_1258 },
' { "SHIFT_JIS", RTL_TEXTENCODING_SHIFT_JIS },
' { "MS_KANJI", RTL_TEXTENCODING_SHIFT_JIS },
' { "CSSHIFTJIS", RTL_TEXTENCODING_SHIFT_JIS },
' { "GB2312", RTL_TEXTENCODING_GB_2312 },
' { "CSGB2312", RTL_TEXTENCODING_GB_2312 },
' { "BIG5", RTL_TEXTENCODING_BIG5 },
' { "CSBIG5", RTL_TEXTENCODING_BIG5 },
' { "EUC-JP", RTL_TEXTENCODING_EUC_JP },
' { "EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE",
' RTL_TEXTENCODING_EUC_JP },
' { "CSEUCPKDFMTJAPANESE", RTL_TEXTENCODING_EUC_JP },
' { "ISO-2022-JP", RTL_TEXTENCODING_ISO_2022_JP },
' { "CSISO2022JP", RTL_TEXTENCODING_ISO_2022_JP },
' { "ISO-2022-CN", RTL_TEXTENCODING_ISO_2022_CN },
' { "KOI8-R", RTL_TEXTENCODING_KOI8_R },
' { "CSKOI8R", RTL_TEXTENCODING_KOI8_R },
' { "UTF-7", RTL_TEXTENCODING_UTF7 },
' { "UTF-8", RTL_TEXTENCODING_UTF8 },
' { "ISO-8859-10", RTL_TEXTENCODING_ISO_8859_10 }, // RFC 2047
' { "ISO-8859-13", RTL_TEXTENCODING_ISO_8859_13 }, // RFC 2047
' { "EUC-KR", RTL_TEXTENCODING_EUC_KR },
' { "CSEUCKR", RTL_TEXTENCODING_EUC_KR },
' { "ISO-2022-KR", RTL_TEXTENCODING_ISO_2022_KR },
' { "CSISO2022KR", RTL_TEXTENCODING_ISO_2022_KR },
' { "ISO-10646-UCS-4", RTL_TEXTENCODING_UCS4 },
' { "CSUCS4", RTL_TEXTENCODING_UCS4 },
' { "ISO-10646-UCS-2", RTL_TEXTENCODING_UCS2 },
' { "CSUNICODE", RTL_TEXTENCODING_UCS2 } };
Option Explicit
Private strFilePath As String
'tout réécrire, en UTF8, ou avec l'encodage de son choix
Sub TestReEcrireUTF8()
strFilePath= "c:\temp\test3.txt"
CleanTxtFile(strFilePath)
WriteEncodedText(strFilePath)
End Sub
Sub CleanTxtFile(strFilePath As String)
Dim myTextFile As Object, sf As Object, fileStream As Object
Dim MyFilePath As String
Dim Fichier As String
Dim FileNo As Integer
MyFilePath = convertToURL(strFilePath)
' Garantit format windows/linux de l'url
'utiliser la fonction FileExists pour vérifier l'existence d'un fichier :
If FileExists(MyFilePath) = True Then
'
FileNo = FreeFile ' Establish free file handle
Open MyFilePath For Output As #FileNo
Print #FileNo, ""'efface tout
Close #FileNo
End If
End Sub
Sub WriteEncodedText(strFilePath As String,Optional strEncodage As String)
Dim myTextFile As Object, sf As Object, fileStream As Object
Dim myFilePath As String
myFilePath = convertToURL(strFilePath)
If FileExists(myFilePath) = True Then
print myFilePath
sf = createUnoService("com.sun.star.ucb.SimpleFileAccess")
On Error Goto fichierKO
fileStream = sf.openFileWrite(myFilePath)
myTextFile = createUnoService("com.sun.star.io.TextOutputStream")
myTextFile.OutputStream = fileStream
If IsMissing(strEncodage) Then
strEncodage= """" & "UTF-8" & """"
End If
myTextFile.Encoding = strEncodage
'myTextFile.Encoding = "UTF-8"
'myTextFile.Encoding = "IBM850" ' encodage DOS
myTextFile.writeString("À Lætitia, tous nos vœux " & chr(10))
myTextFile.writeString("Ø å Å Æ Œ " & chr(10))
fileStream.closeOutput
myTextFile.closeOutput
On Error Goto 0
End If
Exit Sub
FichierKO:
Resume FichierKO2
FichierKO2:
On Error Resume Next
MsgBox("File write error !", 16)
fileStream.closeOutput
myTextFile.closeOutput
On Error Goto 0
End Sub