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

6201 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 fileCount As Integer
  Private lineCount As Integer
A függvény csak a *.vb 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 *.vb 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 Sub SumFiles(ByVal path As String)
    Dim files As String() = Directory.GetFiles(path, "*.vb")
    Dim file As String
    For Each file In files
      lineCount += LinesInFile(file)
      fileCount += 1
    Next file
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 *.vb állomány sem.
    Dim dirs As String() = Directory.GetDirectories(path)
    Dim dir As String
    For Each dir In dirs
      SumFiles(dir)
    Next dir
  End Sub 'SumFiles
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 Function LinesInFile(ByVal f As String) As Integer
    Dim sr As StreamReader = File.OpenText(f)
    Dim sc As New StringCollection()
    While sr.Peek() > -1
      sc.Add(sr.ReadLine())
    End While
    Return sc.Count
  End Function 'LinesInFile

Cikksorozat



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 |