Ecriture d'un ficher txt en unicode [VB] - VB/VBA/VBS - Programmation
Marsh Posté le 04-12-2004 à 22:06:09
Code :
|
Marsh Posté le 05-12-2004 à 12:24:36
Bonjour Harkonnen,
Malheureusement, cela ne semble pas suffir : mon ficher txt cible est toujours au format ANSI lorsque je l'ouvre avec un éditeur de texte...
:-(
Marsh Posté le 05-12-2004 à 12:33:26
Permettez moi de reformuler :
J'ai du texte russe en cellule A1 de ma feuille Excel
информационные источники
(je n'ai AUCUNE idée de ce que ça veut dire, j'ai pris ce texte au hasard!)
Et je cherche à créer un fichier unicode test.txt avec ce String. (quand j'ouvre mon fichier avec le notepad, j'ai le texte russe, et non ????? ??????? ???)
Merci!
Marsh Posté le 05-12-2004 à 12:44:00
as tu au moins la police correspondante installée sur ton système ?
edit: laisse tomber cette question, ça n'a rien à voir.
je fais un test avec excel pour voir
Marsh Posté le 05-12-2004 à 12:51:08
Oui, sans aucun doute.
Au risque de dire une bêtise, je n'ai pas le sentiment qu'il s'agisse d'une question de police : c'est avant tout une question de codage en ANSI ou Unicode. En cherchant avec désespoir une solution hier soir, j'ai cru lire que les API I/O de VB ne sont pas compatibles unicode... Mais ça me semble tellement gros qu'il doit bien y avoir une solution!! ça me parait énorme qu'il soit impossible d'écrire des fichiers en russe, chinois, polonais, etc. sous VB... (et le problème est valable dans les deux sens : l'import de texte russe depuis une cellule dans VB ne se fait pas en unicode!!)
Marsh Posté le 05-12-2004 à 12:54:18
Code :
|
donne ceci :
Citation : 8=D>@<0F8>==K5 8AB>G=8:8 |
Marsh Posté le 05-12-2004 à 13:04:27
http://groups.google.fr/groups?hl= [...] c10&rnum=1
effectivement, c'est mal barré ! y'aurait bien une solution "bourrin" à mon avis, qui consisterait à copier la chaine dans un tableau, puis d'ouvrir un fichier binaire pour y copier la chaine octet par octet. bourrin mais je vois pas comment faire autrement
Marsh Posté le 05-12-2004 à 15:35:18
Citation : Permettez moi de reformuler : |
c'est tres curieux parce que j'obtient bien ca dans le fichier test.txt :
?????????????? ?????????
avec le code :
Citation : Sub Test() |
Marsh Posté le 05-12-2004 à 15:37:44
Aïe aïe aïe...
Je n'ai encore jamais fait ça... Il faut récupérer les données dans la cellule avec
Dim donnees() As Data
donnees = ActiveSheet.Range("A1" ).Value
??
Puis-je ensuite convertir la variable donnees en String dans VB pour le travailler avant de la reconvertir en binaire pour l'écrire dans mon fichier texte?
Marsh Posté le 05-12-2004 à 15:39:18
Bonjour Gargamail,
C'est justement le ???? ???? que je cherche à éviter!!
je souhaiterai récupérer le texte russe dans mon fichier texte.
Marsh Posté le 09-12-2004 à 01:00:30
salut ice falcon,
g un module vb6 ki permet de transformer nimporte quel texte en texte UTF8 et unicode, prennant en charge plusieures langues connues... si tu le veux contacte moi et je te lenvoi par mail...
Le modules contient:
- des déclaration de cst
- WtoA (Unicode to ANSI)
- AtoW (ANSI to Unicode)
- EncodeUTF8
- DecodeUTF8
il te sufira donc ensuite de faire:
Sub Test(ValeurAEncoder as string)
Dim chaine As String
chaine=encodeUTF8(ValeurAEncoder)
Open "C:\test.txt" For Output As #1
Print #1, chaine
Close #1
End Sub
Dsl je c pas si sa marche pour Exel, moi je programme en VB6...
Bye...
Marsh Posté le 09-12-2004 à 01:32:27
re
Pourkoi tu crée pa un object richtextbox, ensuite tu copy la valeur de ta celule dedans, et tu fais un SaveFile format rtf
ensuite au chargement ben tu fais un loadfile format rtf ds la richtextbox puis tu copy la valeur ds tes cellule
Marsh Posté le 04-12-2004 à 16:55:06
Bonjour,
Je suis actuellement entrain d'écrire une petite macro (Excel) qui me parse mon tableau et écrit les données dans un ficher texte. Jusque là, tout va bien...
Seul petit hic, c'est que le texte à récupéré est écrit dans 10 langues différentes, donc le russe, le polonais, etc... et par défaut, lorsque je crée mon fichier txt et que j'écris dedans, le codage est en ANSI... or il me le faut impérativement en unicode... Y-a-t-il un paramètre dans la fonction Print que je n'ai pas encore trouvée? ou dans la fonction Open peut-être??
Je suis super preneur de toute piste...!
Merci d'avance!
Exemples de mon code source :
' Attempt to open destination file for output
Open DestFile For Output As #FileNum
Print #FileNum, "&KeyWord_1=" & KeyWord1