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
» Demande urgente en maths.
par JL35 Aujourd'hui à 21:21

» Compilateur FBPano
par jean_debord Aujourd'hui à 11:24

» Problème de math
par braveen Aujourd'hui à 10:53

» A propos des attributs de fichier
par papydall Hier à 14:33

» Problème de math
par Marc37 Sam 21 Oct 2017 - 23:04

» I Love You
par papydall Sam 21 Oct 2017 - 19:22

» Un petit "coucou" à tous les Panoramiciens !
par mindstorm Sam 21 Oct 2017 - 17:06

» MARK_ON déclenche un événement ON_CLICK à la place de ...
par Jean Claude Mer 18 Oct 2017 - 18:08

» mise a jour calculatrice
par joeeee2017 Mer 18 Oct 2017 - 15:57

» [solved] 3D_LINE How to ?
par Jicehel Mer 18 Oct 2017 - 11:01

» Convertisseur de base 10 de 2 à 36
par gigi75 Mar 17 Oct 2017 - 18:49

» calculatrice avec touches movibles
par joeeee2017 Dim 15 Oct 2017 - 1:11

» CORTANA
par gigi75 Sam 14 Oct 2017 - 16:32

» Calculatrice
par Jean Claude Sam 14 Oct 2017 - 12:30

» KGF_dll - nouvelles versions
par Klaus Mar 10 Oct 2017 - 18:49

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Octobre 2017
LunMarMerJeuVenSamDim
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
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 : 10075
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 : 466
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 : 51
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 : 5954
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 : 10075
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
-
» [résolu]Logiciel Audio avec Code Open source
» 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)
» manuel de code e-anim

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: