Page 1 sur 1

[R] Votre aide pour copier tous les lignes d'un fichier.txt dans un fichier ini

Posté : mar. 10 nov. 2020 09:20
par Boulanza
Bonjour,
Votre aide pour copier le contenu des lignes d’un fichier texte (Exemple CodeCNE.txt) dans un fichier ini (Exemple CodeCNE.ini). J’ai cherché dans l’aide et dans les forums AutoIt mais sans résultat. Avez-vous une idée à ce sujet.
Merci d’avance pour votre aide.
Cordialement.

Re: [..] Votre aide pour copier tous les lignes d'un fichier.txt dans un fichier ini

Posté : mar. 10 nov. 2020 13:25
par Boulanza
Bonjour,
J'ai pu résoudre le problème avec le code ci-dessous, mai j'ai un petit souci avec $iRetval = StringReplace($file, "\=", " ").
Je m'explique: Après copie du fichier txt dans ini j'obtiens deux signes = à la fin de la ligne copier et au début de la ligne suivante. Je cherche un méta-caractères PCRE pour solutionner cela $CodeCNE=M137484514|M130506075|......|H144043693|M136358095=
=

Cordialement.
Code :
Local $CodeCNEtxt = @ScriptDir & "\CodeCNE.txt"
Local $filename =  @ScriptDir & "\CodeCNE.ini"
$file=$CodeCNEtxt
$read = FileRead($file)
$line = StringSplit($read, @CR)

For $i = 1 To $line[0]
$var = FileReadLine($file, $i)
;MsgBox(64,"$var",$var)
IniWrite(@ScriptDir & "\CodeCNE.ini", "Parametres", $var, "")
;_ReplaceStringInFile($var, "==", " ", 1, 0)
Local $iRetval = StringReplace($file, "\=", "")
Sleep(100)
Next

Re: [..] Votre aide pour copier tous les lignes d'un fichier.txt dans un fichier ini

Posté : mar. 10 nov. 2020 14:23
par mikell
Le IniWrite() considère toute la ligne "$CodeCNE=M137484514|M130506075...etc" comme étant la valeur à donner à la clé, et une clé est suivie tout naturellement par un "=" (même s'il n'y a aucune valeur attribuée à la clé)
Le 2ème "=" vient probablement d'un espace qui traîne sur une ligne vide à la fin du fichier txt et que le FileReadLine aura considéré comme une ligne valable

Re: [..] Votre aide pour copier tous les lignes d'un fichier.txt dans un fichier ini

Posté : mar. 10 nov. 2020 15:12
par Boulanza
Bonjour,
Merci cher mikell de vos remarques. Avec cette astuce j'ai pu résoudre le problème:
IniWrite(@ScriptDir & "\CodeCNE.ini", "Parametres", $var, "|||")
Sleep(200)
_ReplaceStringInFile($filename, "=|||", " ", 1, 0)
Mais ça reste un astuce, ce n'est pas professionnel... Qui dit mieux ?
Cordialement.