Hi @ all.
Ich habe ein Programm geschrieben, dem ich eine Textdatei übergeben kann (derzeit noch hardcoded, ich brauch das Prog nur intern). Das Programm bastelt jede mögliche Kombination der Wörter dieser Textdatei zusammen, und zwar in dem Format: wortzahlwort (z.B. test1test). Das ganze wird dann als Textdatei gespeichert, eine Kombination je Zeile.
Das Programm selbst funktioniert eigentlich, aber es bricht plötzlich mit dem Schreiben per WriteLn ab. Es kommt keine Fehlermeldung oder Warnung. Es hört einfach mitten im Schreiben der Textdatei auf und tut so, als ob es fertig wäre.
Der Code ist nicht sehr lang, und da man es im Zusammenhang vielleicht besser versteht, hab ich ihn mal komplett angehangen. Derzeit ist ne ProgressBar mit drin, die ist aber noch nicht eingearbeitet.
Drückt einfach einmal auf Start, wartet 2 Sekunden und schaut euch die gen.txt an. Warum bricht der Schreibvorgang einfach ab?
C ya.
PS: Ja, ich weiß, man soll nicht mit dermaßen vielen globalen Variablen arbeiten, aber es ist auch nicht für eine weltweite Vermarktung gedacht
.
Edit:
Für alle, die sich nichts runterladen wollen
:
Delphi-Quellcode:
var
Form1: TForm1;
Anzahl : Integer;
F : Textfile;
G : Textfile;
Zahl : Integer;
Zaehldurchlauf : Integer;
Wort2 : Integer;
ErstesWort : String;
ZweitesWort : String;
Delphi-Quellcode:
function PasswortGen() : String;
begin
if Zaehldurchlauf < Anzahl*Anzahl then
begin
Zaehldurchlauf := Zaehldurchlauf + 1;
end
else
begin
if Zahl < 9 then
Zahl := Zahl + 1
else
Zahl := 0;
Zaehldurchlauf := 1;
Reset(G);
Reset(F);
end;
if Wort2 < Anzahl then
begin
ReadLn(G,ZweitesWort);
Wort2 := Wort2 + 1;
end
else
begin
Reset(G);
ReadLn(G,ZweitesWort);
Wort2 := 1;
Readln(F,ErstesWort);
end;
result := ErstesWort + IntToStr(Zahl) + ZweitesWort;
end;
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
Z : Textfile;
FileName : String;
Zieldatei : String;
Maximum : Integer;
Durchlauf : Integer;
Passwort : String;
begin
FileName := ExtractFileDir(ParamStr(1)) + 'test.txt';
AssignFile(F,Filename);
Reset(F);
while not eof(F) do
begin
Readln(F);
Anzahl := Anzahl + 1;
end;
Reset(F);
ReadLn(F,ErstesWort);
AssignFile(G,Filename);
Reset(G);
Wort2 := 0;
Zahl := 0;
Label2.Caption := IntToStr(Anzahl);
Maximum := Anzahl*Anzahl*10;
Label6.Caption := IntToStr(Maximum);
Zieldatei := ExtractFileDir(ParamStr(1)) + 'gen.txt';
AssignFile(Z,Zieldatei);
ReWrite(Z);
for Durchlauf := 1 to Maximum do
begin
WriteLn(Z,PasswortGen());
end;
end;
3 Labels auf der Form platzieren und die Label2, -4 und -6 nennen und einen Button draufwerfen.
Was zum testen (in eine test.txt schreiben und ins Progverzeichnis legen
):
Zitat:
aaaa
aaab
aaac
aaad
aaae
aaaf
aaag
aaah
aaai
aaaj
aaak
aaal
aaam
aaan
aaao
aaap
aaaq
aaar
aaas
aaat
aaau
Support bacteria! They are the only culture some people have...