![]() |
dummy file erstellen ?
hi jungs,
also ich muss etwas für jemanden coden und zwar ein proggi was eine datei erstellt, die aber komplett mit einem best. zeichen gefüllt ist (#) !!! Dazu soll man z.B. eingeben können, wie groß die sein soll z.B.:die Datei soll 10 MB groß werden. Dann soll das Proggi praktisch eine datei erstellen die 10 mb groß wird und komplett mit dem zeichen gefüllt ist. das mit dem zeichen ist ein bsp. ! Wenn es anders geht ist auch ok. Kann mir dazu jemand infos geben wie ich sowas realisiere oder noch besser etwas code ? danke im voraus. mfg Predator |
Re: dummy file erstellen ?
Das ist wohl die einfachste Lösung.
3 Editfelder und ein Button. Edit1 = Dateiname (z.B. "irgend.was") Edit2 = Das Zeichen, welches dort rein soll (z.B. "#") Edit3 = die Dateigöße in Byte (z.B. "123456")
Delphi-Quellcode:
Procedure TForm1.Button1Click(Sender: TObject);
Var D: File of Char; I, A: Integer; C: Char; Begin A := StrToIntDef(Edit2.Text, -1); If A < 0 Then Begin ShowMessage('Geben sie ''ne Gültige Dateigrösse an!'); Exit; End; If Length(Edit3.Text) < 1 Then Begin ShowMessage('Geben sie ein Zeichen an!'); Exit; End; C := Edit3.Text[1]; AssignFile(D, Edit1.Text); Rewrite(D); For I := 1 to A do Write(D, C); CloseFile(D); End; |
Re: dummy file erstellen ?
kann man das irgendwie mit einer Progressbar verbinden ?
|
Re: dummy file erstellen ?
Wiso nicht ^^
Code:
etwas schneller, da nicht bei jedem Zeichen die Anzeige aktialiesert wird, sonder nur bei jedem 256.:
Procedure TForm1.Button1Click(Sender: TObject);
Var D: File of Char; I, A: Integer; C: Char; Begin A := StrToIntDef(Edit2.Text, -1); If A < 0 Then Begin ShowMessage('Geben sie ''ne Gültige Dateigrösse an!'); Exit; End; If Length(Edit3.Text) < 1 Then Begin ShowMessage('Geben sie ein Zeichen an!'); Exit; End; C := Edit3.Text[1]; AssignFile(D, Edit1.Text); Rewrite(D); [color=red]ProgressBar1.Max := A;[/color] For I := 1 to A do [color=red]Begin[/color] Write(D, C); [color=red]ProgressBar1.Position := I; Application.ProcessMessages; End;[/color] CloseFile(D); End;
Code:
Noch schneller geht's mit Filestream und Co.
Procedure TForm1.Button1Click(Sender: TObject);
Var D: File of Char; I, A: Integer; C: Char; Begin A := StrToIntDef(Edit2.Text, -1); If A < 0 Then Begin ShowMessage('Geben sie ''ne Gültige Dateigrösse an!'); Exit; End; If Length(Edit3.Text) < 1 Then Begin ShowMessage('Geben sie ein Zeichen an!'); Exit; End; C := Edit3.Text[1]; AssignFile(D, Edit1.Text); Rewrite(D); [color=red]ProgressBar1.Max := A;[/color] For I := 1 to A do [color=red]Begin[/color] Write(D, C); [color=red]If I and $FF = 0 Then Begin ProgressBar1.Position := I; Application.ProcessMessages; End; End;[/color] CloseFile(D); End; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:07 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz