Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1400 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VB] Ecriture d'un ficher txt en unicode

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VB] Ecriture d'un ficher txt en unicode

n°914808
Ice Falcon
Posté le 04-12-2004 à 16:55:06  profilanswer
 

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

mood
Publicité
Posté le 04-12-2004 à 16:55:06  profilanswer
 

n°914836
Ice Falcon
Posté le 04-12-2004 à 17:42:20  profilanswer
 

Personne pour m'aider...? :-(

n°914936
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 04-12-2004 à 22:06:09  profilanswer
 

Code :
  1. Dim chaine As String
  2. chaine = "&KeyWord_1=" & KeyWord1
  3. Open DestFile For Output As #FileNum
  4. Print #FileNum, StrConv(chaine, vbUnicode)


---------------
J'ai un string dans l'array (Paris Hilton)
n°915050
Ice Falcon
Posté le 05-12-2004 à 12:24:36  profilanswer
 

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...
:-(

n°915061
Ice Falcon
Posté le 05-12-2004 à 12:33:26  profilanswer
 

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!
 
 
 

n°915066
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 05-12-2004 à 12:44:00  profilanswer
 

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


Message édité par Harkonnen le 05-12-2004 à 12:46:12

---------------
J'ai un string dans l'array (Paris Hilton)
n°915068
Ice Falcon
Posté le 05-12-2004 à 12:51:08  profilanswer
 

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!!)

n°915070
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 05-12-2004 à 12:54:18  profilanswer
 

Code :
  1. Sub Test()
  2.     Dim chaine As String
  3.     Open "C:\\test.txt" For Output As #1
  4.     chaine = Cells(1, 1).Value
  5.     Print #1, StrConv(chaine, vbUnicode)
  6.     Close #1
  7. End Sub


donne ceci :

Citation :

8=D>@<0F8>==K5  8AB>G=8:8


:/


---------------
J'ai un string dans l'array (Paris Hilton)
n°915072
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 05-12-2004 à 13:04:27  profilanswer
 

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 :/


---------------
J'ai un string dans l'array (Paris Hilton)
n°915134
Profil sup​primé
Posté le 05-12-2004 à 15:35:18  answer
 

Citation :

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!  


 
c'est tres curieux parce que j'obtient bien ca dans le fichier test.txt :
 
?????????????? ?????????  
 
avec le code :
 

Citation :

Sub Test()  
    Dim chaine As String  
    Open "C:\\test.txt" For Output As #1  
    chaine = Cells(1, 1).Value  
    Print #1, chaine  
    Close #1  
End Sub


Message édité par Profil supprimé le 05-12-2004 à 15:36:22
mood
Publicité
Posté le 05-12-2004 à 15:35:18  profilanswer
 

n°915136
Ice Falcon
Posté le 05-12-2004 à 15:37:44  profilanswer
 

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?

n°915137
Ice Falcon
Posté le 05-12-2004 à 15:39:18  profilanswer
 

Bonjour Gargamail,
 
C'est justement le ???? ???? que je cherche à éviter!!
je souhaiterai récupérer le texte russe dans mon fichier texte.

n°918520
mick1884
Intelligence Non Artificelle
Posté le 09-12-2004 à 01:00:30  profilanswer
 

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...
 


Message édité par mick1884 le 09-12-2004 à 01:08:18

---------------
Le programme et toujours piratable, quelqu'en soit l'auteur, un autre homme le contournera...
n°918528
mick1884
Intelligence Non Artificelle
Posté le 09-12-2004 à 01:32:27  profilanswer
 

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


---------------
Le programme et toujours piratable, quelqu'en soit l'auteur, un autre homme le contournera...

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VB] Ecriture d'un ficher txt en unicode

 

Sujets relatifs
ouvrir un fichier excel en lecture/écritureforcer l'écriture
Ecriture dans fichierJDBC, SQL Serveur et Unicode
[Qt]Réussite d'une écriture avec un QTextStream ?db2 command line et Unicode
DOS Batch et UnicodeProblème de noob ecriture/lecture fichier texte
Stopper une ecritureEcriture/Lecture de fichier binaire (ios::binary) avec << et >>
Plus de sujets relatifs à : [VB] Ecriture d'un ficher txt en unicode


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR