IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

SuperFind: Script de recherche dans les fichiers.


Sujet :

Scripts/Batch

  1. #1
    Membre émérite
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Points : 2 274
    Points
    2 274
    Par défaut SuperFind: Script de recherche dans les fichiers.
    Sa...lut,


    je voudrais réaliser un script de recherche dans les fichiers (sources par exemple) qui serait à la fois puissant et flexible pour que chacun puisse facilement l'adapter à son usage. Je souhaiterais qu'on le fasse ensemble. Je pense utiliser du batch et du vbs pour l'interface graphique, ainsi qu'un éditeur externe pour visualiser les lignes dans leurs contextes. Est ce que ça vous tente ?

  2. #2
    Membre averti

    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Décembre 2003
    Messages
    333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2003
    Messages : 333
    Points : 382
    Points
    382
    Billets dans le blog
    1
    Par défaut
    A mon avis, le plus simple et le plus rapide c'est de dumper tous tes fichiers dans un seul fichier, puis de passer des greps ou des gsar dessus.

  3. #3
    Membre émérite
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Points : 2 274
    Points
    2 274
    Par défaut
    Je crains que ça consomme beaucoup, voire trop de méga-octets inutilement.

    Sinon voici une mise en bouche si ça peut aider à embrayer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    @echo off
    set pt=%cd%\*.cpp *.h *.hpp *.txt
    title recherche dans %pt%
    set /p chaine=
    for /f "tokens=*" %%i in ('dir /a:-d /s /b %pt%') do (
    find /i "%chaine%" "%%~i"
    if not errorlevel 1 pause)

  4. #4
    Membre émérite
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Points : 2 274
    Points
    2 274
    Par défaut
    Voilà une ébauche du code de la partie interface graphique, c'est un fichier hta :

    DataFind.hta
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <title>DataFind</title>
    <HTA:APPLICATION  ID="data_Finder"
        APPLICATIONNAME="dataFinder"
        VERSION="1.1.0"
        SINGLEINSTANCE="yes"
        WINDOWSTATE="normal"
        SHOWINTASKBAR="no"
        BORDER="thin"
        BORDERSTYLE="normal"
        INNERBORDER="no"
        SCROLL="no"
        SCROLLFLAT="no"
        SYSMENU="yes"
        CAPTION="no"
        ICON="no"
        MAXIMIZEBUTTON="no"
        MINIMIZEBUTTON="yes"
        SELECTION="no"
        NAVIGABLE="no"
        CONTEXTMENU="no">
     
    <script language="JScript">
    <!--
    // -->
    </script>
     
     
    <script language="VBScript">
    <!--
     
    dim windowHeight
    windowHeight=screen.availHeight*(2/3) 
     
    function Initialize()
    resizeTo  screen.availWidth,windowHeight 
    moveTo   0,screen.availHeight-windowHeight
    ResizeWindow()
    end function
     
    function ResizeWindow()
           if  document.getElementById("button0").value="«  " then           
               resizeTo 19,windowHeight 
               document.getElementById("button0").value="»  "
               document.getElementById("button9").style.visibility="hidden"
            else   
               resizeTo screen.availWidth,windowHeight 
               document.getElementById("button0").value="«  "
               document.getElementById("button9").style.visibility="visible"
           end if
    end function
     
     
    function ExitApp()
    set opener=self
    self.close()
    end function
    -->
    </script>
    </head>
     
    <body onload="Initialize()" marginwidth="0" marginheight="0" topmargin="2" leftmargin="2" bgcolor="#e2e2e2">
     
    <form> 
    <input name="button0" id="button01" type="button"  style="width:15px; height:24px" onclick="ResizeWindow()" value="«  ">
    <input name="button9" id="button91" type="button" style="width:24px; height:24px; position: absolute; top:2px; right:2px; font-weight:bolder; border:dashed; color:white; border-color:white; background-color:#FF0000;" onclick="ExitApp()" value="X">
    </form>
     
    </body>
     
    </html>

  5. #5
    Membre éclairé Avatar de sloshy
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2005
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 728
    Points : 723
    Points
    723
    Par défaut
    grep fais ça très bien, d'une manière logique et optimisée, et il est portable.
    Bon oui tu pourrais faire un front end de grep, mais l'utilité est limitée je trouve.

  6. #6
    Membre émérite
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Points : 2 274
    Points
    2 274
    Par défaut
    Citation Envoyé par sloshy Voir le message
    Bon oui tu pourrais faire un front end de grep, mais l'utilité est limitée je trouve.
    salut,

    l'utilité de SuperFind en tant que front end ou de grep ?

  7. #7
    Membre éclairé Avatar de sloshy
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2005
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 728
    Points : 723
    Points
    723
    Par défaut
    Ton superFind existe, il s'appelle grep et s'utilise parfaitement, est super modulable itou
    L'idée de faire un front end graphique pour grep est une chose envisageable, mais je trouve limitée

  8. #8
    Membre émérite
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Points : 2 274
    Points
    2 274
    Par défaut
    De toute façon, quel que soit l'utilitaire en ligne que tu utilises, tu fais un script ou tu tapes une ligne de commande. Mon but est d'avoir quelque chose de flexible et paramétrable. Je m'explique. Tu postes ta requête dans l'interface graphique, elle lance le script de recherche, récupère et affiche déjà les premiers résultats, puis tu cliques sur la ligne qui t'intéresse et ça t'ouvre le fichier correspondant dans ton éditeur avec coloration syntaxique et directement sur la bonne ligne. Tu peux faire ça autant de fois que tu veux.

    Ça ne te semble vraiment pas utile ?

  9. #9
    Membre éclairé Avatar de sloshy
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2005
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 728
    Points : 723
    Points
    723
    Par défaut
    Franchement? non.
    si je veux utiliser ce genre de chose, je prend notepad++ qui le gère très bien. si je préfère la console, j'utilise grep.
    Les deux sont simples d'accès bien documenté et simple a utiliser

  10. #10
    Membre émérite
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Points : 2 274
    Points
    2 274
    Par défaut
    notepad++ pour faire de la recherche dans des fichiers ?

  11. #11
    Membre éclairé Avatar de sloshy
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2005
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 728
    Points : 723
    Points
    723
    Par défaut
    Une fois les fichiers dans lesquels tu veux rechercher sont ouvert oui

  12. #12
    Membre émérite
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Points : 2 274
    Points
    2 274
    Par défaut
    Ben ça tous les éditeurs le font. Moi je parle vraiment de rechercher dans des dossiers ou une partition, une fois les fichiers filtrés, faire la recherche du mot ou de la phrase dans ces derniers et afficher pourquoi pas le mot dans son contexte via notepad++. Sinon, effectivement, ce serait inutile.

    Alors, toujours pas convaincu ?

  13. #13
    Membre émérite
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Points : 2 274
    Points
    2 274
    Par défaut
    Je rappelle que l'interface graphique de superfind affiche des extraits, et que si on veut afficher un extrait dans son contexte, on a juste à cliquer dessus.

  14. #14
    Membre éclairé Avatar de sloshy
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2005
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 728
    Points : 723
    Points
    723
    Par défaut
    Pour moi ton projet devrait consister en un front end graphique de grep tout au plus. En ajoutant bien entendu les fonctionalités dont tu as besoins, mais en terme de recherche, je pense pas que tu fera mieux que ce moteur
    http://fr.wikipedia.org/wiki/Grep
    http://man.developpez.com/man1/grep.1.php

  15. #15
    Membre émérite
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Points : 2 274
    Points
    2 274
    Par défaut
    Ben non, mon but n'est pas de faire mieux que grep, sed, findstr ou find, puisque forcément ils seront utilisés en interne.

    Le but, c'est juste d'avoir quelque chose d'interactif et tant qu'à faire pourquoi pas laisser le choix à l'utilisateur en lui donnant la possibilité de cocher une simple case. Et puis s'il coche auto et que grep est dispo sur la machine, on utilise grep, sinon findstr.

    Alors partant ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD17] Recherche dans les fichiers en éliminant les doublons
    Par tun_01 dans le forum WinDev
    Réponses: 30
    Dernier message: 01/04/2014, 21h05
  2. SuperFind: Script de recherche dans les fichiers.
    Par minnesota dans le forum VBScript
    Réponses: 0
    Dernier message: 25/06/2010, 12h14
  3. SuperFind: Script de recherche dans les fichiers.
    Par minnesota dans le forum Scripts/Batch
    Réponses: 0
    Dernier message: 25/06/2010, 12h12
  4. [MySQL] Rechercher dans les fichiers d'un répertoire
    Par barose dans le forum PHP & Base de données
    Réponses: 25
    Dernier message: 22/05/2009, 11h09
  5. Rechercher dans les fichiers d'un projet
    Par FlyByck dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 31/08/2006, 09h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo