Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Schleife unterbrechen und Stringlist in Datei anhängen (https://www.delphipraxis.net/68163-schleife-unterbrechen-und-stringlist-datei-anhaengen.html)

Smeivel 25. Apr 2006 15:48


Schleife unterbrechen und Stringlist in Datei anhängen
 
Hallo ich hab ein Problem zwar kann ich die Stringlist mit SaveToFile in eine Datei speichern, doch würde ich die Stringlist Daten an lieber an eine Datei anhängen da falls ich das Programm vorzeitig schließe die bisheigen Daten schon in einer Datei vorhenden sind. Wie muss ich also die Stringlist definieren um sie mit Writeln in eine Datei zu schreiben. Außerdem würde ich die Schleife gerne unterbrechen können um einen Zwischenstand anzuschauen. Danke im Voraus Smeivel
Delphi-Quellcode:
procedure TForm1.SpeedButton1Click(Sender: TObject);
var a,b,c,d,w,x,y,z,g,h,i,j:integer; sl: TStringList; f : TextFile;

begin
w:=0;x:=0;y:=0;z:=0;
sl:=TStringList.Create;
AssignFile(f, 'ip.txt');
      for g:=0 to 255 do begin
      a:=w+1;
      w:=a;
         for h:=0 to 255 do begin
         b:=x+1;
         x:=b;
         if b=256 then x:=0;
            for i:=0 to 255 do begin
            c:=y+1;
            y:=c;
            if c=256 then y:=0;
               for j:=0 to 255 do begin
               d:=z+1;
               z:=d;
               if d=256 then z:=0;

               sl.add(IntToStr(a-1)+'.'+IntToStr(b-1)+'.'+IntToStr(c-1)+'.'+IntToStr(d-1));
               //sl.SaveToFile('ip.txt');
               refresh;
               Append(f);
               Writeln(f,[sl]] //Hier möchte ich die stringlist dem txt dokument hinzufügen
               sl.clear;




               end;
            end;
         end;
      end;
CloseFile(f);
end;

procedure TForm1.SpeedButton2Click(Sender: TObject);
begin
   // hiermit möchte ich gerne die pocedure von button 1 anhalten
   //bzw. weiterlaufen lassen
end;

end.

Klaus01 25. Apr 2006 16:02

Re: Schleife unterbrechen und Stringlist in Datei anhängen
 
Delphi-Quellcode:
     
       refresh;
       Append(f);
       Writeln(f,sl.strings[0]] //Hier möchte ich die stringlist dem txt dokument hinzufügen
       sl.clear;
Aber warum willst Du dann überhaupt eine Stringlist
wenn Du sie direkt nach der Benutzung wieder löscht.
Dann würde auch ein stinknormaler string reichen.

Grüße
Klaus

H4ndy 25. Apr 2006 16:18

Re: Schleife unterbrechen und Stringlist in Datei anhängen
 
Wäre viel einfacher ^^
Delphi-Quellcode:
AString = IntToStr(a-1)+'.'+IntToStr(b-1)+'.'+IntToStr(c-1)+'.'+IntToStr(d-1)
Writeln(f,AString)
Wenn du den Zwischenstand haben willst, dann nimm z.B. eine globale Variable für
AString und lass dir den aktuellen Inhalt anzeigen. ( ShowMessage(AString); )
Vergiss aber nicht, irgendwo in der Schleife ein Application.ProcessMessages
(Nicht in der Innersten, am besten in der Zweiten oder Dritten).

So reagiert dein Programm auch noch während du deine 1337 h4x0r IP-Li$t erstellst ;)
(Zumal die StringList mindestes 4.294.967.296 IP-Adressen * 15 Bytes = 60GB Speicher verschlingen würde)

marabu 25. Apr 2006 16:19

Re: Schleife unterbrechen und Stringlist in Datei anhängen
 
Noch einfacher wäre wohl:

Delphi-Quellcode:
var
  c: Cardinal;
  tf: TextFile;
begin
  AssignFile(tf, ExtractFilePath(ParamStr(0)) + 'ip.txt');
  Rewrite(tf);
  for c := 0 to $FFFFFFFF do
  begin
    WriteLn(tf, IntToStr(c shr 24),
      '.', IntToStr(c shr 16 and $FF),
      '.', IntToStr(c shr 8 and $FF),
      '.', IntToStr(c and $FF)
    );
    // Application.ProcessMessages; // falls du noch was anderesvorhast
  end;
  CloseFile(tf);
end;
Bring viel Zeit mit - es wird ein Weilchen dauern...

Grüße vom marabu

Smeivel 25. Apr 2006 19:59

Re: Schleife unterbrechen und Stringlist in Datei anhängen
 
Vielen Dank für die schnellen Antworten! Hoffe so kriege ich meine 1337 h4x0r IP-Li$t hin :cheers: . Mal schauen obs klappt .


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:50 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