FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Une calculatrice en une ligne de programme
Rechercher une séquence dans une série de fichiers Emptypar jean_debord Aujourd'hui à 8:47

» Form(résolu)
Rechercher une séquence dans une série de fichiers Emptypar leclode Hier à 17:59

» trop de fichiers en cours
Rechercher une séquence dans une série de fichiers Emptypar Marc Hier à 11:42

» Bataille navale SM
Rechercher une séquence dans une série de fichiers Emptypar jjn4 Ven 26 Avr 2024 - 17:39

» Gestion d'un système client-serveur.
Rechercher une séquence dans une série de fichiers Emptypar Pedro Jeu 25 Avr 2024 - 19:31

» Les maths du crocodile
Rechercher une séquence dans une série de fichiers Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

» Naissance de Crocodile Basic
Rechercher une séquence dans une série de fichiers Emptypar jean_debord Jeu 25 Avr 2024 - 8:45

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Rechercher une séquence dans une série de fichiers Emptypar Froggy One Mer 24 Avr 2024 - 18:38

» Dessine-moi une galaxie
Rechercher une séquence dans une série de fichiers Emptypar jjn4 Lun 22 Avr 2024 - 13:47

» Erreur END_SUB
Rechercher une séquence dans une série de fichiers Emptypar jjn4 Lun 22 Avr 2024 - 13:43

» Bug sur DIM_LOCAL ?
Rechercher une séquence dans une série de fichiers Emptypar papydall Dim 21 Avr 2024 - 23:30

» 2D_fill_color(résolu)
Rechercher une séquence dans une série de fichiers Emptypar leclode Sam 20 Avr 2024 - 8:32

» Consommation gaz électricité
Rechercher une séquence dans une série de fichiers Emptypar leclode Mer 17 Avr 2024 - 11:07

» on_key_down (résolu)
Rechercher une séquence dans une série de fichiers Emptypar leclode Mar 16 Avr 2024 - 11:01

» Sous-programme(résolu)
Rechercher une séquence dans une série de fichiers Emptypar jjn4 Jeu 4 Avr 2024 - 14:42

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Avril 2024
LunMarMerJeuVenSamDim
1234567
891011121314
15161718192021
22232425262728
2930     
CalendrierCalendrier
Le deal à ne pas rater :
Cartes Pokémon 151 : où trouver le coffret Collection Alakazam-ex ?
Voir le deal

 

 Rechercher une séquence dans une série de fichiers

Aller en bas 
3 participants
AuteurMessage
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Rechercher une séquence dans une série de fichiers Empty
MessageSujet: Rechercher une séquence dans une série de fichiers   Rechercher une séquence dans une série de fichiers EmptyLun 20 Avr 2015 - 21:18

Le problème est de rechercher une séquence de caractères dans tout ou partie des fichiers d'un répertoire, y compris éventuellement ses sous-répertoires.
Klaus a déjà proposé une sub du même genre: https://panoramic.1fr1.net/t3006-recherche-d-une-chaine-de-caracteres-dans-une-arborescence?highlight=rechercher+une+cha%EEne mais qui, sauf erreur de ma part, ne s'applique qu'à des fichiers de type texte.
Mon problème était de rechercher une séquence donnée Ascii (et pourquoi pas, binaire) dans tous les fichiers ou les fichiers d'un type donné, d'un répertoire et éventuellement de ses sous-répertoires.
La liste des fichiers contenant la séquence est rendue dans le presse-papier.

La sub de recherche fait appel justement à KGF.dll, pour sa fonction 'ReadBinaryFileToString", bien pratique pour faire des recherches dans un fichier de type quelconque.

Code:
DIM r$,s$
r$ = "C:\PROGRA~2\MOZILL~1": ' répertoire de recherche
s$ = "C:\Telechar": ' séquence cherchée

HEIGHT 0,SCREEN_Y
MEMO 9: FULL_SPACE 9

Recseq(r$,"*.*",1,s$): ' recherche dans le répertoire et ses sous-répertoires

CLIPBOARD_PASTE 9
item_add 9, "Terminé !"
END
' ==============================================================================
SUB Recseq(r$,typ$,sr%,seq$)
' Rechercher les fichiers de type typ$ d'un répertoire r$ donné et contenant une
' séquence seq$ donnée.
' Par exemple typ$ = "*.txt"  ou typ$ = "*.*" (tous les fichiers)
' Si sr% = 1: y compris les sous-répertoires (= 0 sinon)
' Liste des fichiers trouvés rendue dans le clipboard (1 ligne par fichier)
DIM_LOCAL pra$,scr$,arg$,q$,a$,rp$,buf$,rs%,me%,resul$,f$,i%,k%
q$ = CHR$(34)
IF RIGHT$(r$,1)<>CHR$(92) THEN r$ = r$ + CHR$(92)
rp$ = r$ + typ$
arg$ = "/B": IF sr% = 1 THEN arg$ = arg$ + " /S": ' + les sous-répertoires
arg$ = arg$ + " /A:-D"
scr$ = "Z:\Vbscript.vbs"
pra$ = "CreateObject(" + q$ + "Wscript.Shell" + q$ + ").Run "
pra$ = pra$+q$+"CMD.exe /c DIR "+rp$+" "+arg$+" | clip"+q$+",0,True"
FILE_OPEN_WRITE 9, scr$: FILE_WRITELN 9, pra$: FILE_CLOSE 9: ' script vbs
EXECUTE_WAIT "WSCRIPT.exe " + scr$: ' Exécution du script
FILE_DELETE scr$
me% = 9900: WHILE OBJECT_EXISTS(me%)=1: me%=me%+1: END_WHILE
MEMO me%: HIDE me%: WIDTH me%,800: CLIPBOARD_PASTE me%
IF LABEL("Nor_dll") = 0 THEN LABEL Nor_dll
ON_ERROR_GOTO Nor_dll: ' si pas de dll chargée, dll_off -> erreur
DLL_OFF: ' à tout hasard
Nor_dll:
OFF_ERROR_GOTO
DLL_ON "C:\PANORAMIC\KLAUS\DLLs\KGF.dll": ' <==== Chemin de KGF.DLL ============
resul$ = ""
FOR i% = 1 TO COUNT(me%)
    a$ = ITEM_READ$(me%,i%)
    f$ = a$: IF sr% <> 1 THEN f$ = r$ + a$
    FILEBIN_OPEN_READ 9, f$
        buf$ = STRING$(FILEBIN_SIZE(9)," ")
    FILEBIN_CLOSE 9
    rs% = DLL_CALL2("ReadBinaryFileToString",ADR(f$),ADR(buf$))
    k% = INSTR(buf$,s$)
    IF k% > 0 THEN resul$=resul$+f$+CHR$(13)+CHR$(10)
NEXT i%
DELETE me%
IF resul$<>"" THEN resul$ = LEFT$(resul$,LEN(resul$)-2)
CLIPBOARD_STRING_COPY resul$
END_SUB
' ==============================================================================

On pourrait facilement, si nécessaire, affiner le résultat en renvoyant également le ou les emplacement(s) dans le fichier où la séquence a été trouvée.


Dernière édition par JL35 le Mar 21 Avr 2015 - 16:44, édité 1 fois
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12274
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

Rechercher une séquence dans une série de fichiers Empty
MessageSujet: Re: Rechercher une séquence dans une série de fichiers   Rechercher une séquence dans une série de fichiers EmptyLun 20 Avr 2015 - 23:15

cheers cheers cheers
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Rechercher une séquence dans une série de fichiers Empty
MessageSujet: Re: Rechercher une séquence dans une série de fichiers   Rechercher une séquence dans une série de fichiers EmptyMar 21 Avr 2015 - 16:43

Merci Klaus !
Je relis seulement maintenant, et je m'aperçois que le forum a encore fait des siennes
Là où il y a (début de la sub):
Code:
IF RIGHT$(r$,1)<>"" THEN r$ = r$ + ""
Il faut lire:
Code:
IF RIGHT$(r$,1)<>CHR$(92) THEN r$ = r$ + CHR$(92)
ce satané Evil or Very Mad forum a encore bouffé l'antislash !
Bon, je corrige ci-dessus, j'espère qu'il n'y en a pas d'autre, mais c'est bougrement agaçant !
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

Rechercher une séquence dans une série de fichiers Empty
MessageSujet: Re: Rechercher une séquence dans une série de fichiers   Rechercher une séquence dans une série de fichiers EmptyMar 21 Avr 2015 - 17:12

En tout cas, c'est un programme qui peut être très pratique quand on sait ce que l'on recherche.
bien sûr quand on ne sait pas, ça ne peut pas faire de miracle. J'ai constaté aussi que je ne pouvais pas trouver le dahu avec (ni de jour, ni de nuit). bon aller, je sors... mais je voulais mettre un commentaire car ce joli programme n'avait pas eu les retours qu'il mérite.
Revenir en haut Aller en bas
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Rechercher une séquence dans une série de fichiers Empty
MessageSujet: Re: Rechercher une séquence dans une série de fichiers   Rechercher une séquence dans une série de fichiers EmptyMar 21 Avr 2015 - 22:06

Euh... effectivement, un programme de recherche qui déciderait tout seul ce qu'il doit chercher... scratch

Pour moi c'était un besoin ponctuel, je cherchais dans un répertoire donné (d'un programme particulier) les fichiers (y compris exécutables, fichiers de config, etc.) contenant la référence à un chemin donné.
C'est très particulier comme usage, et je ne m'attendais pas à un enthousiasme général ( Very Happy ), mais bon, je partage, on ne sait jamais.
Revenir en haut Aller en bas
Contenu sponsorisé





Rechercher une séquence dans une série de fichiers Empty
MessageSujet: Re: Rechercher une séquence dans une série de fichiers   Rechercher une séquence dans une série de fichiers Empty

Revenir en haut Aller en bas
 
Rechercher une séquence dans une série de fichiers
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Panoramic_Editor: Rechercher/Remplacer
» Rechercher une séquence dans un fichier texte
» Rechercher une chaîne de caractère dans un fichier.
» Rechercher un fichier donné dans tout le disque C:
» Recherche d'une chaîne dans tous les fichiers d'un dossier

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: