Seite 1 von 2
SpeedTest: FileSize() vs. GetFileSize()
Verfasst: 25.08.2005 17:29
von Agent
Ist es euch auch schon aufgefallen, wie langsam FileSize() ist???
Ich hab über Readir mal einiges einlesen lassen und immer die Größe mit FileSize() ermitteln lassen *gääähn*
Danach hab ich das ganze direkt über directoryentrysize() gemacht. Extrem schneller. Hier die Procedure dafür:
Code: Alles auswählen
Procedure GetFileSize(file$)
If ExamineDirectory(#PB_Any,"",file$)
NextDirectoryEntry()
ProcedureReturn DirectoryEntrySize()
Else
ProcedureReturn -1
EndIf
EndProcedure
...testet selbst.
Verfasst: 01.09.2005 18:45
von hardfalcon
sollte es nicht "Procedure.l" sein?
Verfasst: 01.09.2005 19:18
von MVXA
Warum? Wenn hinter Procedure nichts steht, dann wird es automatisch
als procedure.l angesehen. Soweit ich weiß... <_<
Verfasst: 01.09.2005 19:21
von hardfalcon
MVXA hat geschrieben:Warum? Wenn hinter Procedure nichts steht, dann wird es automatisch
als procedure.l angesehen. Soweit ich weiß... <_<
PB-Hilfe hat geschrieben:Eine Prozedur kann wenn nötig ein Ergebnis (Variable, String) zurückliefern. Sie müssen in diesem Fall nach Procedure den Typ (.Typ) festlegen und das ProcedureReturn Schlüsselwort an einem beliebigen Punkt innerhalb der Prozedur aufrufen. Ein Aufruf von ProcedureReturn verlässt umgehend die Prozedur, auch wenn er innerhalb einer Schleife erfolgt.
Verfasst: 01.09.2005 19:45
von Deeem2031
Und wer sagt dir das die Hilfe 100%ig richtig ist..?
Verfasst: 01.09.2005 19:46
von MVXA
Code: Alles auswählen
Procedure Funk(lngA.l, lngB.l)
ProcedureReturn lngA + lngB
EndProcedure
Debug Funk(5, 5)
Irgendwelche Fragen?
noch n kleiner Edit:
> Und wer sagt dir das die Hilfe 100%ig richtig ist..?
Wie ungern ich dir widerspreche aber es muss hier halt mal sein. Die
hat eigentlich für gewöhnlich hier immer Recht. Allerdings ist das bei der
PB Hilfe aus irgendeinem Grund nicht immer der Fall (Andre? Ach ja, der
ist in Urlaub..). Z.b. können beim Network Event "Datei empfangen" die
Dateien auch mit ReceiveNetworkData ausgelesen werden. Das wird in
der Hilfe ebenfalls nicht erwähnt.
Verfasst: 01.09.2005 19:54
von AndyX
hardfalcon hat geschrieben:MVXA hat geschrieben:Warum? Wenn hinter Procedure nichts steht, dann wird es automatisch
als procedure.l angesehen. Soweit ich weiß... <_<
PB-Hilfe hat geschrieben:Eine Prozedur kann wenn nötig ein Ergebnis (Variable, String) zurückliefern. Sie müssen in diesem Fall nach Procedure den Typ (.Typ) festlegen und das ProcedureReturn Schlüsselwort an einem beliebigen Punkt innerhalb der Prozedur aufrufen. Ein Aufruf von ProcedureReturn verlässt umgehend die Prozedur, auch wenn er innerhalb einer Schleife erfolgt.
Genau wie bei den Variablen wird auch bei den Funktionen als Standard-Rückgabetyp Long genommen

Verfasst: 01.09.2005 20:15
von hardfalcon
Das mag ja alles sein, aber schaut euch mal an, was hier pasiert:
Code: Alles auswählen
Procedure test()
ProcedureReturn "Dies ist ein STRING"
EndProcedure
Debug test()
Führt den Code mal aus...

Verfasst: 01.09.2005 20:23
von Green Snake
klar, du nimmst ja auch strings.
aber der standard is nunmal long

Verfasst: 01.09.2005 20:27
von remi_meier
Ich finds gut, dass die Hilfe hier nicht 100% stimmt. Ist nur positiv für den
Coding-Style (Rückgabetyp muss in fast jeder anderen Sprache angegeben
werden).
Weiter so Andre!
