Page 2 sur 2

Re: [..] Traitement de fichier texte unicode

Posté : jeu. 13 oct. 2011 17:20
par pierrotm777
D:\Program Files\Ride Runner\Plugins\RRWebRadio\test.au3 (12) : ==> Subscript used with non-Array variable.:
For $i=1 To $array[0]
For $i=1 To $array^ ERROR

Re: [..] Traitement de fichier texte unicode

Posté : jeu. 13 oct. 2011 17:22
par PandiPanda
hmm le fichier .txt est bel et bien dans le meme répertoire du script? :P
sinon faudra mettre le path adéquat ... dans

Code : Tout sélectionner

_FileReadToArray([color=#FF0000]@ScriptDir&"\test_unicode.txt"[/color],$array)

Re: [..] Traitement de fichier texte unicode

Posté : jeu. 13 oct. 2011 17:24
par mikell
La gaffe :mrgreen:

Re: [..] Traitement de fichier texte unicode

Posté : jeu. 13 oct. 2011 17:28
par pierrotm777
Le script était au mauvais endroit, quel idiot :lol: .

Mais mon but final est un fichier texte formaté différemment ! :(

Re: [..] Traitement de fichier texte unicode

Posté : jeu. 13 oct. 2011 17:29
par pierrotm777
J'ai essayé ça mais avec le même pb !
_FileWriteFromArray(@ScriptDir&"\test_unicode_new2.txt",$__pierrotm777)

Re: [..] Traitement de fichier texte unicode

Posté : jeu. 13 oct. 2011 17:35
par mikell

Code : Tout sélectionner

$file2 = FileOen(@ScriptDir&"\test_unicode_new2.txt", [color=#FF0000]129[/color])
_FileWriteFromArray($file2,$__pierrotm777)

Re: [..] Traitement de fichier texte unicode

Posté : jeu. 13 oct. 2011 18:10
par PandiPanda
ceci vous convient? ^^
► Afficher le texte
*Suis pas un expert, mais une grande difference entre UTF16 et UTF8 ? ^^

Re: [..] Traitement de fichier texte unicode

Posté : jeu. 13 oct. 2011 22:10
par jchd
Je suppose que le problème initial tient dans le fait que le fichier texte est au format UTF8 _sans_ BOM. Il n'y a pas de moyen sûr de déterminer par programme si c'est UTF-8 sans BOM ou ANSI ou autre. Le même fichier en UTF-8 avec BOM fonctionne sans problème et sans avoir à rajouter le flag 128 (cf. FileOpen).

Re: [..] Traitement de fichier texte unicode

Posté : ven. 14 oct. 2011 14:47
par pierrotm777
Bon , he bien merci à tous de votre intérêt pour mon problème.
Je viens de réaliser que puisque tout allait bien jusqu'à la mise en tableau, le problème venait après !
En fait le problème survient à la sauvegarde dans la fonction _SaveNewFile dans laquelle la fonction FileOpen
n'ouvre pas le nouveau fichier en UTF8:

J'ai donc remplacé :

Code : Tout sélectionner

$hFichier = FileOpen($Fichier, 2)
par

Code : Tout sélectionner

$hFichier = FileOpen($Fichier, 130)
Et là, je conserve bien mes textes en Russe ! :D
La fonction modifiée:
► Afficher le texte
Pas besoin donc d'un _FileReadToArray modifié !

Le script complet est le suivant !
► Afficher le texte
Merci encore une fois à tous !

Re: [R] Traitement de fichier texte unicode

Posté : sam. 15 oct. 2011 15:54
par pierrotm777
Juste une dernière question .
Je me suis rendu compte que les lignes comportant le mot CEDEX étaient bien non traitées, mais n'étaient pas effacées du
fichier final, la faute, je pense à la fonction ContinueLoop.
J'ai donc remplacé la ligne:

Code : Tout sélectionner

If StringInStr($Var[2],"CEDEX") Then ContinueLoop;bloque toutes les lignes CEDEX
par la ligne

Code : Tout sélectionner

If StringInStr($Var[2],"CEDEX") Then _ArrayPop($Var);bloque toutes les lignes CEDEX
Cela semble fonctionner !
Ma question est juste ! Es ce la bonne méthode pour effacer les lignes non utiles ? :D

Re: [R] Traitement de fichier texte unicode

Posté : sam. 15 oct. 2011 16:03
par pierrotm777
J'ai aussi ajouté l’effacement de la dernière ligne du tableau, (nombre de lignes du tableau) inutile .
Juste ajouter après la ligne:

Code : Tout sélectionner

 _ArrayDelete($aVilles, 0) ; On supprime le nombre d'élément du tableau
la ligne suivante:

Code : Tout sélectionner

_ArrayDelete($aVilles, $aArray[0]) ; On supprime le dernier élément du tableau