AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Zahlen von x bis y direkt in Datei speichern
Thema durchsuchen
Ansicht
Themen-Optionen

Zahlen von x bis y direkt in Datei speichern

Ein Thema von Al Ex · begonnen am 29. Sep 2007 · letzter Beitrag vom 30. Sep 2007
Antwort Antwort
Seite 1 von 2  1 2      
Al Ex

Registriert seit: 28. Sep 2007
9 Beiträge
 
#1

Zahlen von x bis y direkt in Datei speichern

  Alt 29. Sep 2007, 19:59
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
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.
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Zahlen von x bis y direkt in Datei speichern

  Alt 29. Sep 2007, 20:02
Kein Wunder, dass das lange dauert - es sind auf 8 GB an Daten.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
silver-moon-2000

Registriert seit: 18. Feb 2007
Ort: Schweinfurt
170 Beiträge
 
Delphi XE Professional
 
#3

Re: Zahlen von x bis y direkt in Datei speichern

  Alt 29. Sep 2007, 20:05
Zitat von Al Ex:
Außerdem dauert meine Metode ewig lange für Zahlen von 100000000 bis 999999999.
Hallo,

das dürfte ziemlich lang dauern, da es sich um mehrere GigaByte handeln dürfte..., aber
nur so als kurze Anmerkung :
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');
Tobias
Bitte nicht hauen , ich weiß es nicht besser
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#4

Re: Zahlen von x bis y direkt in Datei speichern

  Alt 29. Sep 2007, 20:08
Delphi-Quellcode:
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;
Ungetestet, sollte aber (so in der Art) recht schnell funktionieren, vor allem ohne den Umweg über Memos...
  Mit Zitat antworten Zitat
dominikkv

Registriert seit: 30. Sep 2006
Ort: Gundelfingen
1.109 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Zahlen von x bis y direkt in Datei speichern

  Alt 29. Sep 2007, 20:28
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;
Dominik
Wer anderen eine Grube gräbt, hat ein Gruben-Grab-Gerät!
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#6

Re: Zahlen von x bis y direkt in Datei speichern

  Alt 29. Sep 2007, 20:30
Er will (soweit ich das sehe) die Zahlen als Zeilen einer Datei, also wäre es nicht nur WriteLn, sondern sogar WriteLn(IntToStr(I)).
  Mit Zitat antworten Zitat
Benutzerbild von Hador
Hador

Registriert seit: 11. Dez 2004
Ort: Recke
682 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Zahlen von x bis y direkt in Datei speichern

  Alt 29. Sep 2007, 21:15
Zitat von Dax:
Er will (soweit ich das sehe) die Zahlen als Zeilen einer Datei, also wäre es nicht nur WriteLn, sondern sogar WriteLn(IntToStr(I)).
Annahme: Dein erstes WriteLn sollte Write heißen.

Das IntToStr() kannst du dir dann auch sparen. WriteLn kann auch direkt mit ints umgehen
Lars Kiesow
http://www.larskiesow.de

Computer gehorchen deinen Befehlen, nicht deinen Absichten.
  Mit Zitat antworten Zitat
29. Sep 2007, 21:19
Dieses Thema wurde von "Matze" von "Die Delphi-IDE" nach "Sonstige Fragen zu Delphi" verschoben.
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Zahlen von x bis y direkt in Datei speichern

  Alt 29. Sep 2007, 21:52
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.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
dominikkv

Registriert seit: 30. Sep 2006
Ort: Gundelfingen
1.109 Beiträge
 
Delphi 2007 Professional
 
#10

Re: Zahlen von x bis y direkt in Datei speichern

  Alt 29. Sep 2007, 21:56
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
Dominik
Wer anderen eine Grube gräbt, hat ein Gruben-Grab-Gerät!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 21:25 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