Gesamte Zeilen aller Codes...
Verfasst: 03.04.2009 18:53
Wir müssen mal wieder Inventur machen! Ausserdem tut das der Festplatte gut, wenn sie wieder mal durchgepustet wird.
Ich komme auf jämmerliche:
Total files: 2234
Total f.size (KB): 7903
Total lines: 256561
Total dirs: 984
---
Arithmetischen Mittel: 114.8 L/F
Median: 62 L/F
(und da sind sogar noch fremde Code-Beispiele mit dabei ^^)
Bitte toppen!
edit 4.4.09: Der Code wurde von KeyKon etwas erweitert.
Ich komme auf jämmerliche:
Total files: 2234
Total f.size (KB): 7903
Total lines: 256561
Total dirs: 984
---
Arithmetischen Mittel: 114.8 L/F
Median: 62 L/F
(und da sind sogar noch fremde Code-Beispiele mit dabei ^^)
Bitte toppen!

edit 4.4.09: Der Code wurde von KeyKon etwas erweitert.
Code: Alles auswählen
;PureBasic 4.3
;counts every line of specified files in subdirectories
;...just for fun
; AndyMars, KeyKon
Global GStartDir.s = PathRequester("Ordner wählen...","")
If GStartDir = "" : End: EndIf
Global GSearchPattern.s = "|pb|pbi|"
Global ClipBoardText.s
Global GFileSize.q, 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
GFileSize+DirectoryEntrySize(ExId)
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 - if you like
EndProcedure
Procedure PrintN1(text$)
PrintN(text$)
ClipBoardText+text$+#CRLF$
EndProcedure
If OpenConsole()
_FilzDir(GStartDir)
PrintN("")
PrintN1("Total files: "+Str(GFileCount))
PrintN1("Total f.size (KB): "+Str(GFileSize/1024))
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