Avatar billede lifo Nybegynder
20. maj 2003 - 22:36 Der er 14 kommentarer og
1 løsning

program til at lave statistik over kode

kender i noget program som kan lave statistik over java kode ud fra alle filer i et bibliotek ??
helst lavet i java

jeg har lavet et meget simpelt men det funker ikke altid som det skal
i nogle filer kan det ikke finde mellemrum ??
Avatar billede arne_v Ekspert
20. maj 2003 - 22:41 #1
Vildt gæt: der er tab der hvor den ikke kan finde "mellemrum".
Avatar billede arne_v Ekspert
20. maj 2003 - 22:42 #2
Hvilken form for statistik skal du bruge ?

Antal linier - blanke og kommentarer eller noget i den stil ?
Avatar billede lifo Nybegynder
20. maj 2003 - 22:44 #3
jeps der er masser tabs i
ja antal linjer - bogstaver og andet
Avatar billede lifo Nybegynder
20. maj 2003 - 22:45 #4
der er tabs i alle filerne 
coden jeg bruger til at finde det er denne

Reader in  = new FileReader(fileName);
            while((ch=in.read())!= -1){
               
                if (Character.isLetterOrDigit((char)ch)){
                    charakters+=1;
                    totalchrs+=1;   
                }
                if (Character.isWhitespace((char)ch)){
                    space+=1;
                    totalSpaces+=1;
                }
                if (Character.LINE_SEPARATOR==(char)ch){
                    lines+=1;
                    totalLines+=1;
                }           
            }// end while
            in.close();
Avatar billede arne_v Ekspert
20. maj 2003 - 22:50 #5
Og du er opmærksom på at 1 tab kan svare til mange mellemrum ?

(isWhitheSpace burde finde alle mellemrum !)
Avatar billede lifo Nybegynder
20. maj 2003 - 22:51 #6
ups jeg havde skrevet forkert 
koden kan ikke finde linjer i nogle filer
Avatar billede lifo Nybegynder
20. maj 2003 - 22:57 #7
jeg kan over hoved ikke forestå at den ikke kan finde mellemrum i nogle filer

her er hele koden

import java.io.*;


class SourceStatistics {
     
    int totalLines=0;
    int totalSpaces=0;
    int totalchrs=0;
    int antalFiler=0;
   
    //***************************************************************************
    public SourceStatistics() {
        getFiles();
    }
    //***************************************************************************
    public void getFiles(){
    try{
        File f = new File(".");
        File[] files = f.listFiles();
        int i=0;
        for (i = 0; i<files.length; i++){
            if(files[i].isFile()&files[i].getName().endsWith(".java")){
                getStatistics(files[i].getName());
                antalFiler+=1;           
            }
        }
        System.out.println ("antal Filer          = "+antalFiler);
        System.out.println ("linjer tilsammens    = "+totalLines);
        System.out.println ("bogstaver tilsammens = "+totalchrs);
        System.out.println ("spaces tilsammens    = "+totalSpaces);
       
    }catch(Exception e){
        System.out.println ("ups "+e);
    }
    }
    //***************************************************************************
    public void getStatistics(String fileName){
        System.out.println ("file "+fileName);
        long lines=0;
        long charakters=0;
        int ch;
        int space=0;

        try{
            Reader in  = new FileReader(fileName);
            while((ch=in.read())!= -1){
               
                if (Character.isLetterOrDigit((char)ch)){
                    charakters+=1;
                    totalchrs+=1;   
                }
                if (Character.isWhitespace((char)ch)){
                    space+=1;
                    totalSpaces+=1;
                }
                if (Character.LINE_SEPARATOR==(char)ch){
                    lines+=1;
                    totalLines+=1;
                }           
            }// end while
            in.close();
            System.out.println ("karakterer = "+charakters);    //
            System.out.println ("spaces    = "+space);
            System.out.println ("linjer    = "+lines);
            System.out.println ("------------------------------------------------------ ");
            }catch(Exception e){
                System.out.println ("Ups "+e);
            }
    }
    //***************************************************************************
    public static void main(String args[]) {
        SourceStatistics mainFrame = new SourceStatistics();
       
    }
}
Avatar billede lifo Nybegynder
20. maj 2003 - 22:58 #8
ups nu skrev jeg mellemrum igen  jeg mener antal linjer
Avatar billede arne_v Ekspert
20. maj 2003 - 23:03 #9
Prøv og erstat:
  Character.LINE_SEPARATOR
med:
  '\n'
Avatar billede lifo Nybegynder
20. maj 2003 - 23:07 #10
det kan jeg ikke "\n" er en streng og ch er en char  det går ikke
Avatar billede lifo Nybegynder
20. maj 2003 - 23:07 #11
men du kender ikke noget program som kan lave statistik ??
Avatar billede arne_v Ekspert
20. maj 2003 - 23:08 #12
"\n" er en String
'\n' er en char
" versus '
Avatar billede arne_v Ekspert
20. maj 2003 - 23:09 #13
Men nej jeg kender ikke et færdigt prgram til at lave den form
for statistik.
Avatar billede lifo Nybegynder
20. maj 2003 - 23:12 #14
ahhh mend '\n' fungerer det
Avatar billede arne_v Ekspert
20. maj 2003 - 23:14 #15
:-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester