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
» COMPILATEUR V 0.9 beta 7 du 10 aout 2017
par Yannick Aujourd'hui à 1:58

» Pb 17 (en analyse): ITEM_SELECT ne fonctionne pas
par Jack Hier à 19:26

» Compilateur FBPano
par Mike Hier à 13:52

» un nouveau editeur panobasic
par Jean Claude Hier à 10:18

» Le compilateur.
par Pedro Alvarez Hier à 8:36

» Pb 16 (en analyse): ON_CLOSE plante à l'exécution
par Jack Mer 16 Aoû 2017 - 20:00

» Pb 15 (en analyse): TIMER_ON plante à l'exécution
par Jack Mer 16 Aoû 2017 - 19:58

» KGF_dll - nouvelles versions
par Yannick Dim 13 Aoû 2017 - 17:35

» probleme d'outil
par Yannick Dim 13 Aoû 2017 - 17:32

» Carte de France des régions
par Yannick Sam 12 Aoû 2017 - 21:33

» Pb 14 (en analyse): PRINT_LOCATE plante à l'exécution
par Jack Ven 11 Aoû 2017 - 22:37

» Petit avertissement [Mots réservés]
par papydall Ven 11 Aoû 2017 - 13:45

» Distances sur plan
par JL35 Jeu 10 Aoû 2017 - 21:29

» Tracé : Triangle, Carrée, Dents de scie, Sinusoïde redressée
par papydall Jeu 10 Aoû 2017 - 14:52

» Troncature dans une image
par JL35 Mer 9 Aoû 2017 - 13:45

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Août 2017
LunMarMerJeuVenSamDim
 123456
78910111213
14151617181920
21222324252627
28293031   
CalendrierCalendrier

Partagez | 
 

 Un compteur de lignes de code source

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Klaus

avatar

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

MessageSujet: Un compteur de lignes de code source   Sam 22 Avr 2017 - 3: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 : 464
Age : 45
Localisation : Picardie
Date d'inscription : 19/03/2015

MessageSujet: Re: Un compteur de lignes de code source   Sam 22 Avr 2017 - 11: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
Laurent (Minibug)

avatar

Nombre de messages : 2353
Age : 50
Localisation : Vienne (86)
Date d'inscription : 10/02/2012

MessageSujet: Re: Un compteur de lignes de code source   Sam 22 Avr 2017 - 12: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
JL35



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

MessageSujet: Re: Un compteur de lignes de code source   Sam 22 Avr 2017 - 16: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
Klaus

avatar

Nombre de messages : 10062
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 - 21: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
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Le code popup s'installe dans le code source comment faire svp
» {Javascript} Désactivé les touches de F1 à F12 et empêcher la vision du code source
» Récupérer un code HTML dans une page de code source HTML
» Où trouver le code source..?
» [résolu]Logiciel Audio avec Code Open source

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