Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 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 | | Calendrier |
|
|
| Un compteur de lignes de code source | |
| | Auteur | Message |
---|
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Un compteur de lignes de code source Sam 22 Avr 2017 - 2:50 | |
| J'ai fait un petit outil de comptage de lignes source, sans prétendion. Juste saisir l'extension (les 3 lettres gende bas), sans point ni étoile, puis cliquer sur le bouton "Compter". Ensuite, un clic sur une des lignes donne le nombre de lignes de ce fichier. C'est en 100 % Panoramic, et c'est suffisamment rapide. Le programme travaille dans le dossier courant. Pour d'autres dossiers, ajouter un moyen de sélectionner, ou placer ce programe dans ce dossier. - Code:
-
' CompterLignesSource.bas
label compter, detail
dim ext$, fic$, dir$, cnt%, lig%, i%, s$
width 0,600 : height 0,700 alpha 1 : top 1,10 : left 1,10 : caption 1,"Extension: " edit 2 : top 2,10 : left 2,100 : width 2,50 button 3 : top 3,10 : left 3,160 : caption 3,"Compter" : on_click 3,compter
alpha 10 : top 10,40 : left 10,10 : caption 10,"Fichiers:" list 11 : top 11,40 : left 11,100 : width 11,300 : height 11,500 : on_click 11,detail alpha 12 : top 12,40 : left 12,420 : caption 12,"Nombre: 0"
alpha 20 : top 20,570 : left 20,10 : caption 20,"En cours:" alpha 21 : top 21,570 : left 21,70 : caption 21,"0 / 0" alpha 22 : top 22,570 : left 22,140
alpha 30 : top 30,600 : left 30,10 : caption 30,"Lignes:" alpha 31 : top 31,600 : left 31,70 : caption 31,"0" end
compter: ext$ = lower$(trim$(text$(2))) if ext$="" message "L'extension n'est pas indiquée." return end_if clear 11 cnt% = 0 lig% = 0 caption 21,"0 / 0" caption 22,"" caption 31,"0" dir$ = dir_current$ + "\" fic$ = file_find_first$ while fic$<>"_" if left$(fic$,1)<>"." if right$(fic$,len(ext$))=ext$ item_add 11,fic$ cnt% = cnt% + 1 caption 12,"Nombre: "+str$(cnt%) end_if end_if fic$ = file_find_next$ end_while file_find_close if cnt%=0 then return for i%=1 to count(11) fic$ = item_read$(11,i%) caption 21,str$(i%)+" / "+str$(cnt%) caption 22,fic$ file_open_read 1,dir$+fic$ while file_eof(1)=0 file_readln 1,s$ lig% = lig% + 1 end_while file_close 1 caption 31,str$(lig%) next i% message "Vous avez "+str$(lig%)+" lignes de code dans "+str$(cnt%)+" fichiers !" return
detail: lig% = 0 fic$ = item_index$(11) caption 21,str$(item_index(11))+" / "+str$(cnt%) caption 22,fic$ file_open_read 1,dir$+fic$ while file_eof(1)=0 file_readln 1,s$ lig% = lig% + 1 end_while file_close 1 message "Vous avez "+str$(lig%)+" lignes de code dans ce fichier !" return
| |
| | | silverman
Nombre de messages : 970 Age : 52 Localisation : Picardie Date d'inscription : 18/03/2015
| Sujet: Re: Un compteur de lignes de code source Sam 22 Avr 2017 - 10:46 | |
| Petite optimisation : à la place de compter les lignes dans chaque fichier, tu peux les charger 1 à 1 dans un dlist et obtenir le nombre de lignes de chacun avec la fonction 'count'. | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Un compteur de lignes de code source Sam 22 Avr 2017 - 11:14 | |
| Merci Klaus pour ce petit bout de code qui peut s'avérer très pratique. Juste une petit remarque. Pour éviter un plantage s'il y a de nombreux fichiers a scanner, j'ai rajouter : : INACTIVE 11 en ligne 10 et ACTIVE 11 juste avant le RETURNComme cela, il est impossible de cliquer sur les fichier en cours de lecture ! | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Un compteur de lignes de code source Sam 22 Avr 2017 - 15:06 | |
| Effectivement, comme dit silverman c'est extrêmement rapide avec Dlist: chez moi 1 seconde pour 650 fichiers .bas (avec pour chacun Clear et File_Load dans le Dlist). | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Un compteur de lignes de code source Sam 22 Avr 2017 - 20:55 | |
| Merci, Silverman. J'adopte la DLIST - c'est effectivement i,comparablement plus efficace que ce que j'ai faot. Voici le code "rapide comme l'éclair" (avec un petit "display" dans la boucle pour voir la progression): - Code:
-
' CompterLignesSource.bas
label compter, detail
dim ext$, fic$, dir$, cnt%, lig%, i%, s$
width 0,600 : height 0,700 alpha 1 : top 1,10 : left 1,10 : caption 1,"Extension: " edit 2 : top 2,10 : left 2,100 : width 2,50 button 3 : top 3,10 : left 3,160 : caption 3,"Compter" : on_click 3,compter
alpha 10 : top 10,40 : left 10,10 : caption 10,"Fichiers:" list 11 : top 11,40 : left 11,100 : width 11,300 : height 11,500 : on_click 11,detail alpha 12 : top 12,40 : left 12,420 : caption 12,"Nombre: 0"
alpha 20 : top 20,570 : left 20,10 : caption 20,"En cours:" alpha 21 : top 21,570 : left 21,70 : caption 21,"0 / 0" alpha 22 : top 22,570 : left 22,140
alpha 30 : top 30,600 : left 30,10 : caption 30,"Lignes:" alpha 31 : top 31,600 : left 31,70 : caption 31,"0"
dlist 40 end
compter: ext$ = lower$(trim$(text$(2))) if ext$="" message "L'extension n'est pas indiquée." return end_if inactive 0 clear 11 cnt% = 0 lig% = 0 caption 21,"0 / 0" caption 22,"" caption 31,"0" dir$ = dir_current$ + "\" fic$ = file_find_first$ while fic$<>"_" if left$(fic$,1)<>"." if right$(fic$,len(ext$))=ext$ item_add 11,fic$ cnt% = cnt% + 1 caption 12,"Nombre: "+str$(cnt%) end_if end_if fic$ = file_find_next$ end_while file_find_close if cnt%=0 then return for i%=1 to count(11) fic$ = item_read$(11,i%) clear 40 file_load 40,fic$ lig% = lig% + count(40) caption 21,str$(i%)+" / "+str$(cnt%) caption 22,fic$ caption 31,str$(lig%) display next i% active 0 message "Vous avez "+str$(lig%)+" lignes de code dans "+str$(cnt%)+" fichiers !" return
detail: lig% = 0 fic$ = item_index$(11) caption 21,str$(item_index(11))+" / "+str$(cnt%) caption 22,fic$ clear 40 file_load 40,fic$ lig% = count(40) message "Vous avez "+str$(lig%)+" lignes de code dans ce fichier !" return
| |
| | | Contenu sponsorisé
| Sujet: Re: Un compteur de lignes de code source | |
| |
| | | | Un compteur de lignes de code source | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |