HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Hány soros az elkészített alkalmazásunk forráskódja?


Példaprogram letöltése

7882 bájt

Most egy olyan függvényt készítünk, mellyel megkapjuk a választ a címben feltett kérdésre. A függvény képes arra, hogy egy megadott mappában és az azokból nyíló mappákban lévő forráskódjaink sorait összegezze és az eredményt közölje. Ezáltal meghatározható, hogy egy-egy munkánk hány sornyi forráskódból áll.

A függvényünk két változóba gyűjti az információkat. A fileCount-ban a projekthez tartozó állományok száma, míg a lineCount-ban a forráskód sorok száma kerül.
    private int fileCount;
    private int lineCount;
A függvény csak a *.cs kiterjesztésű állományokat dolgozza fel. Ez a függvény a SumFiles lesz. Paraméterként azt a mappát kell megadni, melyben összegezni szeretnénk a forráskódokat. Mivel egy projekt több mappából is állhat, hogy a megadott elérési úton található összes mappa teljes mélységig végig lesz vizsgálva.
A függvény első lépésként egy tömböt kér a *.cs kiterjesztésű állományokról. Ezt egy ciklussal végignézzük és a LinesInFile függvénnyel minden egyes állományban megszámláltatjuk a forráskód sorainak számát.
    private void SumFiles(string path)
    {
      string[] files = Directory.GetFiles(path, "*.cs");         
      foreach (string file in files)
      {
        lineCount+=LinesInFile(file);
        fileCount++;
      }
Következő lépésként egy tömböt kérünk azokról a mappákról, melyek a megadott elérési úton találhatók. Egy ciklus segítségével végigmegyünk ezen a tömbön is és minden mappára meghívjuk ismét a SumFiles függvényt rekurzív módon. Ez biztosítja, hogy minden mappa, teljes mélységig bejárásra kerül, így nem maradhat ki egyetlen *.cs állomány sem.
      string[] dirs = Directory.GetDirectories(path);         
      foreach (string dir in dirs)
      {
        SumFiles(dir);
      }
    }
A LinesInFile függvény megnyitja a megadott forráskódot és megszámlálja benne a sorok számát, melyet visszatérési értékként szolgáltat.
    private int LinesInFile(string file)
    {
      StreamReader sr = File.OpenText(file); 
      StringCollection sc = new StringCollection();
      while (sr.Peek() > -1) 
      {
        sc.Add(sr.ReadLine());
      }
      return sc.Count;
    }

Könyv
Ez a cikk megtalálható ebben a könyvben: C# Software Offline 2002 évkönyv 563. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |