[R] Copier une chaîne de caractère

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Boulanza
Niveau 9
Niveau 9
Messages : 697
Enregistré le : mer. 31 juil. 2013 15:49
Status : Hors ligne

[R] Copier une chaîne de caractère

#1

Message par Boulanza »

Bonjour,
J'aimerai connaître la marche a suivre pour copier une chaîne de caractère depuis le fichier « texte 1 » et la collet à la place d’une autre chaîne de caractère se trouvant dans un autre fichier « texte 2 ». J’ai utilisé les fonctions: _ReplaceStringInFile et FileCopy. malheureusement je n’ai pas pu les utiliser dans mon cas.
Il faut dire que j’ai trouvé sur ce forum plusieurs exemples pour remplacer une chaîne de caractère par une autre, mais pas d'exemple pour copier une chaîne de caractère situé dans un fichier texte 1 et la collet dans un autre fichier texte 2.
Voici l'exemple que j'ai trouvé pour remplacer une chaine de caractère par une autre:
► Afficher le texte
Merci d’avance pour votre aider…
Cordialement
Modifié en dernier par Boulanza le jeu. 24 avr. 2014 23:58, modifié 1 fois.
Avatar du membre
scorp84
Niveau 7
Niveau 7
Messages : 400
Enregistré le : mar. 04 nov. 2008 21:51
Localisation : Avignon, France
Status : Hors ligne

Re: [..] Copier une chaîne de caractère

#2

Message par scorp84 »

Bonjour,

Voici un petit exemple de code pour t'aider :
► Afficher le texte
Pour faire le test, créé un fichier test.txt (dans le même répertoire que ton script) avec les lignes suivantes :
AAAA
BBBB
CCCC
DDDD
EEEE
FFFF

Amicalement.

BM
lesolutionneur
Niveau 7
Niveau 7
Messages : 368
Enregistré le : ven. 09 déc. 2011 11:25
Status : Hors ligne

Re: [..] Copier une chaîne de caractère

#3

Message par lesolutionneur »

Comment envisages-tu de t'y prendre pour trouver la chaîne à extraire ? Est-elle reconnaissable ?
Peut-être qu'il faudra utiliser une expression régulière.
Si tes fichiers ne sont pas trop gros, je pense que ça sera plus simple de les ouvrir, effectuer les opérations puis les enregistrer.

Peux-tu nous donner un exemple de fichier 1 et de fichier 2 et ce que tu souhaites remplacer ?
Boulanza
Niveau 9
Niveau 9
Messages : 697
Enregistré le : mer. 31 juil. 2013 15:49
Status : Hors ligne

Re: [..] Copier une chaîne de caractère

#4

Message par Boulanza »

Je vous remercie pour vos aides !
Le script de scorp84 marche très bien lorsque on connait la chine de caractère.
Oui lesolutionneur, dans mon cas elle n'est pas reconnaissable.
Donc, j'ai encore un souci pour copier tout le contenu d'une ligne par exemple la ligne 6.
J'ai essayé la fonction _FileCountLines : impossible
Avez vous une idée?
Merci.
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2511
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Copier une chaîne de caractère

#5

Message par jguinch »

Si la chaîne n'est pas reconnaissable, comment comptes-tu la récupérer ?
Comme l'a dit lesolutionneur, il faut nous fournir des exemples de fichiers, sinon je ne vois pas comment nous pourrons t'aider.
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Boulanza
Niveau 9
Niveau 9
Messages : 697
Enregistré le : mer. 31 juil. 2013 15:49
Status : Hors ligne

Re: [..] Copier une chaîne de caractère

#6

Message par Boulanza »

D’accord...
Voici l'exemple de fichier:
[parametres]
Nom et prénom=Boulanza
E-mail=Boulanza@gmail.com
Numéro de téléphone=xxxxxxxxxxxxxxxx
Commande du=23 04 2014 à 08H08M00S541F
$MP=0x1B659738372809B64FF43AE1C030EA4CBE1A95E5
C'est la dernière ligne que je souhaite copier
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2086
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Copier une chaîne de caractère

#7

Message par TommyDDR »

Quand on demande si la chaine est reconnaissable, la réponse "Elle se situe après '$MP='" est une réponse attendue ^^.

Donc : Est ce que la chaine sera TOUJOURS après "$MP=" ?
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2511
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Copier une chaîne de caractère

#8

Message par jguinch »

+1 pour Tommy
Ca ressemble à un fichier INI, non ? Tu as regardé IniRead et IniWrite ?
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2086
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Copier une chaîne de caractère

#9

Message par TommyDDR »

En effet... je boss avec des ini une bonne partie de la journée et je n'avais même pas vu que c'en était un... :shock:
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Boulanza
Niveau 9
Niveau 9
Messages : 697
Enregistré le : mer. 31 juil. 2013 15:49
Status : Hors ligne

Re: [..] Copier une chaîne de caractère

#10

Message par Boulanza »

TommyDDR: Donc : Est ce que la chaine sera TOUJOURS après "$MP=" ?
RE:Oui absolument.
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2086
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Copier une chaîne de caractère

#11

Message par TommyDDR »

Et à la question : est-ce un fichier ini ?


Si ini :

Code : Tout sélectionner

Local $chaine = IniRead("Chemin\De\Votre\Fichier.ini", "parametres", "$MP", "")
MsgBox(0, "Chaine", $chaine)
Sinon :

Code : Tout sélectionner

Local $chaine = ""
Local $content = FileRead("Chemin\De\Votre\Fichier.xxx")
Local $split = StringSplit($content, "$MP=", 3)

If(Ubound($split, 1) >= 2) Then
    $chaine = $split[1]
EndIf

MsgBox(0, "Chaine", $chaine)
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Boulanza
Niveau 9
Niveau 9
Messages : 697
Enregistré le : mer. 31 juil. 2013 15:49
Status : Hors ligne

Re: [R] Copier une chaîne de caractère

#12

Message par Boulanza »

Merci pour cette réponse, je viens de tester, ça marche parfaitement, mais si dans le cas ou le nom du fichier .ini et/ou .txt sont inconnus ça ne marche pas ! Je ne comprends ?
Voir test :
Script .ini
► Afficher le texte
Script .text
► Afficher le texte
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2086
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Copier une chaîne de caractère

#13

Message par TommyDDR »

FileRead et IniRead attendent un nom de fichier précis, vous ne pouvez pas mettre "*".
Si vous voulez traiter tous les fichier .ini/.txt d'un dossier, penchez vous du coté de FileFindFirstFile/FileFindNextFile ou _FileListToArray/_FileListToArrayRec.
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Boulanza
Niveau 9
Niveau 9
Messages : 697
Enregistré le : mer. 31 juil. 2013 15:49
Status : Hors ligne

Re: [..] Copier une chaîne de caractère

#14

Message par Boulanza »

TommyDDR:FileRead et IniRead attendent un nom de fichier précis, vous ne pouvez pas mettre "*".
Si vous voulez traiter tous les fichier .ini/.txt d'un dossier, penchez vous du coté de FileFindFirstFile/FileFindNextFile ou _FileListToArray/_FileListToArrayRec.
RE: Pour mon cas ça ne marche pas, j'ai testé avec ces fonctions ça ne donne rien.
svp Y a-t-il une autre solution pour copier une chaîne de caractère depuis le fichier « texte 1 » et la collet à la place d’une autre chaîne de caractère se trouvant dans un autre fichier « texte 2 ».
La solution de scorp84 ça marche parfaitement, mais si dans le cas ou le nom du fichier .ini et/ou .txt sont inconnus ça ne marche pas !
► Afficher le texte
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2086
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Copier une chaîne de caractère

#15

Message par TommyDDR »

Boulanza a écrit :RE: Pour mon cas ça ne marche pas, j'ai testé avec ces fonctions ça ne donne rien.[/spoiler]
Ça ne donne rien <> Je n'arrive pas à le faire fonctionner

La solution est pourtant dans ces fonctions.
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2511
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Copier une chaîne de caractère

#16

Message par jguinch »

Boulanza a écrit :mais si dans le cas ou le nom du fichier .ini et/ou .txt sont inconnus ça ne marche pas
Si tu ne connais pas le nom du fichier, tu sais au moins où il est censé être, non ?
Boulanza a écrit :Pour mon cas ça ne marche pas
Tiens, tu es tombé sur cas de figure extrêmement rare ? :shock:
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Boulanza
Niveau 9
Niveau 9
Messages : 697
Enregistré le : mer. 31 juil. 2013 15:49
Status : Hors ligne

Re: [R] Copier une chaîne de caractère

#17

Message par Boulanza »

Bonsoir tous le monde,
Pour TommyDDR j’ai essayé à utiliser ces fonctions mais comme je suis un débutant en programmation j’n’ai pas pu atteindre le but souhaité, désolai…
Pour jguinch oui, effectivement je ne connais pas le nom du fichier, mais par contre je connais son emplacement dans le fichier temporaire :c:\Temp\ExportDrvpi\*.ini
Encore une fois merci pour vos aides…
Cordialement.
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2511
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Copier une chaîne de caractère

#18

Message par jguinch »

Euh, pour être bien clair : dans c:\Temp\ExportDrvpi il n'y a qu'un seul fichier ini ?
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Boulanza
Niveau 9
Niveau 9
Messages : 697
Enregistré le : mer. 31 juil. 2013 15:49
Status : Hors ligne

Re: [..] Copier une chaîne de caractère

#19

Message par Boulanza »

Non plusieurs fichiers dans le même répertoire.
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2511
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Copier une chaîne de caractère

#20

Message par jguinch »

Si tu as plusieurs fichiers, dans lequel devras-tu extraire les données ? Tous ? Un seul ? :?:
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Répondre