[R] Faire un moteur de recherche pour un txt

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Tyler94
Niveau 1
Niveau 1
Messages : 7
Enregistré le : lun. 22 nov. 2010 14:15
Status : Hors ligne

[R] Faire un moteur de recherche pour un txt

#1

Message par Tyler94 »

Bonjour

Actuellement je travail avec un fichier excel pour le trie des mes plaques qui sont dans des classeurs pour facilité la recherche de celle-ci :

Cellule1 = Classeur | Cellule2 = Plaque

La recherche n'est pas des plus pratique, actuellement j'ai fait cela en php avec une base SQL, mais cela impose de lancer un serveur web pour ce faire.

Connaissant un peu les possibilités de AutoIt je me suis dit pourquoi pas l'utilisé pour facilité tous cela.

Donc est ce possible de créer un moteur de recherche qui va rechercher dans un fichier .txt des informations après un point virgule (ou autres caractère) par exemple:

1.1;007
1.2;008
1.3;009
etc

Je fait une recherche sur la plaque 008 il me ressort Classeur 1.2

Donc voila en gros sachant que je souhaite un "truc" simple d'utilisation car les personnes utilisant le logiciel n'ont pas forcement une approche facile avec l'informatique.

Merci à vous
Modifié en dernier par Tyler94 le lun. 22 nov. 2010 17:15, modifié 1 fois.
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: [..] Faire un moteur de recherche pour un txt

#2

Message par zeshrek »

Ma contribution, plus simple je vois pas :

Ci joint, le source, et le modele de fichier texte correspondant a ta demande
[Edit] : j'avais oublié un controle dans la première version...
Fichiers joints
plaques.zip
(992 Octets) Téléchargé 92 fois
Si vis pacem para bellum
Tyler94
Niveau 1
Niveau 1
Messages : 7
Enregistré le : lun. 22 nov. 2010 14:15
Status : Hors ligne

Re: [..] Faire un moteur de recherche pour un txt

#3

Message par Tyler94 »

Et bien je te remercie énormément, en effet c'est simple, je vais juste regarder quelques chose qui bug, à la recherche de la plaque il me dit bien que c'est le classeur X mais après validation il me dit que la plaque n'existe pas

Merci à toi je demandais si c'etait possible et on me fait la chose lol

@ bientot
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: [..] Faire un moteur de recherche pour un txt

#4

Message par zeshrek »

oooooops, effectivement pour le bug, c'est tout simple. Il faut ajouter
exitloop
apres la ligne
MsgBox(0, "Trouvé", "La plaque " & $plaque & " se trouve dans le classeur " & $splitligne[1])

ce qui donne (je te met que la fonction concernée):

Code : Tout sélectionner

Func _recherche($plaque)

    $file = FileOpen(@ScriptDir & "\plaques.txt", 0)
    If $file = -1 Then
        MsgBox(0, "Erreur", "Fichier inexistant ou illisible")
        Exit
    EndIf

    While 1
        $ligne = FileReadLine($file)

        If @error = -1 Then
            MsgBox(0, "Absent", "La plaque " & $plaque & " est introuvable. Etes vous sur qu'elle se trouve dans un classeur ?")
            ExitLoop
        EndIf

        $splitligne = StringSplit($ligne, ";")

        If $plaque = $splitligne[2] Then
            MsgBox(0, "Trouvé", "La plaque " & $plaque & " se trouve dans le classeur " & $splitligne[1])
            ExitLoop  ;<== la correction est là
        EndIf
    WEnd


    FileClose($file)
EndFunc   ;==>_recherche
Dans la foulée, en relisant mon code je me demande bien a quoi sert la fonction _validation($plaque) ou ce que j'avais en tete au moment ou je l'ai créée !
Donc en gros, tu peux la supprimer, du coup, il suffit de renommer _controle($plaque) en _validation($plaque) et ca te permettra de gagner qq lignes.
Modifié en dernier par zeshrek le lun. 22 nov. 2010 17:19, modifié 1 fois.
Si vis pacem para bellum
Tyler94
Niveau 1
Niveau 1
Messages : 7
Enregistré le : lun. 22 nov. 2010 14:15
Status : Hors ligne

Re: [..] Faire un moteur de recherche pour un txt

#5

Message par Tyler94 »

Merveilleux même pas eu le temps de regarder lol

Un grand merci à toi :)
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] Faire un moteur de recherche pour un txt

#6

Message par zeshrek »

pas de quoi.
(pense a passer le topic en [R]
Si vis pacem para bellum
Avatar du membre
pop45
Membre émérite
Membre émérite
Messages : 251
Enregistré le : dim. 30 août 2009 16:18
Status : Hors ligne

Re: [R] Faire un moteur de recherche pour un txt

#7

Message par pop45 »

Zesherk, la coloration syntaxique du code, c'est uniquement pour les forum tutoriels et exemple de script :wink:
Cordialement Pop45
Veuillez agrée nos sentiment les plus distinguer, soyez assurer de mon entièr et amical collaboration, bien a vous pour toujours et a jamais dans l'unique but de servir l'espérance de votre satisfaction.
Tyler94
Niveau 1
Niveau 1
Messages : 7
Enregistré le : lun. 22 nov. 2010 14:15
Status : Hors ligne

Re: [R] Faire un moteur de recherche pour un txt

#8

Message par Tyler94 »

Rebonjour comme on dit la nuit porte conseil, et j'ai eu l'idée d'un petit quelques choses assez bête mais tellement utile pour ce petit script :

Je souhaiterai faire une recherche par exemple des plaques 75 donc il faudrait une filtre avec *75 et le script me balance toutes les plaques 75, par contre il faudrait que cela fonctionne avec les 2,3,4 etc.. derniers chiffres

J'ai fait des recherche mais je ne trouve pas grand choses sur la Recherche avec AutoIt

Merci à vous :)
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] Faire un moteur de recherche pour un txt

#9

Message par zeshrek »

@pop45 : bin, vu que c'était un exemple de script donné dans la section d'aide, j'ai cru que...
Bon, je le ferai plus


@tyler nouvelle mouture.

Tu peux rentrer un numéro de plaque, ou un bout avec étoile. L'étoile peut etre mise :
- avant -> *8 te donnera les plaques finissant par 8. pas de limite au nombre de caractères après l'étoile (*2465852351 sera accepté et renverra un résultat si un plaque finissant par ces 10 chiffres existe)
- après -> 0* te donnera les plaques commençant par 0. Pas de limite non plus au nombre de caractères avant l'étoile (5218652381* sera accepté et renverra un résultat si un plaque commençant par ces 10 chiffres existe)
- de part et d'autre -> *01* te donnera les plaques contenant la séquence 01. Pas de limite non plus au nombre de caractères entre les étoiles (*0855265416* sera accepté et renverra un résultat si un plaque contenant ces 10 chiffres existe)

Nota : dans mes exemples je donne des chiffres, mais rien n'empêche d'utiliser des lettres... sous réserve que tes plaques aient bien des lettres dans leur code, sans quoi ca servira a rien ;)
Fichiers joints
plaques.zip
Nouvelle mouture avec recherche par masque
(1.42 Kio) Téléchargé 86 fois
Si vis pacem para bellum
Tyler94
Niveau 1
Niveau 1
Messages : 7
Enregistré le : lun. 22 nov. 2010 14:15
Status : Hors ligne

Re: [R] Faire un moteur de recherche pour un txt

#10

Message par Tyler94 »

Merci à toi tu es un AS ca fonctionne à merveille :)

Bon courage pour ton boulot :)
Répondre