![]() |
Zahlen von x bis y direkt in Datei speichern
Hallo Leute, hab folgendes Problem:
Ich kann nur in ein Memo-Feld die Zahlen eintragen lassen und dann in eine Datei abspeichern lassen. Für das direkte Abspeichern bin ich zu dumm :wall: Wie lautet dazu der Code?? Außerdem dauert meine Metode ewig lange für Zahlen von 100000000 bis 999999999. Vielen Dank im Voraus und Grüße Alex
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var x :integer; begin memo1.Lines.clear; for x := 100000000 to 100000009 do Begin memo1.lines.Add(IntToStr(x)); Memo1.Lines.SaveToFile('Datei.plr'); End; end; end. |
Re: Zahlen von x bis y direkt in Datei speichern
Kein Wunder, dass das lange dauert - es sind auf 8 GB an Daten.
|
Re: Zahlen von x bis y direkt in Datei speichern
Zitat:
das dürfte ziemlich lang dauern, da es sich um mehrere GigaByte handeln dürfte..., aber nur so als kurze Anmerkung :zwinker: : Es reicht, einmal ganz am Ende zu speichern. Du Speichert die Datei in jedem Zyklus der for-Schlefe, das dürfte auch ziemlich viel Zeit verbraten.
Delphi-Quellcode:
for x := 100000000 to 100000009 do memo1.lines.Add(IntToStr(x)); Memo1.Lines.SaveToFile('Datei.plr'); |
Re: Zahlen von x bis y direkt in Datei speichern
Delphi-Quellcode:
Ungetestet, sollte aber (so in der Art) recht schnell funktionieren, vor allem ohne den Umweg über Memos...
procedure blubb(left, right: integer; file: string);
var stream: tfilestream; s: string; i: integer; begin if right < left then exit; stream := tfilestream.create(file); try for i := left to right do begin s := inttostr(i) + #13#10; if length(s) > 4*1024 then begin stream.write(s[1], length(s)); s := ''; end; end; if length(s) > 0 then stream.write(s[1], length(s)); finally stream.free(); end; end; |
Re: Zahlen von x bis y direkt in Datei speichern
Delphi-Quellcode:
procedure Speichern(Von, Bis: Integer; FileName: String);
var MyFile: File of Integer; I: Integer; begin AssignFile(MyFile, FileName); ReWrite(MyFile); try for i := Von to Bis do Write(MyFile, I); finally CloseFile(MyFile); end; end; |
Re: Zahlen von x bis y direkt in Datei speichern
Er will (soweit ich das sehe) die Zahlen als Zeilen einer Datei, also wäre es nicht nur WriteLn, sondern sogar WriteLn(IntToStr(I)).
|
Re: Zahlen von x bis y direkt in Datei speichern
Zitat:
Das IntToStr() kannst du dir dann auch sparen. WriteLn kann auch direkt mit ints umgehen |
DP-Maintenance
Dieses Thema wurde von "Matze" von "Die Delphi-IDE" nach "Sonstige Fragen zu Delphi" verschoben.
|
Re: Zahlen von x bis y direkt in Datei speichern
Aber nicht in einem typisierten file of Integer. Dann wird der Integer in binärer Form in die Datei geschrieben und nicht - wie gewünscht - als Text. Dafür braucht man dann ein TextFile.
Im übrigen sind diese Datei-Routinen aus System doch schon seit einiger Zeit als veraltet anzusehen, wenn ich mich nicht irre, und man sollte besser auf den TFileStream zurückgreifen. |
Re: Zahlen von x bis y direkt in Datei speichern
hmmm, ich sehe nirgens dass die zahl als text gespeichert werden soll...
ich würd sagen der threadersteller sagt mal genauer was er will. und nur weil meine methode veraltet ist (ist sie das ?!?) heißt das noch nicht dass sie schlecht ist :cyclops: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:53 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