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

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Vbscript - Convertir un fichier TXT du format Unicode vers ANSI

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Vbscript - Convertir un fichier TXT du format Unicode vers ANSI

n°1226617
vleunis
Windows est jamais trop Rapide
Posté le 19-10-2005 à 20:04:07  profilanswer
 

Bonjour a tous,
 
Dans mes recherches précédentes, j'ai essayé de modifier de façon récursives des valeurs éparpillées dans la base de registre.
J'ai opté pour une solution assez simple pour le moment:
1> Export du registre en Reg.
2> Renommer le Reg en Txt.
3> Modifier le fichier TXT de façon automatique
4> Renommer le txt en Reg
5> Importer la modification
 
Le résultat est tres convenable mais les uns séparés des autres.
En effet, l'export du registre créé un fichier en mode unicode qui n'est pas lisible par mon script de modification du TXT.
Il faut donc le modifier en ANSI car la cela fonctionne.
J'ai essayé avec Wordpad et c'est convainquant.
Avez vous une solution pour modifier de façon automatique le type de ce fichier (VBS).
 
Merci.
Vincent.
 
PS: Bien sur je laisserai a dispo le script complet si cela intéresse des personnes.
(BUT: changer les config des postes de travail lors de changements dans le réseau)
 
A+
VL

mood
Publicité
Posté le 19-10-2005 à 20:04:07  profilanswer
 

n°1226642
olivthill
Posté le 19-10-2005 à 21:15:33  profilanswer
 

Voici un petit script pour convertir un fichier unicode, nommé "hello_u.txt" dans mon exemple, en un fichier Ascii, nommé "hello_a.txt". Il marche sous Windows Millennium, et je pense que qu'il marche aussi avec les versions ultérieures de Windows :

Code :
  1. ' Convert Unicode to Ascii
  2. Const ForReading = 1, ForWriting = 2, ForAppending = 8
  3. Const ModeAscii = 0, ModeUnicode = -1
  4. Dim fso, f_in, f_out
  5. Set fso = CreateObject("Scripting.FileSystemObject" )
  6. Set f_in = fso.OpenTextFile("Hello_u.txt", ForReading,, ModeUnicode)
  7. Set f_out = fso.OpenTextFile("Hello_a.txt", ForWriting, true, ModeAscii)
  8. Do Until f_in.AtEndOfStream
  9.    f_out.Write f_in.Read(1)
  10. Loop
  11. f_in.Close
  12. f_out.Close

:)

n°1226925
vleunis
Windows est jamais trop Rapide
Posté le 20-10-2005 à 11:43:16  profilanswer
 

WAAAAAAAAAAAAAAOOOOOOOOOOOOOOOUUUUUUUUUUU
 
Ca marche tres tres bien.
 
Merci pour tout.
Vincent.

n°1659787
pulsar07
Posté le 18-12-2007 à 11:36:40  profilanswer
 

J'y connais pas grand chose mais ASCII et ANSI c'est pas la même chose.
 
Il l'existe l'équivalent:
UNICOD => ANSI
ou  
ASCII => ANSI

n°1659877
olivthill
Posté le 18-12-2007 à 13:11:27  profilanswer
 

Si on veut chipoter, alors chipotons :
 
Unicode s'écrit avec un "e" à la fin, et sans majuscules, sauf pour la première lettre.
Il n'y a pas de "l" apostrophe dans "il existe".
 
La page suivante montre les tables ASCII et ANSI : http://mathbits.com/MathBits/CompSci/Screen/ANSI.htm
Elles sont identiques pour les 26 lettres de l'alphabet, les 10 chiffres, et les signes de ponctuation. Elles sont quasiment identiques pour les autres caractères.

n°1660705
pulsar07
Posté le 19-12-2007 à 16:00:31  profilanswer
 

Bon lol, merci pour tes remarques.
Si j'ai fait cette remarque c'est que je n'étais pas au courant que le codage ANSI était en fait une extension du codage ASCII, donc identique pour les premiers caractères.
 
Aujourd'hui je suis embêté car je souhaiterais pouvoir écrire dans un fichier texte au format ANSI. Mon fichier comporte des caractères accentués et cela me pose problème par la suite.
 
Exemple:  Si je cherche à écrire Elémentaire, j'obtiens le mot suivant: Elꮥntaire
 
Aujourd'hui j'utilise les fonction suivante pour créer et ouvrir un fichier:
 
CreateTexteFile
OpenTextFile
OpenAsTextStream
 
Il n'est me semble t'il pas possible de spécifier un encodage ANSI pour ces fonctions.


Message édité par pulsar07 le 19-12-2007 à 16:01:13
n°1798612
Ultradoux
Posté le 11-10-2008 à 18:18:24  profilanswer
 

Bonjour !
 
Est-il possible de modifier le code de sorte qu'il :
 
- Recherche tous les fichiers texte dont l'extension est .m3u
- Créé un autre fichier .spl contenant le texte du .m3u converti en UCS-2 Litlle Endian
 

Code :
  1. En fait j'ai déjà un peu modifier :
  2. ' Convert Unicode to Ascii
  3. Const ForReading = 1, ForWriting = 2, ForAppending = 8
  4. Const ModeAscii = 0, ModeUnicode = -1
  5. Dim fso, f_in, f_out
  6. Set fso = CreateObject("Scripting.FileSystemObject" )
  7. Set f_in = fso.OpenTextFile("test.m3u", ForReading,, ModeAscii)
  8. Set f_out = fso.OpenTextFile("test.spl", ForWriting, true, ModeUnicode)
  9. Do Until f_in.AtEndOfStream
  10. f_out.Write f_in.Read(1)
  11. Loop
  12. f_in.Close
  13. f_out.Close


 
Donc là il converti bien de ANSI vers UCS-2 Little Endian, mais il faudrait mettre des variable pour qu'il traite tous les .m3u du dossier, et ça je sais pas faire ! Je n'y connais rien en vbs  :D  
 
Merci !

Message cité 1 fois
Message édité par Ultradoux le 11-10-2008 à 19:38:09
n°1970115
nmat
Posté le 01-03-2010 à 10:02:55  profilanswer
 


Bonjour !
 
Je cherche à faire la même chose, c-à-d convertir des fichiers "report.txt" se trouvant dans un ensemble de dossiers.
 
As-tu trouver la solution ?
 
Merci
 
 
 
 

Ultradoux a écrit :

Bonjour !
 
Est-il possible de modifier le code de sorte qu'il :
 
- Recherche tous les fichiers texte dont l'extension est .m3u
- Créé un autre fichier .spl contenant le texte du .m3u converti en UCS-2 Litlle Endian
 

Code :
  1. En fait j'ai déjà un peu modifier :
  2. ' Convert Unicode to Ascii
  3. Const ForReading = 1, ForWriting = 2, ForAppending = 8
  4. Const ModeAscii = 0, ModeUnicode = -1
  5. Dim fso, f_in, f_out
  6. Set fso = CreateObject("Scripting.FileSystemObject" )
  7. Set f_in = fso.OpenTextFile("test.m3u", ForReading,, ModeAscii)
  8. Set f_out = fso.OpenTextFile("test.spl", ForWriting, true, ModeUnicode)
  9. Do Until f_in.AtEndOfStream
  10. f_out.Write f_in.Read(1)
  11. Loop
  12. f_in.Close
  13. f_out.Close


 
Donc là il converti bien de ANSI vers UCS-2 Little Endian, mais il faudrait mettre des variable pour qu'il traite tous les .m3u du dossier, et ça je sais pas faire ! Je n'y connais rien en vbs  :D  
 
Merci !



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

  Vbscript - Convertir un fichier TXT du format Unicode vers ANSI

 

Sujets relatifs
VBScript - Modification d'un fichier par scriptForcer un fichier .xls à s'ouvrir dans excel
probleme de verification de poid d'un fichier en phpVBScript - Renommage automatique des liens Favoris Réseaux
[résolu] lecture des informations d'un fichierAffecter une icone à un type de fichier en batch
Convertir "è" en "é"Insérer fichier dans table sql
mise à jour dans un fichier txt 
Plus de sujets relatifs à : Vbscript - Convertir un fichier TXT du format Unicode vers ANSI


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