Total Files : 814
Total Lines : 34462 /Durchschnitt 42 Lines pro File

HDD:
Total Files : 374
Total Lines :146487
Habe allerdings nach .pb, .java, .cpp und .rb gesucht - da ich mit PB fast noch gar nix gemacht habe^^ca 700 Dateien
ca 90.000 Zeilen
Das ist doch OK, wenn man darauf hinweist...teejex hat geschrieben:Habe allerdings nach .pb, .java, .cpp und .rb gesucht - da ich mit PB fast noch gar nix gemacht habe^^
...
Auja - daran hab ich gar nicht gedacht ^^.teejex hat geschrieben:Ausserdem hat es ja noch einen weiteren Kern
MfGDelay(1) -> 6224ms - 6,2s - 0,1min
;Delay(1) -> 550029ms - 550,0s - 9,1min
Das kann man schlecht messen, da wenn man das Prog zum Zweiten mal startet die Festplatte nicht mehr wirklich durchsucht wird da schon alles im Speicher hängt...teejex hat geschrieben:übrigens würde ich das delay(1) und die PrintN(...) sachen rausnehmen, da das ganze dann - zwar vorübergehend auf kosten des Prozessors - um einiges schneller vonstatten geht ^^ nützlich wenn man seine ganze Festplatte scannt.
Code: Alles auswählen
;PureBasic 4.3
;counts every line of specified files in subdirectories
;...just for fun
Global GStartDir.s = PathRequester("Ordner wählen...","")
If GStartDir = "" : End: EndIf
Global GSearchPattern.s = "|pb|pbi|"
Global ClipBoardText.s
Global GFileCount.l, GLineCount.l, GDirCount.l
Global NewList Lines()
Procedure _FilzDir(dir.s)
If Right(dir,1)<>""
dir+""
EndIf
;PrintN(dir)
ExId = ExamineDirectory(#PB_Any,dir,"*.*")
If ExId
GDirCount+1
While NextDirectoryEntry(ExId)
d$=DirectoryEntryName(ExId)
If DirectoryEntryType(ExId) = #PB_DirectoryEntry_File ; --------- file
If FindString(GSearchPattern,"|"+GetExtensionPart(d$)+"|",1)
;PrintN(d$)
GFileCount+1
fhndl=OpenFile(#PB_Any,dir+d$)
If fhndl
GLinePerFileCount = 0
While Eof(fhndl)=0
ReadString(fhndl)
GLineCount+1
GLinePerFileCount+1
Wend
AddElement(Lines())
Lines() = GLinePerFileCount
CloseFile(fhndl)
EndIf
EndIf
ElseIf d$ <> "." And d$ <> ".." ; --------- directory
_FilzDir(dir+d$)
EndIf
Wend
FinishDirectory(ExId)
EndIf
;Delay(1) ;concession
EndProcedure
Procedure PrintN1(text$)
PrintN(text$)
ClipBoardText+text$+Chr(10)
EndProcedure
If OpenConsole()
_FilzDir(GStartDir)
PrintN("")
PrintN1("Total files: "+Str(GFileCount))
PrintN1("Total lines: "+Str(GLineCount))
PrintN1("Total dirs: "+Str(GDirCount))
PrintN1("---")
PrintN1("Arithmetischen Mittel: "+StrF(GLineCount/GFileCount,1)+" L/F")
SortList(Lines(),#PB_Sort_Ascending)
If ListSize(Lines())%2 = 0
SelectElement(Lines(),ListSize(Lines())/2)
el1 = Lines()
SelectElement(Lines(),ListSize(Lines())/2+1)
el2 = Lines()
median = (el1+el2)/2
Else
SelectElement(Lines(),Round(ListSize(Lines())/2,1))
median = Lines()
EndIf
PrintN1("Median: "+Str(median)+" L/F")
PrintN("")
PrintN("Press enter...")
SetClipboardText(ClipBoardText)
Input()
EndIf
End
Total files: 723
Total lines: 115568
Total dirs: 290
---
Arithmetischen Mittel: 159.8 L/F
Median: 84 L/F