FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» Et encore un éditeur...
par Minibug Aujourd'hui à 23:07

» Crash récurent de l'éditeur
par Fredisland Aujourd'hui à 19:55

» Demande de correction de la commande instr_right.
par Klaus Aujourd'hui à 19:13

» Recherche de texte AVANT/ARRIERE dans un SYNEDIT
par silverman Aujourd'hui à 18:51

» molette de la souris
par Fredisland Aujourd'hui à 17:57

» Plusieurs fonctions pour la souris
par Fredisland Aujourd'hui à 17:47

» resulta incomplet
par Marc Aujourd'hui à 13:33

» Make_exe
par JL35 Hier à 20:10

» [RÉSOLU] MESSAGE_ERROR_YES_NO idem à deux autres
par Fredisland Hier à 14:29

» Logiciel de traduction: dernières avancées.
par pascal10000 Hier à 9:43

» Convertir un fichier BAS panoramic en fichier EXE
par Klaus Sam 21 Avr 2018 - 23:16

» Astuce dans un string
par Marc Sam 21 Avr 2018 - 18:42

» TRACE_ON problème
par Oscaribout Sam 21 Avr 2018 - 17:55

» [RÉSOLU] Priorité affichage des objets : comment la définir?
par Minibug Sam 21 Avr 2018 - 17:43

» FLAT Design
par Klaus Sam 21 Avr 2018 - 13:15

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Avril 2018
LunMarMerJeuVenSamDim
      1
2345678
9101112131415
16171819202122
23242526272829
30      
CalendrierCalendrier

Partagez | 
 

 Un compteur de lignes de code source

Aller en bas 
AuteurMessage
Klaus

avatar

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

MessageSujet: 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
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
silverman

avatar

Nombre de messages : 579
Age : 45
Localisation : Picardie
Date d'inscription : 18/03/2015

MessageSujet: 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'.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Minibug

avatar

Nombre de messages : 2735
Age : 51
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

MessageSujet: 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 RETURN

Comme cela, il est impossible de cliquer sur les fichier en cours de lecture ! Wink

Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
JL35



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

MessageSujet: 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).
Revenir en haut Aller en bas
Voir le profil de l'utilisateur En ligne
Klaus

avatar

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

MessageSujet: 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
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé




MessageSujet: Re: Un compteur de lignes de code source   

Revenir en haut Aller en bas
 
Un compteur de lignes de code source
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [résolu]Logiciel Audio avec Code Open source
» Astuce : Indenter plusieurs lignes de code à la fois
» compteur php dans page générée par e-anim
» Outil de comptage de fichiers et lignes source
» code pour inséré les anime (Fond transparent)

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: