Fonction recherche & comptage
2 participants
Page 1 sur 1
Fonction recherche & comptage
Bonjour.
Bravo pour GBEPad, complet et permettant beaucoup.
J'aurais cependant besoin d'un petit coup de main pour sur les operateurs de la fonction recherche.
Voila j'ai un fichier format *.txt, je souhaite savoir combien de lignes contiennent à la fois les valeurs, par exemple 1 et 149, sachant que les valeurs sont separées par des point virgules, du genre :
0;a;c;1;f;12,h;36;k;149
1;b;c;t;141;x;168;y;171;z
Chaque ligne ayant toujour le meme nombre de données separées par les ;
Voila +
Bravo pour GBEPad, complet et permettant beaucoup.
J'aurais cependant besoin d'un petit coup de main pour sur les operateurs de la fonction recherche.
Voila j'ai un fichier format *.txt, je souhaite savoir combien de lignes contiennent à la fois les valeurs, par exemple 1 et 149, sachant que les valeurs sont separées par des point virgules, du genre :
0;a;c;1;f;12,h;36;k;149
1;b;c;t;141;x;168;y;171;z
Chaque ligne ayant toujour le meme nombre de données separées par les ;
Voila +
Aguire- Messages : 5
Date d'inscription : 07/07/2008
Localisation : France
Re: Fonction recherche & comptage
Bonsoir,
Pour répondre à votre besoin, vous pouvez utiliser la recherche avec les expressions régulières.
Ouvrez votre fichier sous GBEPad, puis faites "Edition/Rechercher/Rechercher".
La boite de dialogue de recherche s'affiche.
Saisissez alors la chaines de caractères suivantes dans la zone "Rechercher" :
(;1;.*;149(;|$))|(;149;.*;1(;|$))
Cochez ensuite la case "Expression régulière" et validez par OK.
La recherche s'effectue. Toutes les occurrences trouvées (et leur nombre total) sont affichées. Vous avez plusieurs actions possibles en faisant un clic droit sur le résultat de la recherche (par exemple créer un nouveau fichier à partir du résultat de la recherche, supprimer les lignes impactées par la recherche etc...).
Si vous n'êtes pas familiarisé avec les expressions régulières, petite explication de celle présentée :
Il faut la décomposer en 2. Chacune des parties se trouve entre parenthèses. Le signe | entre les deux parties signifie "ou".
Par conséquent seront retournée toutes les lignes qui contiennent :
(;1;.*;149(;|$)) signifie une chaine de la forme ;1; suivie de 0 ou n caractères puis ;149 suivi d'un ; ou de la fin de ligne
ou
(;149;.*;1(;|$)) signifie une chaine de la forme ;149; suivie de 0 ou n caractères puis ;1 suivi d'un ; ou de la fin de ligne
Voilà... Indiquez moi si cela répond à votre besoin.
Cordialement,
Grégory
Pour répondre à votre besoin, vous pouvez utiliser la recherche avec les expressions régulières.
Ouvrez votre fichier sous GBEPad, puis faites "Edition/Rechercher/Rechercher".
La boite de dialogue de recherche s'affiche.
Saisissez alors la chaines de caractères suivantes dans la zone "Rechercher" :
(;1;.*;149(;|$))|(;149;.*;1(;|$))
Cochez ensuite la case "Expression régulière" et validez par OK.
La recherche s'effectue. Toutes les occurrences trouvées (et leur nombre total) sont affichées. Vous avez plusieurs actions possibles en faisant un clic droit sur le résultat de la recherche (par exemple créer un nouveau fichier à partir du résultat de la recherche, supprimer les lignes impactées par la recherche etc...).
Si vous n'êtes pas familiarisé avec les expressions régulières, petite explication de celle présentée :
Il faut la décomposer en 2. Chacune des parties se trouve entre parenthèses. Le signe | entre les deux parties signifie "ou".
Par conséquent seront retournée toutes les lignes qui contiennent :
(;1;.*;149(;|$)) signifie une chaine de la forme ;1; suivie de 0 ou n caractères puis ;149 suivi d'un ; ou de la fin de ligne
ou
(;149;.*;1(;|$)) signifie une chaine de la forme ;149; suivie de 0 ou n caractères puis ;1 suivi d'un ; ou de la fin de ligne
Voilà... Indiquez moi si cela répond à votre besoin.
Cordialement,
Grégory
Re: Fonction recherche & comptage
Bonjour.
Merci pour cette reponse precise, les expressions regulieres permettent en effet bien des choses, cela demande une petite gymastique preparatoire, avant de les imbriquer au mieux.
J'utilise pour parfaire mon apprentissage, une partie de ce que vous m'avez exposé en exemple:
(;1;.*;149(;|$)) signifie une chaine de la forme ;1; suivie de 0 ou n caractères puis ;149 suivi d'un ; ou de la fin de ligne
En forcant les tests, je me suis aperçu "d'un cas de recherche" qui m'échappe mommentanement .
Juste une modif dans les expressions regulieres, un bon exercice pour comprendre celles ci justement .
Le cas suivant:
;1;149;b;10;g;246;
Si le premier element de recherche (1) et suivis juste apres le point virgule du segond (149).
( donc on recherche le premier element entouré de deux ; ensuite le segond celui cette fois precedé d'un ; suivi d'un ; ou de la fin de ligne).
Voila je vais "essayer" de trouver la bonne expression reguliere à cela.
Les options une fois la recherche effectué, sont elles aussi interressantes, sauvegarder ou faire un nouveau fichier des resultats, cela facilement .
@+
Merci pour cette reponse precise, les expressions regulieres permettent en effet bien des choses, cela demande une petite gymastique preparatoire, avant de les imbriquer au mieux.
J'utilise pour parfaire mon apprentissage, une partie de ce que vous m'avez exposé en exemple:
(;1;.*;149(;|$)) signifie une chaine de la forme ;1; suivie de 0 ou n caractères puis ;149 suivi d'un ; ou de la fin de ligne
En forcant les tests, je me suis aperçu "d'un cas de recherche" qui m'échappe mommentanement .
Juste une modif dans les expressions regulieres, un bon exercice pour comprendre celles ci justement .
Le cas suivant:
;1;149;b;10;g;246;
Si le premier element de recherche (1) et suivis juste apres le point virgule du segond (149).
( donc on recherche le premier element entouré de deux ; ensuite le segond celui cette fois precedé d'un ; suivi d'un ; ou de la fin de ligne).
Voila je vais "essayer" de trouver la bonne expression reguliere à cela.
Les options une fois la recherche effectué, sont elles aussi interressantes, sauvegarder ou faire un nouveau fichier des resultats, cela facilement .
@+
Aguire- Messages : 5
Date d'inscription : 07/07/2008
Localisation : France
Recherche 2 Valeurs
Bonjour.
Voici l'espression reguliere qui me permet de trouver le nombre de lignes/occurences contenant 3 chaines/valeurs/caracteres recherchés (1 - 200 - 650 ):
(;1;200;650;)|(;1;.*;200;.*;650(;|$))|(;1;200;.*;650(;|$))|(;10;.*;200;650(;|$))
L'affaire doit se compliquer un peu plus pour une recherche de 4, 5 ou plus !
Je tente quand meme de m'y lancer.
@ +
Voici l'espression reguliere qui me permet de trouver le nombre de lignes/occurences contenant 3 chaines/valeurs/caracteres recherchés (1 - 200 - 650 ):
(;1;200;650;)|(;1;.*;200;.*;650(;|$))|(;1;200;.*;650(;|$))|(;10;.*;200;650(;|$))
L'affaire doit se compliquer un peu plus pour une recherche de 4, 5 ou plus !
Je tente quand meme de m'y lancer.
@ +
Aguire- Messages : 5
Date d'inscription : 07/07/2008
Localisation : France
Sujets similaires
» Recherche d'un éditeur
» RECHERCHE REMPLACE
» recherche avec expression régulière
» Fenêtre Recherche / Remplace dans les fichiers
» RECHERCHE REMPLACE
» recherche avec expression régulière
» Fenêtre Recherche / Remplace dans les fichiers
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|