[R] Traitement de fichier texte unicode

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

[R] Traitement de fichier texte unicode

#1

Message par pierrotm777 »

Bonjour,
Je souhaite reformatter un fichier texte avec des caractères unicode (russe) par exemple.
Je souhaiterais aprés traitement retrouver mes caractères russe !
Voici mon script :
► Afficher le texte
Merci de votre aide !!!
Fichiers joints
test_unicode.txt
(4.63 Kio) Téléchargé 53 fois
Modifié en dernier par pierrotm777 le ven. 14 oct. 2011 14:47, modifié 2 fois.
Avatar du membre
sksbir
Niveau 7
Niveau 7
Messages : 384
Enregistré le : lun. 26 oct. 2009 17:57
Localisation : Lyon
Status : Hors ligne

Re: [..]Traitement de fichier texte unicode

#2

Message par sksbir »

bonjour
la solution est ici : $hFichier = FileOpen($Fichier, 2+128)

attention à la modération : je crois bien qu'il faut un espace entre [..] et le titre...
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11830
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..]Traitement de fichier texte unicode

#3

Message par Tlem »

sksbir a écrit :attention à la modération : je crois bien qu'il faut un espace entre [..] et le titre...
Pffff, j’arrête pas de corriger les titres depuis quelques jours (pas d'espace, pas de balise, titre bidon, bourré de fautes, etc ...). C'est vrai que ça me saoul au bout d'un moment !!!
J'ai vraiment l'impression de faire que ça. :cry:
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Traitement de fichier texte unicode

#4

Message par pierrotm777 »

Désolé Tlem, promis je vais faire attention :oops:
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

Re: [..]Traitement de fichier texte unicode

#5

Message par pierrotm777 »

sksbir a écrit :bonjour
la solution est ici : $hFichier = FileOpen($Fichier, 2+128)
Avec l'option 2, j'écrase mon original, je ne garderais que l'option 128 .

J'ai donc modifié mon script ainsi, mais le tableau ne se rempli alors plus !
► Afficher le texte
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Traitement de fichier texte unicode

#6

Message par mikell »

Ben voui parce qu'il faut donner à _FileReadToArray() le chemin/nom du fichier en paramètre
_FileReadToArray($file,$aArray)
De FileOpen, point :)

Faudrait plutôt aller dans l'include File.au3 voir cette fonction _FileReadToArray() pour essayer d'y remplacer dedans
Local $hFile = FileOpen($sFilePath, $FO_READ)
par
Local $hFile = FileOpen($sFilePath, $FO_UTF8)
Modifié en dernier par mikell le jeu. 13 oct. 2011 15:54, modifié 1 fois.
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Traitement de fichier texte unicode

#7

Message par pierrotm777 »

J'avais pensé effectivement à ceci ( _FileReadToArray($file,$aArray) ).
Mais sans succés :|
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Traitement de fichier texte unicode

#8

Message par mikell »

Argh t'as mal lu mon post ?
A l'intérieur de la fonction _FileReadToArray() ya un FileOpen à modifier, par défaut il traite les textes en ANSI ($FO_READ = 0) ^^
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Traitement de fichier texte unicode

#9

Message par pierrotm777 »

Aprés lecture de l'aide plusieurs fois , je ne vois pas d'option dans _FileReadToArray afin de lui faire lire en UTF8 ! :|
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Traitement de fichier texte unicode

#10

Message par pierrotm777 »

Désolé, oui je viens de comprendre que je dois modifier la fonction !
► Afficher le texte
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Traitement de fichier texte unicode

#11

Message par mikell »

pierrotm777 a écrit :Aprés lecture de l'aide plusieurs fois , je ne vois pas d'option dans _FileReadToArray afin de lui faire lire en UTF8 ! :|
Re-argh Image
Tu vas dans le dossier C:\Program Files\AutoIt3\Include
Dedans ya un fichier File.au3 (c'est le #include <File.au3>)
Dans ce fichier ya la fonction _FileReadToArray que tu utilises
Dans le code de cette fonction, tu remplaces
Local $hFile = FileOpen($sFilePath, $FO_READ) qui ouvre en ANSI
par
Local $hFile = FileOpen($sFilePath, $FO_UTF8) pour ouvrir en unicode
Modifié en dernier par mikell le jeu. 13 oct. 2011 16:12, modifié 1 fois.
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Traitement de fichier texte unicode

#12

Message par pierrotm777 »

Cela ne semble pas suffisant ! :|
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Traitement de fichier texte unicode

#13

Message par mikell »

Ya un truc
Avec le File.au3 modifié je viens d'essayer

Code : Tout sélectionner

#include <Array.au3>
#include <File.au3>
Global $aArray

_FileReadToArray("test_unicode.txt",$aArray)
_ArrayDisplay($aArray)
et ça marche, j'ai mon array en russe

EDIT
:shock: marrant, si je modifie pas le File.au3 ça marche aussi
Le souci doit venir du formatage du texte
Tu pourrais pas mettre un exemple du texte souhaité à l'arrivée ?
Modifié en dernier par mikell le jeu. 13 oct. 2011 16:40, modifié 1 fois.
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Traitement de fichier texte unicode

#14

Message par pierrotm777 »

Oui , je sais bien ! J'ai aussi fais ce test avec le _ArrayDisplay où tous les caractères sont correctes !
C'est aprés le traitement que ça ne va plus !
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Traitement de fichier texte unicode

#15

Message par mikell »

Tu pourrais pas mettre un exemple du texte tel que tu le veux après traitement ?
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Traitement de fichier texte unicode

#16

Message par pierrotm777 »

Voici une ligne originale:

Code : Tout sélectionner

RU  442121  Мокрый Мичкас   Пензенская Область     ПАЧЕЛМСКИЙ РАЙОН             53.3425 43.5986 4
Il y a ici 12 champs séparés par des tabulations.(certains champs , ici, sont vides).
Je voudrais juste reformatter cette ligne afin d'avoir dans l'ordre:

Code : Tout sélectionner

"442121","+53.3425","43.5986","Мокрый Мичкас", etc ...
d'où mon code final:

Code : Tout sélectionner

$aVilles[$x] = '"'& $ZipCode & '","' & $Latitude & '","' & $Longitude & '","' & $NomVille & '","'& $Departement & '","' & $Region &'",""'
Mais peut importe l'ordre, le but étant de récupérer les noms ayant des caractères unicode ! :mrgreen:
Avatar du membre
PandiPanda
Membre émérite
Membre émérite
Messages : 656
Enregistré le : mar. 19 juil. 2011 14:03
Localisation : Bruxelles
Status : Hors ligne

Re: [..] Traitement de fichier texte unicode

#17

Message par PandiPanda »

vous devriez trouvé un moyen de récuperer vos information a partir de la non?
► Afficher le texte
Modifié en dernier par PandiPanda le jeu. 13 oct. 2011 17:16, modifié 1 fois.
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Traitement de fichier texte unicode

#18

Message par pierrotm777 »

j'ai une erreur en ligne 11
Avatar du membre
PandiPanda
Membre émérite
Membre émérite
Messages : 656
Enregistré le : mar. 19 juil. 2011 14:03
Localisation : Bruxelles
Status : Hors ligne

Re: [..] Traitement de fichier texte unicode

#19

Message par PandiPanda »

j'ai re éditer mon script.
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Traitement de fichier texte unicode

#20

Message par mikell »

Marchent très bien chez moi les 2 scripts du Panda ^^
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Répondre