Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Große Datei erzeugen (https://www.delphipraxis.net/37335-grosse-datei-erzeugen.html)

St.Pauli 4. Jan 2005 16:56


Große Datei erzeugen
 
Hi, hab ein Programm, dass eine große Datei (wie goß die Datei letztendlich wird ist mir egal) erstellen soll mit Zufallszahlen. Das klappt schon sehr gut. Nur ist das Programm nicht gerade stabil, weil die Datei sehr groß wird.

Deshalb meine Fragen:

1. Kann ich das Programm stabiler machen?

2. Wie kann ich ine Progressbar einbinden die mir zeigt wann die Datei fertig ist?
(Hab es hier mal versucht :oops: )

Code:
function Zufall(PLen:Integer):String;
var
  str:String;
begin
  Randomize;
  str:='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789^°!§$%&/()=?`´ß}{[]@€+~*# _-:.;,<> ÜÖÄüöä "';
  Result:='';
  repeat
    Result:=Result+str[Random(Length(str))+1];
  until(Length(Result)=PLen)
end;

procedure TForm1.Button1Click(Sender: TObject);
VAR a : Textfile;
     I : Integer;
begin
 Progressbar1.Min:=0;
 Progressbar1.Max:=500;
 for I:=0 to 500-1 do
   Progressbar1.Position:=I;

AssignFile (a, Rdom(4) +'.aaa');
 rewrite(a);
   Repeat
    writeln(a, Rdom(1));
   Until
    I = 0;
 closeFile(a);
end;

bttb930 4. Jan 2005 17:00

Re: Große Datei erzeugen
 
brrrrrrr, die untere prozedur ist ja richtig wirr. was willst du da denn eigentlich machen?????

Christian Seehase 4. Jan 2005 17:32

Re: Große Datei erzeugen
 
Moin St.Pauli,

von welcher Datenmenge redest Du denn?

KLS 4. Jan 2005 17:50

Re: Große Datei erzeugen
 
Zitat:

Zitat von bttb930
brrrrrrr, die untere prozedur ist ja richtig wirr. was willst du da denn eigentlich machen?????

Joah, ich seh auch nicht wie I jemals 0 werden soll. Das ist eine endlosschleife...

ReDoX 4. Jan 2005 17:56

Re: Große Datei erzeugen
 
Hi
Willst du das in der Datei ZufallsZahlen stehen?
Wenn nein dann kanst du so

Delphi-Quellcode:
procedure CreateFile(Size:Integer;Path:String);
 var
 fs: TFileStream;
begin
fs:=TFileStream.Create(Path, fmCreate);
 try
  fs.Size:=Size;
   finally
    fs.Free;
 end;
end;
beliebig große datein erzeugen.
Mfg MrScholz

Edit: Würde das auch so gehen?

Delphi-Quellcode:
procedure CreateTxtFile(Path:String;Range:Integer);
var
 sl : TStringList;
 i : Integer;
begin
sl := TStringList.Create;
 try
  for i := 1 to 1000 do
   sl.Add(IntToStr(Random(Range)));
    finally
     sl.SaveToFile(Path);
     sl.Free;
  end;
end;

endeffects 4. Jan 2005 18:44

Re: Große Datei erzeugen
 
am besten machst du das in einen filestream
oder evtl über memory mapped files,
mit dem letzten kenn ich mich nicht so gut aus
und zur ersten variante findest du reichlich beispiele
über die suchfunktion

St.Pauli 5. Jan 2005 09:41

Re: Große Datei erzeugen
 
Hi, erstmal danke für jede antwort!!! :-D

Ich wollte eigentlich nur ma schauen wir man eine ProgressBar einbindet. Einen Sinn hatte das programm net (Es heißt ja, wenn man anfänger ist soll man immer ma was programmieren ...), und wie ihr seht bin ich gescheitert :wink: !!

Ich glaube aber mit dem Beispiel von MrScholz hab ich das auch gepackt die ProgressBar einzubinden!

MfG,

St.Pauli


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:12 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz