Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Recherche d'une chaîne dans tous les fichiers d'un dossier Jeu 27 Avr 2017 - 3:00 | |
| J'ai installé ce petit utilitaire sur mon bureau, car il m'est bien utile. Il recherche une chaîne de caractères dans tous les fichiers texte d'une certaine extension, et donne la liste des fichiers avec les lignes repérées et leur numéro de ligne. On peut choisir l'extension et le dossier de recherche. C'est très rapide, et fort utile: - Code:
-
' test_SearchStringInAllTextFiles.bas
label chercher, choix, folder
dim fic$, crit$, res%, ind%, s$, dir$, dirold$, i%, racine$, dossier$, temp$
dll_on "KGF.dll"
height 0,640 : width 0,470 alpha 1 : top 1,10 : left 1,10 : caption 1,"Modèle de fichier à utiliser:" edit 11 : top 11,30 : left 11,10 : width 11,400 alpha 2 : top 2,60 : left 2,10 : caption 2,"Critère à chercher:" edit 12 : top 12,80 : left 12,10 : width 12,400 button 3 : top 3,30 : left 3,415 : width 3,30 : font_bold 3 : caption 3,"..." : on_click 3,folder
list 20 : top 20,110 : left 20,10 : width 20,400 : height 20,400 : on_click 20,choix button 30 : top 30,520 : left 30,10 : caption 30,"Chercher" : on_click 30,chercher edit 31 : top 31,550 : left 31,10 : width 31,400
end
chercher: clear 20 text 31,"" fic$ = text$(11) crit$ = text$(12) dir$ = file_extract_path$(fic$) if dir$<>"" fic$ = mid$(fic$,len(dir$)+1,len(fic$)) dirold$ = dir_current$ dir_change dir$ end_if res% = dll_call6("SearchStringInAllTextFiles",adr(fic$),adr(crit$),1,0,3,handle(20)) if dir$<>"" then dir_change dirold$ message "Nombre d'occurrences trouvées: "+str$(res%) return choix: ind% = item_index(20) s$ = item_index$(20) while left$(s$,1)<>"(" ind% = ind% - 1 res% = dll_call2("SelectListBoxItem",handle(20),ind%) s$ = item_read$(20,ind%) end_while i% = instr(s$,">") text 31,dir$ + mid$(s$,i%+2,len(s$)) clipboard_string_copy text$(31) return
folder: if dossier$<>"" then racine$ = dossier$ temp$ = string$(255," ") res% = DLL_call4("FolderSelect",adr(racine$),adr(temp$),len(temp$),0) to_foreground 0 if res%=1 racine$ = trim$(temp$) + "\" text 11,racine$ end_if return
Note: prendre la dernière version de KGF.dll ! | |
|