[R] Comment demander un string délimité dans un txt ?

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
jerebou
Niveau 3
Niveau 3
Messages : 41
Enregistré le : mer. 07 déc. 2011 13:11
Status : Hors ligne

[R] Comment demander un string délimité dans un txt ?

#1

Message par jerebou »

Bonjour,

Merci encore a ceux qui me rpeondront.


Je cherche a extraire d'un fichier texte un string en particulier, delimitee par 2 strings definis au prealable:
$File=@TempDir & "\Nomdufichier.txt"

$stringdedebut="<debut"
$stringdefin="<fin>"
$stringaextraire=_StringBetween(FileRead($File),$stringdedebut,$stringdefin)
$resultat=StringRight($stringaextraire, 10)
AUTOIT a bien identifiee tous les strings mais ne sait pas me renvoyer $stringaextraire donc $resultat non plus.


Merci encore.
Modifié en dernier par jerebou le mar. 13 déc. 2011 16:13, modifié 1 fois.
Avatar du membre
matwachich
Membre émérite
Membre émérite
Messages : 986
Enregistré le : lun. 19 oct. 2009 04:04
Localisation : Algérie
Status : Hors ligne

Re: [..] Comment demander un string délimité dans un txt ?

#2

Message par matwachich »

Lisez donc la Doc. de la donction _StringBetween, Section Return Value
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
jerebou
Niveau 3
Niveau 3
Messages : 41
Enregistré le : mer. 07 déc. 2011 13:11
Status : Hors ligne

Re: [..] Comment demander un string délimité dans un txt ?

#3

Message par jerebou »

Merci, réponse très utile et très constructive vraiment !

Ne croyez-vous pas que c’était bien mon premier réflexe ? Débutant ne veut pas dire idiot...

La doc suppose que l'on connait le string a extraire, or moi je ne le connais pas il varie selon le contenu du fichier. D'ou mon post...
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: [..] Comment demander un string délimité dans un txt ?

#4

Message par PandiPanda »

Bonjour,
à vrai dire avez vous TOUT lu de la doc ?
elle le dit explicitement que la valeur de retour de _StringBetween() est un ARRAY (tableau à 1 dimension)

Return Value

Success: A 0 based $array[0] contains the first found string.
Failure: 0
@error: 1 - No inbetween string found.
Ensuite, matwachich n'a pas du tout été méchant, mais simplement vous à fait remarquer que il y'a une fonction _StringBetween() et que lire la doc aurai suffit pour votre problème.

Il aurai tout aussi pu vous dire F1, ou un joli RTFM sans vous dirigez dans vos recherches ...

En reprennant votre code; essayez ceci;
► Afficher le texte
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: [..] Comment demander un string délimité dans un txt ?

#5

Message par mikell »

$stringdedebut = "<debut"
$stringdefin = "<fin>"
Image

Code : Tout sélectionner

$File=@TempDir & "\Nomdufichier.txt"
$txt = FileRead($File)
$string = StringRegExp($txt, '(?s)<debut(.*?)<fin>', 1)
If IsArray($string) Then $result = $string[0]
MsgBox(0,"", $result)
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
jerebou
Niveau 3
Niveau 3
Messages : 41
Enregistré le : mer. 07 déc. 2011 13:11
Status : Hors ligne

Re: [..] Comment demander un string délimité dans un txt ?

#6

Message par jerebou »

Merci pour ces indications, je vais tester.

En effet pour en revenir a la réponse, je sais bien que c'est pas méchant, c'est juste idiot de renvoyer la personne a la doc sous prétexte que les infos nécessaires y sont données, tout le monde sait que la doc est la pour ça et je cherche un minimum avant de demander de l'aide, mais aussi bien faite soit la doc, elle n'est pas la plus claire qui soit, puisque par exemple je ne comprends toujours pas pourquoi même avec ton code adapté a mes variables et autres, je ne peux utiliser le string que je cherche a isoler et a extraire...

Je pense qu'en fait il ne fait pas cas de l'instruction fileread.
jerebou
Niveau 3
Niveau 3
Messages : 41
Enregistré le : mer. 07 déc. 2011 13:11
Status : Hors ligne

Re: [..] Comment demander un string délimité dans un txt ?

#7

Message par jerebou »

mikell a écrit :$stringdedebut = "<debut"
$stringdefin = "<fin>"
Image

Code : Tout sélectionner

$File=@TempDir & "\Nomdufichier.txt"
$txt = FileRead($File)
$string = StringRegExp($txt, '(?s)<debut(.*?)<fin>', 1)
If IsArray($string) Then $result = $string[0]
MsgBox(0,"", $result)

Ça ça me plait, je vais tester tout de suite :)
jerebou
Niveau 3
Niveau 3
Messages : 41
Enregistré le : mer. 07 déc. 2011 13:11
Status : Hors ligne

Re: [..] Comment demander un string délimité dans un txt ?

#8

Message par jerebou »

Parfait, très efficace et rapide a la fois.

Mille mercis a tous et tout particulierement a toi :D
Avatar du membre
zeshrek
Niveau 10
Niveau 10
Messages : 984
Enregistré le : mer. 17 nov. 2010 09:31
Localisation : Sur ma chaise
Status : Hors ligne

Re: [Résolu] Comment demander un string délimité dans un txt

#9

Message par zeshrek »

3 posts a la suite... la fonction EDIT n'est pas là completement pour rien
Sur ces 3 post, l'un est une quote complete du msg pour répondre simplement "ca me plait je teste"


Il n'y a pa que la doc d'autoit qu'il faut lire, il y a les regles du forum aussi !
Si vis pacem para bellum
Répondre