Habe mal (gerade wegen den Move("...ToList", ...) Funktionen einen Speedtest gemacht.
Code
Declare Handle btn1, btn2, btn3, ME
Declare Long zArray[], ende, start, stop
Declare String Datei
WindowTitle "Kleiner Speed - Test"
Window 600, 400
btn1 = Create("Button", %HWnd, "Dateien", 10, 10, 60, 25)
btn2 = Create("Button", %HWnd, "Arrays", 110, 10, 60, 25)
btn3 = Create("Button", %HWnd, "Ende", 520, 10, 60, 25)
ME = Create("MultiEdit", %HWnd, "", 10, 60, 560, 270)
SendMessage(ME, $00CF, 1, 0) ' MultiEdit auf Read only
ende = 0
Datei = $ProgDir + "Testfile.txt"
SetSize zArray[], 20000
MAT zArray[] < 1
InitFile()
WhileNot ende
WaitInput
If Clicked(btn1)
' Datei - Operationen
start = &GetTickCount
FileToList1()
stop = &GetTickCount - start
SetText ME, GetText$(ME) + "Dauer bei 20.000 Zeilen : \:stop; Millisekunden bei Move(FileToList,...)\n"
start = &GetTickCount
FileToList2()
stop = &GetTickCount - start
SetText ME, GetText$(ME) + "Dauer bei 20.000 Zeilen : \:stop; Millisekunden mit normalen Datei-Operationen\n\n"
ElseIf Clicked(btn2)
' Array To List
start = &GetTickCount
ArrayToList1()
stop = &GetTickCount - start
SetText ME, GetText$(ME) + "Dauer bei 20.000 Arrayelementen : \:stop; Millisekunden bei Move(ArrToList,...)\n"
start = &GetTickCount
ArrayToList2()
stop = &GetTickCount - start
SetText ME, GetText$(ME) + "Dauer bei 20.000 Arrayelementen : \:stop; Millisekunden bei normalem Kopieren\n\n"
ElseIf Clicked(btn3)
ende = 1
EndIf
EndWhile
End
Proc InitFile
ClearList
UseCursor 15
WhileLoop 1, 20000
AddString(0, Str$(&LOOP) + "." + " Zeile")
EndWhile
Move("ListToFile", Datei)
UseCursor 0
EndProc
Proc FileToList1
ClearList
Move("FileToList", Datei)
EndProc
Proc FileToList2
Declare String zeile
Assign #1, Datei
Reset #1
ClearList
WhileNot Eof(#1)
Input #1, zeile
AddString(0, zeile)
EndWhile
Close #1
EndProc
Proc ArrayToList1
ClearList
Move("ArrToList", zArray[])
EndProc
Proc ArrayToList2
ClearList
WhileLoop 0, SizeOf(zArray[]) - 1
AddString(0, Str$(zArray[&LOOP]))
EndWhile
EndProc
Alles anzeigen
Ist ja schon erstaunlich.