|
|
|
|
Configuration: Windows XP Internet Explorer 6.0
Salut,
Je ne sais pas comment ecrire : si "m" est le dernier caractère de la ligne je regarde le premier caractère de la ligne suivante. je ne pense pas que le problème est bien posé. en fait, tu n'as plus des lignes mais des éléments des 2 tableux donc la question sera quand le dernier caractère de la chaîne qui se trouve à l'index I est m alors je pense à l'élément suivant du tableau celui qui se trouve à I+1 et je vérifie que la 1ère lettre de la chaîne est a a vrai dire je ne comprends pas ce que tu veux si tu nous donneras ton fichier de config (donc ce que tu as en Entrée) et tu nous donneras un exemple de ce que tu veux obtenir en Sortie, peut être qu'on trouveras ensemble une solution ;-) 106485010510997108 |
Salut lami20j,
Il est possible que j'ai mal expliqué ce que je souhaitais. Je suis débutante. Pour répondre à ta question le fichier en entré est de la forme : my %toto => ( 'AAAAAA' =>{ 'uuu' => [ 'toto','tata', 'mouloud' ] } ); Le but est de vérifier la syntaxe. Après { je dois trouver '. Après my%[a-z]+ on doit trouver => Après ' je peux trouver , ou ] etc. Est ce que tu comprends mieux l'exercice ? |
Salut,
en bref tu veux faire quelque chose pour analyser si la syntaxe est correcte si j'ai bien compris. je pense qu'une solution avec les regex peut être faisable je vais voir ça ce soir ;-) (je suis au boulot et je n'ai pas le temps) 106485010510997108 |
Oui c'est bien celà.
En ce moment je tente avec les hashs. Merci lami20j. Bonne après midi. |
Salut,
voici un exemple #!/usr/bin/perl
use strict; use warnings;
while(<DATA>){
print "$. ok\n" if /{\s*'\w+'\s*=\>\s*\[\s*('\w+',)*\s*'\w+'\s*]\s*}/;
}
__END__
my %toto => ( 'AAAAAA' =>{ 'uuu' => [ 'toto','tata', 'mouloud' ] } );
my %toto => ( 'AAAAAA' =>{ uuu' => [ 'toto','tata', 'mouloud' ] } );
my %toto => ( 'AAAAAA' =>{ 'uuu' => [ 'toto','tata', 'mouloud' ] } );
my %toto => ( 'AAAAAA' =>{ 'uuu' => [ 'toto','tata', 'mouloud' } );
106485010510997108 |
Salut,
A quoi correspondent les w+ ? |
Salut,
\w répresent un caractère mot qui peut être a à z ou A à Z ou 0 à 9 ou _ (underscore) + c'est un quantificateur qui permet de reconnaître un caractère minimum et maximum combien la mémoire permet ;-) en fait \w+ correspond à la clase de caratères [a-zA-Z0-9_]+ donc où t'écrit \w+ tu peux écrire [a-zA-Z0-9_]+ 106485010510997108 |
Merci. |
Bonjour,
Je reviens à mon problème de départ : si "m" est le dernier caractère de la ligne je regarde le premier caractère de la ligne suivante. Comme l'a bien compris lami20j, j'ai des éléments de 2 tableaux. " la question sera quand le dernier caractère de la chaîne qui se trouve à l'index I est m alors je pense à l'élément suivant du tableau celui qui se trouve à I+1 et je vérifie que la 1ère lettre de la chaîne est a". Quelqu'un a une idée ? Merci d'avance. |
Salut,
quand tu écris
for ( 0 .. $#t1) { $i = $_ ; my @t2 = split (// , $t1[$i]) ;
for ( 0 .. $#t2 ) {
quelque soit les conditions tous les éléments des tableaus sont parcourus de la façon suivante Pour chaque élément de @t1 Traite les éléments de @t2Je pense qu'il faut faire autrement ;-) Je vais regarder ce soir 106485010510997108 |
merci lami20j.
Mais est ce que tu comprends bien ce que je souhaite faire ? |
Re,
si j'ai bien compris tu souhaites vérifier la syntaxe toutefois ta demande se référe à une seule ligne y a-t-il plusieurs lignes?! peut être que la connaissance de ton fichier de traitement sera utile si tu as des précisions à faire, alors c'est le moment ;-) 106485010510997108 |
le fichier comporte plusieurs lignes.
Comme je te l'avais dit, il est de la forme : my %toto => ( 'AAAAAA' =>{ 'uuu' => [ 'toto','tata', 'mouloud' ] } ); mais il peut s'ecrire my %toto => ( 'AAAAAA' =>{ 'uuu' => [ 'toto','tata', 'mouloud' ] } ); ou my %toto => ( 'AAAAAA' =>{ 'uuu' => [ 'toto', 'tata', 'mouloud' ] } ); ou m y %toto => ( 'AAAAAA' =>{ 'uuu' => [ 'toto', 'tata', 'mouloud' ] } ); etc... Pour celà, j'ai donc placé chaque ligne de mon fichier dans un tableau @tabL, puis chaque caractère de chaque ligne de un tableau @tabC. J'enleve tous les espaces, retours chariot, tabulation... Puis j'essai de faire le traitement. while ($_ <= $#tabC) { if ( $tabC[$_] =~ /m/ ) { LE PROBLEME SE SITUE ICI *** if ($tabC[++$_] =~ /y/) { if ($tabC[++$_] =~ /%/) { print "OK\n"; } } } $_++; } **** LE PROBLEME SE SITUE ICI : Je m'explique à nouveau. si le y est à la ligne suivante, la boucle sera terminée. je voudrais rajouter une condition à savoir, si le caractère m est le dernier caractère de la ligne, il faut passer au premier caractère de la ligne suivante. En espèrant avoir été assez claire, je te souhaite une bonne après midi |
Autre précision, il y a plusieurs lignes du type que je t'ai donné.
Par exemple: my %toto => ( 'AAAAAA' =>{ 'uuu' => [ 'toto','tata', 'mouloud' ] } 'BBBBB' =>{ 'SSS' => [ 't', 'ta', 'mod' ] } ); |
Re,
en ce cas, je me pose une question bête ;-) il ne sera mieux d'arranger un peu ton fichier avant de le traiter?! par exemple transformer tout dans de lignes de genre my %toto => ( 'AAAAAA' =>{ 'uuu' => [ 'toto','tata', 'mouloud' ] }, 'BBBBB' =>{ 'SSS' => [ 't', 'ta', 'mod' ] } );
comme ça ça sera plus facile de traiter 106485010510997108 |
ah, tu viens de me donner une idée. Je vais créer un fichier temp. Je te tiens au courant. |
Merci lami20j. J'ai la réponse à mon problème en une seule ligne.
Je souhaitais te poser une question, tu travailles dans quel domaine? l'informatique je suppose non? |
| 29/10 12h46 | Trier un tableau sans utiliser la fonction sort | Perl |
| 24/05 06h49 | L'indexation linéaire et le reshape sous Matlab | MatLab |
| 16/01 23h01 | [Spyware] Musique incessante en boucle au démarrage de Windows | Windows |
| 11/01 11h08 | Décaler les éléments d'un tableau (Rotation) -Récursivité- | Pascal |
| 11/01 11h21 | Inverser les éléments d'un tableau -Récursivité- | Pascal |
| 07/04 20h15 | Perl boucle et tableaux | 0 |
| 05/06 10h24 | Perl et tableau | 0 |
| 08/02 11h28 | [PERL] boucle While (debutant) | 10 |
| 22/11 08h27 | Boucles , tableaux , et fichiers .wri avec VB | 1 |
![]() | MediaInfo - MediaInfo fournit la liste des codecs nécessaires ainsi que des informations techniques sur vos fichiers vidéo et audio. ... | Catégorie: Codecs Licence: Open Source |
![]() | PSPad - PSPad est un excellent éditeur de texte. Il est utile pour travailler sur du simple texte, mais aussi sur du HTML, CSS,... | Catégorie: Développement Licence: Freeware/gratuit |
![]() | Firstpage - First Page 2006 est un éditeur html gratuit et excellent. Il permet de travailler un code HTML en couleur, ainsi que de... | Catégorie: Editeurs HTML Licence: Freeware/gratuit |
![]() | ActivePerl - ActivePerl est un interpréteur Perl gratuit et puissant pour plates formes Microsoft Windows. Il nécessite "Microsoft... | Catégorie: Perl Licence: Open Source |
![]() | Olympus MJU 2 perlgold | Catégorie: Appareil Photo Compact | |
![]() | Les boucliers de Quetzalcoatl | Catégorie: Jeu vidéo PC | |
![]() | Intel D865PERL | Catégorie: Carte mère | |
![]() | Intel D865PERLL | Catégorie: Carte mère |