Servus,
hab folgendes Problem, wollte mir so ein Tool zum Testen von Speicherplatz (USB-Sticks, HDDs usw.) selbst basteln.
Problem ist nur wenn ich eingegeben habe wie groß Datei werden soll, dass es zwar geht, aber für 3,00 kb schon Ewigkeiten zum Schreiben benötigt. 1 Zeichen = 1 Byte, pro Byte mach ich dann immer eine 0 im File dazu.
Meine Frage ist nun, gibt es einen Trick/anderen Befehl um ein Daten-Volumen perfomant zu erzeugen?
Hier mal der Code:
Spoiler anzeigen
#include <GUIConstants.au3>
#include <file.au3>
Opt("TrayIconDebug",1)
$file = FileSaveDialog("Speicherort",@DesktopCommonDir,"Data File (*.dat)",16)&".dat"
[/autoit] [autoit][/autoit] [autoit]$hGUI = GUICreate("Space Tester",300,160,-1,-1)
GUICtrlCreateLabel("Bitte Größe des zu erstellenden Files angeben und anschließend auf Start klicken.",20,20,260,50)
GUICtrlCreateLabel("GB:",20,73,20,20)
$gb = GUICtrlCreateInput("0",40,70,30,20)
GUICtrlCreateLabel("MB:",80,73,20,20)
$mb = GUICtrlCreateInput("0",100,70,30,20)
GUICtrlCreateLabel("KB:",140,73,20,20)
$kb = GUICtrlCreateInput("0",160,70,30,20)
GUICtrlCreateLabel("B:",200,73,20,20)
$b = GUICtrlCreateInput("0",220,70,30,20)
$start = GUICtrlCreateButton("Start",125,120,50,20)
GUISetState(@SW_SHOW)
While 1
$msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
Exit
Case $msg = $start
$gb = GUICtrlRead($gb)
$mb = GUICtrlRead($mb)
$kb = GUICtrlRead($kb)
$b = GUICtrlRead($b)
If StringIsDigit($gb) = 0 Or StringIsDigit($mb) = 0 Or StringIsDigit($kb) = 0 Or StringIsDigit($b) = 0 Then
MsgBox(0,"Error","Bitte nur Zahlen in die Eingabefelder eingeben.")
Else
_start()
Exit
EndIf
EndSelect
WEnd
Func _start()
$b = $b + $kb*1024 + $mb*1024^2 + $gb*1024^3
For $count = 1 To $b ;hier muss man des doch auch irgendwie anders machen können
FileWrite($file,"0") ;hier immer +1 Zeichen bzw. Byte
Next
MsgBox(0,"Done","Das File wurde erfolgreich erstellt.")
EndFunc
Danke schon mal im Vorraus und Gruß
Stormy