AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

WriteLn begrenzt?

Ein Thema von HaCkAttaCk2001 · begonnen am 3. Mär 2006 · letzter Beitrag vom 4. Mär 2006
Antwort Antwort
Benutzerbild von HaCkAttaCk2001
HaCkAttaCk2001

Registriert seit: 4. Nov 2003
Ort: Chemnitz
95 Beiträge
 
#1

WriteLn begrenzt?

  Alt 3. Mär 2006, 23:16
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
Angehängte Dateien
Dateityp: rar passgen_180.rar (1,4 KB, 1x aufgerufen)
Support bacteria! They are the only culture some people have...
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#2

Re: WriteLn begrenzt?

  Alt 3. Mär 2006, 23:40
Und Zurück. Nach dem du eine Datei geöffnet hast musst du sie nach getaner Arbeit auch wieder schliessen, sonst gibt es Probleme.
Angehängte Dateien
Dateityp: zip passgen_549.zip (3,5 KB, 2x aufgerufen)
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Benutzerbild von HaCkAttaCk2001
HaCkAttaCk2001

Registriert seit: 4. Nov 2003
Ort: Chemnitz
95 Beiträge
 
#3

Re: WriteLn begrenzt?

  Alt 4. Mär 2006, 00:09
Ach, das FileClose .


Dankeschön .

Hey, du hast ja so einiges gradegerückt. War dir langweilig? Big thx .

Support bacteria! They are the only culture some people have...
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:01 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