Sub test()
'Lecture:
Texte = LireFichierTexteUTF8("C:\Users\polux\Desktop\Mémo UTF-8.txt")
MsgBox "lecture fonction Marcel " & vbNewLine & Texte
'ajout de texte & ecriture
ÉcrireFichierTexteUTF8 Texte & vbNewLine & "et le e accent circonflexe -->ê", "C:\Users\polux\Desktop\Mémo2 UTF-8.txt"
're lecture apres ajout
Texte = LireFichierTexteUTF8("C:\Users\polux\Desktop\Mémo2 UTF-8.txt")
MsgBox Texte
'conversion ANSI To UDF-8
' fonction bimode patricktoulon
Texte = Open_For_Read_Force_Udf_8("C:\Users\polux\Desktop\Mémo 0.txt", texto$)
MsgBox " lecture fonction bimode Patrick d'un fichier ansi " & vbNewLine & texto
'réécriture fonction Marcel
ÉcrireFichierTexteUTF8 texto & vbNewLine & "et le e accent circonflexe -->ê", "C:\Users\polux\Desktop\PMémo2 UTF-8.txt"
'Lecture fonction Marcel
Texte = LireFichierTexteUTF8("C:\Users\polux\Desktop\pMémo2 UTF-8.txt")
MsgBox "lecture fonction Marcel du fichier converti" & vbNewLine & Texte
End Sub
'--------------------------------
'Lire fichier Texte codé en UTF-8
'--------------------------------
'https://docs.microsoft.com/en-us/office/client-developer/access/desktop-database-reference/stream-object-ado-reference
Function LireFichierTexteUTF8(NomCompletFichier As String) As String
Dim MonFlux As Object
Set MonFlux = CreateObject("ADODB.Stream")
With MonFlux
'Regedit Ordinateur\HKEY_CLASSES_ROOT\MIME\Database\Charset
.Charset = "utf-8"
.Open
.LoadFromFile NomCompletFichier
LireFichierTexteUTF8 = .ReadText()
.Close
End With
Set MonFlux = Nothing
End Function
'----------------------------------
'Écrire fichier Texte codé en UTF-8
'----------------------------------
'https://docs.microsoft.com/en-us/office/client-developer/access/desktop-database-reference/stream-object-ado-reference
Sub ÉcrireFichierTexteUTF8(Texte, NomCompletFichier As String)
Dim MonFlux As Object
Set MonFlux = CreateObject("ADODB.Stream")
With MonFlux
'Regedit Ordinateur\HKEY_CLASSES_ROOT\MIME\Database\Charset
.Charset = "utf-8"
.Open
.Position = 0
.WriteText Texte
.SaveToFile NomCompletFichier, 2
.Close
End With
Set MonFlux = Nothing
End Sub
Function Open_For_Read_Force_Udf_8(ByVal fichier$, texto$)
'patricktoulon
Dim lachaine As String, x: x = FreeFile
'lecture binnaire
Open fichier For Binary Access Read As #x: lachaine = String(LOF(x), " "): Get #x, , lachaine: Close #x
If Not lachaine Like "*[Ã|é|è|ç|â|€|«|»|û|ê|…|/ø|ø|À|É|È|Ã|Ö|]*" Then 'si la chaine ne contient pas de carateres sbizarre
texto = lachaine ' alors texto = lachaine
Else ' sinon on stream le fichier avec ADOBD.Stream
With CreateObject("ADODB.Stream")
.Charset = "utf-8": .Open: .LoadFromFile (fichier): texto = .ReadText()
End With
End If
End Function