Recherche d'un mot dans un texte Version 2.01

Pour microprocesseurs Intel / Christophe Lemoine

Table des matières

Table des matières *

Remerciements *

Avertissements *

Présentation *

Présentation *

Liste des évolutions *

Installation *

Lancement *

Premier essai *

Recherche d’un mot *

Recherche de plusieurs mots

Recherche d’un mot satellite *

Recherche de plusieurs mots satellites *

Listes des arguments et des options *

Arguments *

Options

Options liées à l’aide *

Options liées à la recherche en elle-même

Options liées à la présentation des résultats de recherche *

Options liées aux fichiers à lire ou à écrire *

Remerciements  Je remercie tous ceux qui m’ont permis de participer à ce projet. Ils m’ont fait découvrir une révélation extraordinaire. Je remercie mon épouse pour son aide, son soutien, sa patience dans ce projet. Je remercie Celui qui est à l’origine de tout. 

 

Présentation  Le présent programme recherche un ou plusieurs mots dans un texte.  Le résultat de la recherche est écrit dans un fichier, afin de pouvoir le conserver.

" search.exe " est un programme MS-DOS. Il fonctionne donc en dehors de l’environnement Windows et en mode commande. C’est en quelque sorte un nouveau mot que votre ordinateur comprend.

L’interface utilisateur peut paraître barbare mais c’est simple d’utilisation : on appelle le programme avec des instructions pour orienter son comportement.

Pour rendre son utilisation encore plus simple, un comportement par défaut a été préparé afin de limiter les instructions à transmettre au programme.

 Liste des évolutions  Les évolutions majeures par rapport à la version précédente sont :

 Installation  Pour installer le programme :

Après l’installation, vous trouverez les fichiers suivants dans le répertoire d’installation :

Lancement  

Pour lancer le programme :

 Premier essai   

Si vous tapez la commande search (sans instruction), la réponse du programme sera :
--> Argument(s) manquant(s) : Donnez le ou les mots à rechercher !

car le programme ne fonctionne pas sans un minimum d’instructions.

Les instructions attendues par le programme sont multiples et peuvent être combinées pour obtenir le comportement voulu. On distinguera 2 types d’instructions :

Ce programme possède des valeurs d’options par défaut pour faciliter son utilisation. Cela permet de minimiser les arguments nécessaires au fonctionnement du programme. Par exemple, il peut fonctionner avec un seul argument : le mot ou les mots à rechercher dans le texte par défaut.

 Recherche d’un mot   

Comme nouvel essai, taper la commande : search "$dqhxwr"

La réponse du programme sera :

>>> Recherche du mot "RWXHQD$"

avec écriture du résultat dans le fichier "data\result\$dqhxwr.txt"

---------------------------------------------------------------------------

Options :

- Recherche dans le fichier "base\torah.txt"

- Recherche aussi le mot écrit à l'envers

- Nombre maximum d'occurrences : 150

---------------------------------------------------------------------------

>>> Traitement ...

>>> Compilation du texte ...

>>> Recherche du mot "RWXHQD$" ...

Nombre d'occurrences trouvées : 2

>>> Fichier résultat "data\result\$dqhxwr.txt"

Dans la réponse du programme, on distingue plusieurs informations :
La liste des mots à rechercher. Le nom du fichier où sera écrit le résultat de la recherche sera donné si l’option ‘fichier(s)’ (-f) n’a pas été demandé
La liste des options demandées ou par défaut

Ainsi, on peut lire dans les informations que :
Je recherche le mot " RWXHQD$ "
La recherche est faite dans le fichier " base\torah.txt "
La recherche du mot écrit à l’envers est faite simultanément
La recherche s’arrêtera dès que le programme aura trouvé plus de 150 fois le mot
La recherche s’est bien déroulée et 2 occurrences du mot ont été trouvées
Le résultat de la recherche de ce mot est dans le fichier " data\result\$dqhxwr.txt "
Pour voir le résultat, il me suffit d’éditer le fichier " data\result\$dqhxwr.txt ". Dans le Il se présente sous la forme :

Recherche du mot "RWXHQD$" dans le fichier
"base\torah.txt" :
 Options :

- Recherche aussi le mot écrit à l'envers

- Offset illimité entre 2 lettres du mot

+----------------------------+--------+----------------------------+

! Premier caractère ! Valeur ! Dernier caractère !

+----------------------------+ de +----------------------------+

! Livre Verset Position !l'offset! Livre Verset Position !

! Chapitre Caractère ! ! Chapitre Caractère !

+----------------------------+--------+----------------------------+

! 2 4 10 47 82411 ! 8278 ! 2 35 24 28 132079 ! ( 1)

! 4 8 4 45 202578 ! -16703 ! 2 16 21 13 102360 ! ( 2)

+----------------------------+--------+----------------------------+

Nombre d'occurrences : 2

On trouve les paramètres et le résultat de la recherche :
Le mot recherché et le fichier dans lequel la recherche a été effectuée.
Les options utilisées lors de la recherche.
Les coordonnées des occurrences du mot recherché.
Tant que la recherche n’est pas interrompue, le programme n’écrit pas dans le fichier le nombre d’occurrences maximum qui stoppera sa recherche.

Recherche de plusieurs mots
Comme nouvel essai, on va rechercher 2 mots en un seul appel au programme en tapant la commande : search "xsynwt" "twrh"
La réponse du programme sera :
>>> Recherche du mot "TWNYSX"
avec Ecriture du résultat dans le fichier "data\result\xsynwt.txt"

>>> Recherche du mot "HRWT"
avec Ecriture du résultat dans le fichier "data\result\twrh.txt"

---------------------------------------------------------------------------

Options :
- Recherche dans le fichier "base\torah.txt"

- Recherche aussi le mot écrit à l'envers

- Nombre maximum d'occurrences : 150

---------------------------------------------------------------------------

>>> Traitement ...
>>> Compilation du texte ...
>>> Recherche du mot "TWNYSX" ...

Nombre d'occurrences trouvées : 75

>>> Fichier résultat "data\result\xsynwt.txt"
>>> Recherche du mot "HRWT" ...

Nombre maximum d'occurrences atteint !

>>> Donnez une valeur plus grande à l'option -n pour cette recherche !
>>> Fichier résultat "data\result\twrh.txt"

Les informations notables de cette recherche sont :

On pourra lire en bas du fichier " data\result\twrh.txt " le texte suivant :

****************************************************

* *
* >>> Recherche interrompue <<< *
* *
* Nombre maximum d'occurrences ( 150) atteint *
* *
****************************************************

Et comme vous pouvez lire dans la réponse du programme : vous êtes invité à modifier l’option ( -n ) qui permet de changer le nombre maximum d’occurrences par défaut.

 Recherche d’un mot satellite
Comme nouvel essai, on va rechercher d’un mot " HRWT " dans le voisinage (région) de la première occurrence du mot " RWXHQD$ " trouvé précédemment en tapant la commande :
search -r 82411 8278 7 "twrh"

La réponse du programme sera :
>>> Recherche du mot "HRWT"
avec écriture du résultat dans le fichier "data\result\twrh_0082411_0008278_07_050.txt"

---------------------------------------------------------------------------

Options :
- Recherche de mots satellites d'un mot commencant en 82411
avec un offset de 8278
et d'une longueur de 7 caractères

- La zone de recherche autour du mot a une largeur de 50 caractères

- Recherche dans le fichier "base\torah.txt"

- Recherche aussi le mot écrit à l'envers

- Nombre maximum d'occurrences : 150

---------------------------------------------------------------------------

>>> Traitement ...
>>> Compilation du texte ...
Le mot trouvé aux coordonnées données est "RWXHQD$"
>>> Recherche du mot "HRWT" ...
Nombre d'occurrences trouvées : 46
>>> Fichier résultat "data\result\twrh_0082411_0008278_07_050.txt"

Le résultat se trouve dans le fichier " data\result\twrh_0082411_0008278_07_050.txt ". Le nom du fichier se compose du mot recherché et des coordonnées de la région de recherche. Cela permet de conserver et de retrouver les résultats de recherche d’un mot satellite dans différentes régions.
Le résultat se présente sous la forme :

Recherche du mot "HRWT" dans le fichier "base\torah.txt" :

Options :

- Recherche de mots satellites d'un mot commencant en 82411 avec un offset de 8278
et d'une longueur de 7 caractères
"RWXHQD$" est le mot trouvé aux coordonnées

- Largeur de la zone de recherche autour du mot de 50 caractères

- Recherche aussi le mot écrit à l'envers

- Offset illimité entre 2 lettres du mot

+----------------------------+--------+----------------------------+

! Premier caractère ! Valeur ! Dernier caractère !

+----------------------------+ de +----------------------------+

! Livre Verset Position !l'offset! Livre Verset Position !! Chapitre Caractère ! ! Chapitre Caractère !+----------------------------+--------+----------------------------+

1 20 2 49 24421 ! 24836 ! 2 14 16 31 98929 ! ( 1)

! 1 29 25 50 40985 ! 16558 ! 2 9 20 1 90659 ! ( 2)

! 1 29 27 9 41050 ! -8297 ! 1 14 2 66 16159 ! ( 3)

! 1 48 4 44 74090 ! 66224 ! 5 13 4 30 272762 ! ( 4)

! 1 48 4 52 74098 ! 74505 ! 5 30 9 68 297613 ! ( 5)

! 2 4 9 98 82364 ! 16561 ! 2 35 23 67 132047 ! ( 6)

! 2 4 9 98 82364 ! 57959 ! 5 3 28 67 256241 ! ( 7)

! 2 4 10 38 82402 ! 8297 ! 2 20 8 10 107293 ! ( 8)

! 2 9 19 80 90657 ! -2 ! 2 9 19 74 90651 ! ( 9)

! 2 20 6 28 107231 ! -8285 ! 2 4 10 12 82376 ! ( 10)

! 2 26 5 80 115516 ! 24851 ! 4 2 31 48 190069 ! ( 11)

! 2 30 15 34 123790 ! 49659 ! 5 13 4 35 272767 ! ( 12)

! 2 30 16 7 123822 ! 16562 ! 3 21 1 40 173508 ! ( 13)

! 2 35 24 19 132070 ! 24846 ! 4 10 35 20 206608 ! ( 14)

! 2 40 9 42 140311 ! 41395 ! 5 8 5 31 264496 ! ( 15)

! 2 40 10 31 140361 ! -16545 ! 2 9 21 20 90726 ! ( 16)

! 3 6 15 13 148596 ! -16558 ! 2 14 16 24 98922 ! ( 17)

! 3 6 15 43 148626 ! 49659 ! 5 30 9 58 297603 ! ( 18)

! 3 6 16 21 148650 ! 4 ! 3 6 17 9 148662 ! ( 19)

! 3 6 16 21 148650 ! 41398 ! 5 13 5 11 272844 ! ( 20)

! 3 21 1 37 173505 ! 41393 ! 5 30 10 46 297684 ! ( 21)

! 4 2 31 18 190039 ! -33105 ! 2 9 21 18 90724 ! ( 22)

! 4 7 1 12 198305 ! 33115 ! 5 30 10 12 297650 ! ( 23)

! 4 10 33 52 206543 ! -57945 ! 1 24 65 22 32708 ! ( 24)

! 4 15 33 9 214814 ! -49664 ! 1 43 15 6 65822 ! ( 25)

! 4 15 33 18 214823 ! 22 ! 4 15 35 7 214889 ! ( 26)

! 4 31 8 25 239719 ! 8259 ! 5 8 5 31 264496 ! ( 27)

! 4 31 8 37 239731 ! -66230 ! 1 29 26 42 41041 ! ( 28)

! 4 31 8 49 239743 ! -8309 ! 4 15 33 11 214816 ! ( 29)

! 4 31 8 49 239743 ! -8284 ! 4 15 35 9 214891 ! ( 30)

! 4 35 13 10 247975 ! -74517 ! 1 20 2 52 24424 ! ( 31)

! 4 35 13 23 247988 ! -22 ! 4 35 12 8 247922 ! ( 32)

! 4 35 14 11 248007 ! 16532 ! 5 30 9 58 297603 ! ( 33)

! 5 3 28 56 256230 ! -16557 ! 4 10 33 68 206559 ! ( 34)

! 5 8 5 26 264491 ! -57931 ! 2 9 20 40 90698 ! ( 35)

! 5 13 5 21 272854 ! -57956 ! 2 14 17 31 98986 ! ( 36)

! 5 19 13 19 281042 ! -82778 ! 1 24 65 22 32708 ! ( 37)

! 5 19 14 3 281063 ! -41386 ! 3 11 34 46 156905 ! ( 38)

! 5 30 9 91 297636 ! -8265 ! 5 13 5 8 272841 ! ( 39)

! 5 30 10 27 297665 ! -8285 ! 5 13 4 78 272810 ! ( 40)

! 5 30 10 27 297665 ! -18 ! 5 30 9 66 297611 ! ( 41)

! 5 30 10 33 297671 ! -91056 ! 1 20 4 16 24503 ! ( 42)

! 5 30 10 33 297671 ! 6 ! 5 30 10 51 297689 ! ( 43)

! 5 30 10 38 297676 ! -91066 ! 1 20 3 54 24478 ! ( 44)

! 5 30 10 47 297685 ! -82803 ! 1 34 2 48 49276 ! ( 45)

! 5 30 10 47 297685 ! 1 ! 5 30 10 50 297688 ! ( 46)

+----------------------------+--------+----------------------------+

Nombre d'occurrences : 46

Recherche de plusieurs mots satellites
Comme nouvel essai, on va rechercher d’un mot " HRWT " dans le voisinage (région) de la première occurrence du mot " RWXHQD$ " trouvé précédemment en tapant la commande :
search –r 82411 8278 7 "xsynwt" "twrh"

La réponse du programme sera :
>>> Recherche du mot "TWNYSX"

avec écriture du résultat dans le fichier "data\result\xsynwt_0082411_0008278_07_050.txt"

>>> Recherche du mot "HRWT"
avec écriture du résultat dans le fichier "data\result\twrh_0082411_0008278_07_050.txt"

---------------------------------------------------------------------------

Options :
- Recherche de mots satellites d'un mot commencant en 82411
avec un offset de 8278
et d'une longueur de 7 caractères

- La zone de recherche autour du mot a une largeur de 50 caractères

- Recherche dans le fichier "base\torah.txt"

- Recherche aussi le mot écrit à l'envers

- Nombre maximum d'occurrences : 150

---------------------------------------------------------------------------

>>> Traitement ...

>>> Compilation du texte ...

Le mot trouvé aux coordonnées données est "RWXHQD$"

>>> Recherche du mot "TWNYSX" ...

Nombre d'occurrences trouvées : 0

>>> Fichier résultat "data\result\xsynwt_0082411_0008278_07_050.txt"
>>> Recherche du mot "HRWT" ...
Nombre d'occurrences trouvées : 46
>>> Fichier résultat "data\result\twrh_0082411_0008278_07_050.txt"

Remarques : - La largeur de la région de recherche des mots satellites autour du mot principal est de 50 caractères. Pour changer cette largeur de cette zone, vous disposez de l'option -z.

- Le texte de la région de recherche peut être visualisé dans un fichier en plus du résultat de recherche grâce à l'option -v.

- Le texte de la région de recherche peut être visualisé dans un fichier sans le résultat de recherche grâce à l'option -t.

Listes des arguments et des options
Ce chapitre présente les options permettant de modifier le comportement du programme.

Arguments
Le programme attend au minimum comme argument un mot à rechercher (par exemple : search "$dqhxwr"). Il est possible de demander en un seul appel la recherche de plusieurs mots (par exemple : search "$dqhxwr" "xsynwt" "twrh").

Ces recherches sont faites avec les options par défaut dans le programme.

Options
Les options sont une façon simple de choisir et de combiner les éléments qui feront le comportement du programme.

Si vous avez réalisé les essais ci-dessus, vous avez pu découvrir les options par défaut suivantes :

Le programme reconnaît une option par le signe " - " placé juste devant une ou plusieurs lettres. Sans ce signe " - " placé juste devant, le programme considère l’instruction comme un argument.

Par exemple :
-S permet d’effectuer la recherche d’un mot que dans le sens d’écriture

Certaines options nécessiteront un argument après sa déclaration.

Par exemple :
-n 50 permet de limiter le nombre maximum d’occurrences de la recherche à 50.

Si vous ne précisez pas la valeur souhaitée, le programme ne pourra pas la deviner et s’arrêtera. Vous pourrez lire l’anomalie dans les informations d’exécution du programme :

--> Valeur manquante pour l'option -n !

Ces options peuvent être classées en 3 catégories :

Options liées à l’aide
-h permet d’obtenir la liste des arguments et des options
(Comme toute commande digne de ce nom, l’aide est disponible par l’option)

-x permet d’obtenir l’affichage de quelques exemples

Options liées à la recherche en elle-même
-e Recherche étendue au début du mot (minimum 3 caractères) : On étend la recherche au mot " approximé "

-i Si le mot est entré avec un sens de lecture inversé

-l Offset minimum entre deux lettres du mot dans le texte (=0 par défaut)

-m Offset maximum entre deux lettres du mot dans le texte (=infini par défaut)

-s Recherche dans le sens de lecture uniquement

-n Nombre maximum d'occurrences du mot (= 150 par défaut)

-r Région de recherche en coordonnées d'un mot (= <PositionDu1erCar.> <Offset> <NombreDeCaractèreDuMot>)

-z Zone additionnelle autour de la region (=50 par défaut)

Options liées à la présentation des résultats de recherche
-p Affiche la position de chaque caractère des occurences

-v Visualisation de la région de recherche (dans un fichier)

-t Visualisation uniquement de la région de recherche

-u Visualisation inversée de la région de recherche

Options liées aux fichiers à lire ou à écrire
-f Choix du nom du fichier résultat et du nom du fichier texte où faire le recherche par défaut fichier résultat = "data/result/<Mot>.txt" et défaut fichier texte = "base/torah.txt".

En résumé :

search [-ehisptvu] [-l <num>] [-m <num>] [-n <num>] [-r <pos> <off> <len>] [-z <num>] 'Mot1' ... 'MotN' [-f <FichierRésultat> [<FichierTexte>]]