Ayant ramé pour trouver comment faire je vous offre cette petite source pour vous éviter de fastidieuses recherches... Pour gérer l'unicode sur une forme utilisez les contrôles de Bill Gates "Form 2.0" (FM20.DLL) voici la source pour ces contrôles :
http://www.vbfrance.com/codes/UTILISER-CARACTERES-UNICODE-DANS-VB_23960.aspx
Source / Exemple :
'Version 1.1 réalisée avec Visual Basic 6.0
'Enregistrement du fichier texte au format unicode
Dim FF As Integer
FF = FreeFile 'Variable permettant de stocker un numéro de fichier libre
Open "C:\VotreFichier.txt" For Append As #FF
Print #FF, "ÿþ" 'les caractères ÿþ signale que l'on enregistre le fichier au format unicode
Close #FF
'les caractères ÿþ n'apparaissent pas dans le fichier
'un saut de ligne est automatiquement créé lors de l'enregistrement il apparait sous la forme
'd'un carré
'Ecrire dans un fichier texte au format unicode
Dim Chaine, Chaine2 As String
SautDeLigne = StrConv(vbCrLf, vbUnicode) 'on prépare un saut de ligne en unicode
Chaine = "Du texte"
Chaine2 = "Un autre texte"
'On convertit les String en format unicode
Chaine = StrConv(Chaine, vbUnicode)
Chaine2 = StrConv(Chaine2, vbUnicode)
Open "C:\VotreFichier.txt" For Append As #FF
Print #FF, Chaine 'on écrit une String
Print #FF, SautDeLigne 'On saute une ligne sinon on a un fichier écrit sur une seule ligne
Print #FF, Chaine2 'on écrit une autre String
Print #FF, SautDeLigne 'et on n'oublie pas de sauter une ligne
Close #FF
'Il devrait y avoir un carré au début de chaque ligne du fichier
'Lire un fichier texte au format unicode
Dim inter, Chaine, Chaine2 As String
Open "C:\VotreFichier.txt" For Input As #FF
Line Input #FF, inter 'On passe les caractères ÿþ
Line Input #FF, inter 'On passe le saut de ligne qui est considéré comme une ligne
Line Input #FF, Chaine 'On récupère une ligne
Line Input #FF, inter 'On passe le saut de ligne qui est considéré comme une ligne
Line Input #FF, Chaine2 'On récupère une ligne
Close #FF
'Si les chaines récupérées contiennent des caractères spéciaux elles seront illisibles
'Il va falloir convertir uniquement les caractères spéciaux grace au code suivant
Chaine = Convertisseur(Chaine)
Chaine2 = Convertisseur(Chaine2)
Private Function Convertisseur(ByVal Chaine As String) As String
Dim Intermediaire, Intermediaire2, Intermediaire3 As String
For i = 1 To Len(Chaine) 'boucle pour vérifier chaque caractère
Intermediaire = Mid(Chaine, i, 1)
If IsAlpha(Intermediaire) = True Then 'vérifie si le caractère est dans la table ascii
Intermediaire2 = Intermediaire2 & Intermediaire 'si oui on ne convertit pas
Else
Intermediaire3 = StrConv(Intermediaire, vbFromUnicode) 'sinon on convertit depuis l'unicode ou autre selon vos besoins
Intermediaire2 = Intermediaire2 & Intermediaire3
End If
Next i
Convertisseur = Intermediaire2
End Function
Private Function IsAlpha(ByVal Caractere As String) As Boolean
Dim Code As Integer
On Error GoTo err
Code = Asc(Caractere) 'récupère le code ascii du caractère
If Code > 0 And Code < 256 Then 'si le code est compris entre 0 et 256
IsAlpha = True 'alors c'est un caractère ascii
Exit Function
End If
err:
IsAlpha = False 'sinon ce n'est pas le cas
End Function
Conclusion :
Voilà j'espère que cette source vous sera utile. Si vous trouve des bugs ou des erreurs faites m'en part!
Votre dévoué IceTdrinker ;)
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.