[..] Lire après un point

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
aikiox
Niveau 4
Niveau 4
Messages : 51
Enregistré le : jeu. 17 sept. 2009 13:04
Status : Hors ligne

[..] Lire après un point

#1

Message par aikiox »

Bonjour,
J'aimerais pourvoir lire trois caractère qui suit un "." dans un string.
J'ai regardé "StringRegExp" mais je n'y comprends strictement rien...

Voici le code :

Code : Tout sélectionner

$var1 = "romain.tiennot"
$var2 = "lire $var1 les trois premiers caractères et mettre en minuscule"
$var3 = "lire $var1 a partir du point et prendre les trois premiers caractères après le point$var4 = $var2&"123"&$var3
 

Cordialement
Romain
Avatar du membre
legend
Niveau 7
Niveau 7
Messages : 472
Enregistré le : dim. 26 sept. 2010 12:55
Status : Hors ligne

Re: [..] Lire après un point

#2

Message par legend »

Bonjour,

Code : Tout sélectionner

$var1 = "romain.tiennot"
$var2 = stringleft ($var1, 3) ; donne les 3premieres lettres ("rom")
$var3 = stringsplit ($var1, ".") ; changer flag si tu veux remplacer "." par plusieurs caractères, $var3[1] est l'ecriture avant le "." et $var3[2] est celle d'aprés. (voir aide autoit pour plus d'info)
j'ai pas trop compris ta demande, mais bon tu pourra les faire avec ces commandes.
Sinon écris l'une de ces commandes, appuie sur F1 et regarde les commande qui commencent par string . . . dans la liste
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: [..] Lire après un point

#3

Message par matwachich »

Code : Tout sélectionner

$var1 = "romain.tiennot"
$var3 = StringMid($var1, StringInStr($var1, ".") + 1, 3)
ConsoleWrite($var3 & @CRLF)
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
Avatar du membre
aikiox
Niveau 4
Niveau 4
Messages : 51
Enregistré le : jeu. 17 sept. 2009 13:04
Status : Hors ligne

Re: [..] Lire après un point

#4

Message par aikiox »

Bonjour,

Merci pour ton aide. J'ai avancé sur le sujet.

Code : Tout sélectionner

$var1 = InputBox("","")
$var2 = stringleft ($var1, 3) ; donne les 3premieres lettres ("rom")
$var3 = stringsplit ($var1, ".") ; changer flag si tu veux remplacer "." par plusieurs caractères, $var3[1] est l'ecriture avant le "." et $var3[2] est celle d'aprés. (voir aide autoit pour plus d'info)
msgbox(0,"",StringLower($var2&"123"&StringLeft($var3[2],3)))
$mdp = StringLower($var2&"123"&StringLeft($var3[2],3))
En revanche, s'il dans le input on saisi un nombre de caractère sans point il y a une erreur.
J'aimerais faire une condition avec le stringsplit mais je n'ai pas vu de gestion d'erreur...

Si dans le string input il n'y a pas de point alors
Erreur
Sinon je continu.

Cordialement
Romain
Avatar du membre
aikiox
Niveau 4
Niveau 4
Messages : 51
Enregistré le : jeu. 17 sept. 2009 13:04
Status : Hors ligne

Re: [..] Lire après un point

#5

Message par aikiox »

Trouvé :

Code : Tout sélectionner

$var1 = InputBox("","")
$var2 = stringleft ($var1, 3) ; donne les 3premieres lettres ("rom")
$var3 = stringsplit ($var1, ".") ; changer flag si tu veux remplacer "." par plusieurs caractères, $var3[1] est l'ecriture avant le "." et $var3[2] est celle d'aprés. (voir aide autoit pour plus d'info)
if @error-1 Then
msgbox(0,"",StringLower($var2&"123"&StringLeft($var3[2],3)))
Else
    MsgBox(0,"","nok")
EndIf
 
Cordialement
Romain
Avatar du membre
Jerome
Niveau 9
Niveau 9
Messages : 661
Enregistré le : mar. 07 avr. 2009 08:35
Localisation : Picardie
Status : Hors ligne

Re: [..] Lire après un point

#6

Message par Jerome »

Coucou,


N'oubliez pas la balise [R] dans le titre de votre premier message si votre sujet est résolu.


Jérôme
SagePourpre
Niveau 7
Niveau 7
Messages : 442
Enregistré le : dim. 06 juil. 2008 09:11
Status : Hors ligne

Re: [..] Lire après un point

#7

Message par SagePourpre »

Il existe de bons tutorials sur le sujet et un super outil pour expérimenter divers
avec les expressions régulières ici : The Regex Coach

Mais en attendant :

Code : Tout sélectionner

#include <Array.au3>
$string = _
'test .2kafkl^`aklgsdf,g.sdfgds' & _
'sdfdgerertertfwsdéfdsfs.fsdf'

$regex = StringRegExp($string,'\.(...)',3)  ; la ligne qui t'intéresse

_ArrayDisplay($regex)


Les solutions proposés avant cependant feront parfaitement le travail :)

Code : Tout sélectionner

$regex = StringRegExp($string,'\.(...)',3)  ; la ligne qui t'intéresse
Le Sage Pourpre, pour qui la vie est tellement
plus belle vue du haut de son Pouf = )
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: [..] Lire après un point

#8

Message par matwachich »

C'est super! Les regex c'est vraiment pas ma tasse de thé, et j'aimerai que ça change!!!
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
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: [..] Lire après un point

#9

Message par jchd »

Quand le forum US sera sorti d'hibernation, allez chercher l'outil de regexp proposé par GeoSoft, disponible via un lien dans sa signature. Il permet de tester les regexp avec la version de PCRE incluse dans AutoIt. Donc si ça marche avec cet outil, ça marchera avec votre script AutoIt.

RegEx Coach est très bien (très impressionant même, du fait de son architecture interne [bravo Lisp !]), mais ne repose pas sur le même moteur.
Regex Buddy est lui aussi un excellent outil, mais de même n'utilise pas un moteur PCRE et, même en mode PCRE, n'est pas totalement aligné sur les fonctionnalités de PCRE qu'AutoIt propose.

Attention aussi : il y a eu, depuis la dernière mouture d'AutoIt, nombre d'évolutions dans la version officielle de PCRE (bug fix et ajouts) ce qui fait que la documentation officielle PCRE à jour ne s'applique pas complètement à AutoIt. Pour la grande majorité des utilisateurs, les différences sont transparentes et ne portent que sur des options/fonctions byzantines.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: [..] Lire après un point

#10

Message par timmalos »

Tu as également, en attendant que le forum anglais se libère:
http://autoitscript.fr/forum/viewtopic. ... ool#p27302
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11830
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Lire après un point

#11

Message par Tlem »

J'ai mis la dernière version du PCRE Toolbox de Geosoft sur ce lien : http://www.autoitscript.fr/download/ind ... ir=Divers/

Dans le fichier PCRE Toolkit_3.3.6.1.zip, il y à une version compilée et installable du PCRE Toolbox.
Je n'ai pas gardé les sources, mais dés que le forum US sera dispo, vous pourrez aller les récupérer. ;)
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
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: [..] Lire après un point

#12

Message par jchd »

J'avais mis mes pattes dans ce cambouis, mais il y a déjà un bon moment. Du coup le source que j'ai quelque part est vraissemblablement déphasé. Rien n'urge pour le source, son toolbox fonctionne bien et l'auteur est un grand garçon fiable.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Avatar du membre
moutelous
Niveau 6
Niveau 6
Messages : 229
Enregistré le : sam. 09 févr. 2008 19:51
Localisation : Rennes
Status : Hors ligne

Re: [..] Lire après un point

#13

Message par moutelous »

Hello,

Je ne comprend pas ... Pourquoi chercher midi à quatorze heures ... Il existe un très bon utilitaire de base à la fin du "Tutorial - Regular Expression" d'Autoit (voir l'Aide). Celui-ci est simple mais performant ....

Pour autant il n'y a point de connaissance innée, je vous invite donc à compulser "THE" Bible : http://oreilly.com/catalog/978059652812 ... 6528126.IP (...à mon humble avis...)
A+
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: [..] Lire après un point

#14

Message par jchd »

Ce n'est pas une question de décalage horaire, mais seulement d'adéquation entre un outil ou une documentation et l'implémentation qui nous intéresse, celle de la dernière mouture officielle d'AutoIt.

Par ailleurs, Friedl est à la fois trop complet pour le néophyte et ne décrit pas non plus la version de PCRE d'AutoIt. Le toolbox de Geosoft est bien plus adapté sur ce point, tandis que RegEx Coach est très parlant en ce qui concerne le pas à pas pour les expressions simples et portables.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Avatar du membre
moutelous
Niveau 6
Niveau 6
Messages : 229
Enregistré le : sam. 09 févr. 2008 19:51
Localisation : Rennes
Status : Hors ligne

Re: [..] Lire après un point

#15

Message par moutelous »

Petit malentendu sur mes propos me semble t-il ....
jchd a écrit :Ce n'est pas une question de décalage horaire, mais seulement d'adéquation entre un outil ou une documentation et l'implémentation qui nous intéresse, celle de la dernière mouture officielle d'AutoIt.
Oui, c'est bien ainsi que le l'entendais .... et encore une fois, au risque de me répéter, il existe un script au3 qui permet de tester les regexp avec la version de PCRE incluse dans AutoIt et ce, en fin du tutorial "String Regular expression" inclus dans l'aide d'Autoit. Outil simple mais efficace.

D'autre part, l'ouvrage auquel je faisais référence, même s'il ne traite pas de l'implémentation PCRE d'autoit, traite dans sa plus grande partie, des expressions régulières dans PERL. Et comme vous le savez PCRE = PERL COMPATIBLE REGULAR EXPRESSIONS.
En outre, il offre la possibilité au novice, au travers de divers dialecte REGEX (ou de diverses implémentations si vous préférez), de s'imprégner de "l'état d'esprit des expressions régulières".
Je reste convaincu, comme vous tous, que le plus merveilleux des outils ne pourra rien pour vous sans un minimum de théorie ....
A+
Répondre