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
» Synedit Parameters
par Yannick Aujourd'hui à 0:27

» Code à vérifier SVP (Oups ! résolu)
par Jean Claude Hier à 21:16

» Compilateur FBPano
par jean_debord Hier à 9:56

» Bienvenue à Virtualalan !
par UltraVox Hier à 9:18

» Concours de Morpions
par jjn4 Hier à 0:04

» ShortName$(F) [Cloturé]
par papydall Mer 21 Juin 2017 - 16:19

» Remplacer espace par tiret dans noms des dossiers / fichiers
par papydall Mer 21 Juin 2017 - 15:27

» Menu personalisé avec icones et menu contextuel
par Laurent (Minibug) Mer 21 Juin 2017 - 12:44

» La liste des choses à faire ...
par Jack Mar 20 Juin 2017 - 22:49

» Quoi de neuf à propos de Goric 3D ? (@Jack)
par UltraVox Mar 20 Juin 2017 - 21:06

» Nom court et anti fenetre dos
par silverman Mar 20 Juin 2017 - 18:31

» Ludothèque Panoramic
par jjn4 Mar 20 Juin 2017 - 18:09

» Proposition à la communauté
par Yannick Mar 20 Juin 2017 - 15:02

» >199
par maelilou Mar 20 Juin 2017 - 14:13

» NUMBER_FOCUS
par Yannick Lun 19 Juin 2017 - 15:25

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Juin 2017
LunMarMerJeuVenSamDim
   1234
567891011
12131415161718
19202122232425
2627282930  
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 : 9964
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 : 441
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 : 2340
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 : 5882
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 : 9964
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: