![]() |
WriteLn begrenzt?
Liste der Anhänge anzeigen (Anzahl: 1)
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 :P . Edit: Für alle, die sich nichts runterladen wollen :P :
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:
3 Labels auf der Form platzieren und die Label2, -4 und -6 nennen und einen Button draufwerfen.
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; Was zum testen (in eine test.txt schreiben und ins Progverzeichnis legen :D): Zitat:
|
Re: WriteLn begrenzt?
Liste der Anhänge anzeigen (Anzahl: 1)
Und Zurück. Nach dem du eine Datei geöffnet hast musst du sie nach getaner Arbeit auch wieder schliessen, sonst gibt es Probleme.
|
Re: WriteLn begrenzt?
Ach, das FileClose :wall: .
Dankeschön :thumb: . Hey, du hast ja so einiges gradegerückt. War dir langweilig? Big thx :D . :dp: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:10 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