[R] Enregistrer txt sous UTF-8

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
duyen
Niveau 3
Niveau 3
Messages : 47
Enregistré le : jeu. 19 févr. 2009 21:39
Status : Hors ligne

[R] Enregistrer txt sous UTF-8

#1

Message par duyen »

Bonjour,

j'ai une question sur la commande "_ReplaceStringInFile".
je dois remplacer des champs dans un fichier web.config qui est enregistré en UTF-8, mais après la modife, il n'est plus en UTF-8.
Y a t'il une soluce ou une autre méthode?

Voici ma commande:

Code : Tout sélectionner

_ReplaceStringInFile("c:\inetpub\wwwroot\tpo\web.config", $Old, $New)
Merci.
Modifié en dernier par duyen le jeu. 21 avr. 2011 18:16, modifié 1 fois.
Avatar du membre
ZDS
Membre émérite
Membre émérite
Messages : 554
Enregistré le : jeu. 10 juin 2010 10:35
Localisation : 22300 Cul-d'chouette Langue-de-vache
Status : Hors ligne

Re: [..]Enregistrer txt sous UTF-8

#2

Message par ZDS »

Bonjour,

A essayer et à améliorer, j'ai pris la fonction de base dans File.au3, et je l'ai modifiée un chouia (cf ligne 29) :
► Afficher le texteReplaceStringInFileWithUTF8
Normalement ça marche, mais je te laisse tester !

A bientôt !
ZDS : Chef de projet du nAiO (logiciel AutoIt gratuit sous licence CC 4.0 BY-NC-SA)
Tout problème a une solution, donc si il y a pas d'solution, c'est qu'il y a pas d'problème !
duyen
Niveau 3
Niveau 3
Messages : 47
Enregistré le : jeu. 19 févr. 2009 21:39
Status : Hors ligne

Re: [..]Enregistrer txt sous UTF-8

#3

Message par duyen »

Je teste ça et je te dis.
Merci.
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..]Enregistrer txt sous UTF-8

#4

Message par jchd »

Exact, un certain nombre de fonction "fichier texte" dites de haut niveau ne respectent pas l'encodage initial.
Cela fait partie des nombreuses modifs qui s'empilent sur le bureau des UDFs.
Utiliser des fonctions séparées (fileopen avec option qui convient, fileread, ...).
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
duyen
Niveau 3
Niveau 3
Messages : 47
Enregistré le : jeu. 19 févr. 2009 21:39
Status : Hors ligne

Re: [..] Enregistrer txt sous UTF-8

#5

Message par duyen »

ça ne doit pas être la même version, car voici ce que j'ai:
► Afficher le texteReplaceStringInFileWithUTF8
Merci.
Modifié en dernier par duyen le ven. 22 avr. 2011 13:15, modifié 2 fois.
Avatar du membre
ZDS
Membre émérite
Membre émérite
Messages : 554
Enregistré le : jeu. 10 juin 2010 10:35
Localisation : 22300 Cul-d'chouette Langue-de-vache
Status : Hors ligne

Re: [..] Enregistrer txt sous UTF-8

#6

Message par ZDS »

Justement, je te propose une version modifiée ^^
Fais une comparaison, et tu verras trois choses changées :
L3 : _ReplaceStringInFile( ... > _ReplaceStringInFileWithUTF8( ...
L29 : ... $FO_OVERWRITE) > ... $FO_OVERWRITE+256)
L63 : ... _ReplaceStringInFile > ... _ReplaceStringInFileWithUTF8

(la dernière, c'est du commentaire, elle sert à rien).

Donc voila, au lieu d'utiliser dans ton code la fonction _ReplaceStringInFile présente dans File.au3, utilise celle que j'ai modifiée _ReplaceStringInFileWithUTF8 (en faisant quand même un Include de File.au3 au passage) et tu géreras l'UTF8 comme il faut.
ZDS : Chef de projet du nAiO (logiciel AutoIt gratuit sous licence CC 4.0 BY-NC-SA)
Tout problème a une solution, donc si il y a pas d'solution, c'est qu'il y a pas d'problème !
duyen
Niveau 3
Niveau 3
Messages : 47
Enregistré le : jeu. 19 févr. 2009 21:39
Status : Hors ligne

Re: [..] Enregistrer txt sous UTF-8

#7

Message par duyen »

bon je vais refaire le test.
Merci.
duyen
Niveau 3
Niveau 3
Messages : 47
Enregistré le : jeu. 19 févr. 2009 21:39
Status : Hors ligne

Re: [..] Enregistrer txt sous UTF-8

#8

Message par duyen »

Bon je dois être un NOOBs !!!

Voici mon petit bout de code qui me pose problème.

Code : Tout sélectionner

;Modification des Web.Config

    FileCopy("c:\inetpub\wwwroot\pvo\web.config", @ScriptDir&"\logs\pvo\", 1)
        Sleep(1000)
        
    _ReplaceStringInFile("c:\inetpub\wwwroot\pvo\web.config", $Old, $New+256)
        Sleep(1500)
    
    FileCopy("c:\inetpub\wwwroot\tpo\web.config", @ScriptDir&"\logs\tpo\", 1)
        Sleep(1000)
        
    _ReplaceStringInFile("c:\inetpub\wwwroot\tpo\web.config", $Old, $New+256)
        Sleep(1500)

 
Si j'ai bien compris, je ne dois pas modifier le file.au3, mais juste mettre +256 après ma variable?

Merci
Avatar du membre
ZDS
Membre émérite
Membre émérite
Messages : 554
Enregistré le : jeu. 10 juin 2010 10:35
Localisation : 22300 Cul-d'chouette Langue-de-vache
Status : Hors ligne

Re: [..] Enregistrer txt sous UTF-8

#9

Message par ZDS »

Bonjour,

Désolé, non, toujours pas :)

Tu dois AJOUTER la fonction que je t'ai donné (qui s'appelle _ReplaceStringInFileWithUTF8, et pas _ReplaceStringInFile tout court) à ton script, et remplacer toutes les fois où tu utilises _ReplaceStringInFile par _ReplaceStringInFileWithUTF8 sans modifier quoi que ce soit d'autre (pas besoin de toucher aux paramètres, c'est transparent pour le code).

Ton code donnera donc :

Code : Tout sélectionner

;Modification des Web.Config
    FileCopy("c:\inetpub\wwwroot\pvo\web.config", @ScriptDir&"\logs\pvo\", 1)
        Sleep(1000)
    _ReplaceStringInFileWithUTF8("c:\inetpub\wwwroot\pvo\web.config", $Old, $New)
        Sleep(1500)
    FileCopy("c:\inetpub\wwwroot\tpo\web.config", @ScriptDir&"\logs\tpo\", 1)
        Sleep(1000)
    _ReplaceStringInFileWithUTF8("c:\inetpub\wwwroot\tpo\web.config", $Old, $New)
        Sleep(1500)
Mais dans le début du script (ou à la fin si tu préfères), tu n'auras pas oublié d'ajouter le bout de code de mon précédent message :)

A bientôt !
Modifié en dernier par ZDS le ven. 22 avr. 2011 11:17, modifié 1 fois.
ZDS : Chef de projet du nAiO (logiciel AutoIt gratuit sous licence CC 4.0 BY-NC-SA)
Tout problème a une solution, donc si il y a pas d'solution, c'est qu'il y a pas d'problème !
duyen
Niveau 3
Niveau 3
Messages : 47
Enregistré le : jeu. 19 févr. 2009 21:39
Status : Hors ligne

Re: [..] Enregistrer txt sous UTF-8

#10

Message par duyen »

je suis vraiment désolé,

mais je n'arrive pas à le faire fonctionner.

j'ai bien changé mon bout de code

Code : Tout sélectionner

;Modification des Web.Config PVO-TPO

    FileCopy("c:\inetpub\wwwroot\pvo\web.config", @ScriptDir&"\logs\pvo\", 1)
        Sleep(1000)
        
    _ReplaceStringInFileWithUTF8("c:\inetpub\wwwroot\pvo\web.config", "C09981", "C09980")
        Sleep(1500)
    
    FileCopy("c:\inetpub\wwwroot\tpo\web.config", @ScriptDir&"\logs\tpo\", 1)
        Sleep(1000)
        
    _ReplaceStringInFileWithUTF8("c:\inetpub\wwwroot\tpo\web.config", "C09981", "C09980")
        Sleep(1500)
c'est le bout de code que tu me dis d'ajouter que je n'ai pas du comprendre.

dans le file.au3 j'ai fais la modife mais c'est pareil.
j'ai fais les 3 modifications :
► Afficher le texteReplaceStringInFileWithUTF8
Merci.
Modifié en dernier par duyen le ven. 22 avr. 2011 13:17, modifié 1 fois.
Avatar du membre
ZDS
Membre émérite
Membre émérite
Messages : 554
Enregistré le : jeu. 10 juin 2010 10:35
Localisation : 22300 Cul-d'chouette Langue-de-vache
Status : Hors ligne

Re: [..] Enregistrer txt sous UTF-8

#11

Message par ZDS »

Salut.

T'es furieux quand même, aller modifier "File.au3"... ^^ C'est pas du tout ça qu'il fallait faire. juste ajouter la fonction que je t'ai filé à ton script. Ajoute le script entier à un post (en pièce jointe), je te le modifie en conséquence.

PS: Ta première partie de code est bonne.
PS2: Remets "File.au3" comme il l'était.
ZDS : Chef de projet du nAiO (logiciel AutoIt gratuit sous licence CC 4.0 BY-NC-SA)
Tout problème a une solution, donc si il y a pas d'solution, c'est qu'il y a pas d'problème !
duyen
Niveau 3
Niveau 3
Messages : 47
Enregistré le : jeu. 19 févr. 2009 21:39
Status : Hors ligne

Re: [..] Enregistrer txt sous UTF-8

#12

Message par duyen »

j'ai remis ma sauvegarde.!!

Oui je sais, mais quand je n'arrive pas a faire un truc , je test partout avant de reposer une question! :D

Merci pour ton aide.

Voici la page en question
Fichiers joints
Recup_Infos_srv.au3
(7.4 Kio) Téléchargé 70 fois
Avatar du membre
ZDS
Membre émérite
Membre émérite
Messages : 554
Enregistré le : jeu. 10 juin 2010 10:35
Localisation : 22300 Cul-d'chouette Langue-de-vache
Status : Hors ligne

Re: [..] Enregistrer txt sous UTF-8

#13

Message par ZDS »

Re,

Voila la version modifiée, je te l'ai ajoutée en début de script, mais si tu veux, tu peux l'ajouter à ton fichier "Func_Renomme_srv.au3" que j'ai vu dans les includes (pas pu testé jusqu'au bout, puisque je n'ai pas la même archi que toi pour le test).

En tout cas, j'ai lancé jusqu'à l'interface bleuatre, et ça me semble bon. J'ai aussi modifié la troisième ligne d'utilisation du _ReplaceStringInFile par sa version UTF8, celle du connexion_pvo.ini : _ReplaceStringInFileWithUTF8("c:\tomcat5\bin\connexion_pvo.ini", $Old, $New)
Ta ligne d'origine n'est pas perdue, elle est commentée juste en dessous.

Bref, voila une version modifiée. Ça devrait passer.

Tiens moi au courant !
Fichiers joints
Recup_Infos_srv.au3
(10.41 Kio) Téléchargé 74 fois
ZDS : Chef de projet du nAiO (logiciel AutoIt gratuit sous licence CC 4.0 BY-NC-SA)
Tout problème a une solution, donc si il y a pas d'solution, c'est qu'il y a pas d'problème !
duyen
Niveau 3
Niveau 3
Messages : 47
Enregistré le : jeu. 19 févr. 2009 21:39
Status : Hors ligne

Re: [..] Enregistrer txt sous UTF-8

#14

Message par duyen »

Merci pour la modife, mais il me remet toujours un encodage ANSI...
Cdlt
Avatar du membre
ZDS
Membre émérite
Membre émérite
Messages : 554
Enregistré le : jeu. 10 juin 2010 10:35
Localisation : 22300 Cul-d'chouette Langue-de-vache
Status : Hors ligne

Re: [..] Enregistrer txt sous UTF-8

#15

Message par ZDS »

Chez moi l'encodage passe très bien. J'ai juste été obligé de créer un fichier bidon pour le test, et un dossier Logs dans le répertoire du script.

Tu as moyen d'envoyer en pièce jointe un fichier exemple de ton c:\inetpub\wwwroot\tpo\web.config et ton c:\inetpub\wwwroot\pvo\web.config ? Parce que si ça se trouve la modif n'est pas effectuée (ajoute peut etre un #RequireAdmin au début du script, ça ne règle pas toujours tout, mais bon, pour les tests...).

PS: Tu indentes bizarrement ton code, pas très lisible par ailleurs, surtout pour relire et t'aider ^^ Si je fais des modifs, tu m'autorises à fusionner les bouts de codes semblables?
PS2: J'oublie aussi le fichier "Func_Renomme_srv.au3", je l'enlève pour le moment, je commente les deux fonctions AutoLog_MagC() et Add_GrpAdm().
PS3: J'aime bien, mais je préfère la Xbox360 :D
PS4: Je te joins une version remaniée de ton code, les codes fusionnés pour le débug (traces dans ton fichier "Renom_20042011.log" et l'avancement de la ProgressBar sont dans une même fonction, d'où un gain en lisibilité plus que certain ^^), la mise en commentaire des fonctions "chiantes" pour les tests (redémarrage machine, modification du nom de l'ordi, etc...) et l'indentation du code : Bref, aucune modif fondamentale, mais avec des fichiers d'exemple je pense pouvoir t'aider.
Fichiers joints
Recup_Infos_srv.au3
(9.55 Kio) Téléchargé 63 fois
ZDS : Chef de projet du nAiO (logiciel AutoIt gratuit sous licence CC 4.0 BY-NC-SA)
Tout problème a une solution, donc si il y a pas d'solution, c'est qu'il y a pas d'problème !
duyen
Niveau 3
Niveau 3
Messages : 47
Enregistré le : jeu. 19 févr. 2009 21:39
Status : Hors ligne

Re: [..] Enregistrer txt sous UTF-8

#16

Message par duyen »

Salut,

Si tu veux moi je fais le test avec un fichier txt que je renomme en web.config avec dedans quelquechose a remplacer et je l'enregistre en UTF-8.
Je les places dans C:\inetpub\wwwroot\pvo
et C:\inetpub\wwwroot\tpo

ensuite je lance le script que tu as modifié :
► Afficher le texteReplaceStringInFileWithUTF8
dit moi si ça te vas pour faire les tests ou si tu veux d'autres éléments.

le reste fonctionne. Donc je ne vais pas modifier car sinon je risque d'être perdu dedans... ! :D

PS3: moi je suis plus PS3 :wink:
Modifié en dernier par duyen le ven. 22 avr. 2011 13:18, modifié 1 fois.
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [..] Enregistrer txt sous UTF-8

#17

Message par sylvanie »

Bonjour,
je ne vais rien apporter à la problématique, c'est juste pour vous demander d'utiliser les balises "spoiler" autours des balises "Code" sur les gros volumes de code.
Merci
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
duyen
Niveau 3
Niveau 3
Messages : 47
Enregistré le : jeu. 19 févr. 2009 21:39
Status : Hors ligne

Re: [..] Enregistrer txt sous UTF-8

#18

Message par duyen »

@Sylvanie Désolé pour les long bout de code.

Bon je crois que j'ai trouvé......! au lieu de 256 dans les options, j'ai 128 et ça a l'aire de fonctionner.

Je te le confirme tout a l'heure.

@+
Modifié en dernier par duyen le jeu. 21 avr. 2011 14:42, modifié 1 fois.
Avatar du membre
ZDS
Membre émérite
Membre émérite
Messages : 554
Enregistré le : jeu. 10 juin 2010 10:35
Localisation : 22300 Cul-d'chouette Langue-de-vache
Status : Hors ligne

Re: [..] Enregistrer txt sous UTF-8

#19

Message par ZDS »

Hello,

C'est justement ce que j'allais te proposer; je cherchais ce que pouvait bien impliquer le BOM (je ne savais pas ce que c'était, donc je préférais me renseigner avant de dire une connerie ^^)

Bon, bah si c'est réglé tant mieux. Sinon, n'hésite pas à redemander.

N'oublie pas de passer ton post d'origine en [R]ésolu :)

A bientôt !
ZDS : Chef de projet du nAiO (logiciel AutoIt gratuit sous licence CC 4.0 BY-NC-SA)
Tout problème a une solution, donc si il y a pas d'solution, c'est qu'il y a pas d'problème !
duyen
Niveau 3
Niveau 3
Messages : 47
Enregistré le : jeu. 19 févr. 2009 21:39
Status : Hors ligne

Re: [..] Enregistrer txt sous UTF-8

#20

Message par duyen »

Je confirme, ça fonctionne.

Encore merci pour ton aide.

@ bientôt
Répondre