Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Records speichern in Datei (https://www.delphipraxis.net/71431-records-speichern-datei.html)

darthwader 15. Jun 2006 07:10


Records speichern in Datei
 
Hi alle miteinander

ich habe mal wieder ein Problem...
und zwar will ich records speichern, das ist ja ansich nicht das Problem.
Es gibt einen wert a, einen wert b und einen wert c=a+b+1, der in einer Schleife hochgezählt wird bis zu einem bestimmten wert und jeweils immer in einer ListBox ausgegeben wird. Jetzt das Problem, wie speichere ich diese Werte (c) in einem Record, so dass ich das in einer Datei Speichern kann und die untereinander stehen. Das Speichern von a und b ist ja kein Problem, aber c hat ja mehrere Wert...

Hat jemand ne Idee??

PS: Sorry, hab das ins falsche Forum gepostet, weiss aber nicht, wie ich das im Nachhinein verschieben kann :-(

Kroko1999 15. Jun 2006 07:17

Re: Records speichern in Datei
 
Zitat:

Zitat von darthwader
...
Es gibt einen wert a, einen wert b und einen wert c=a+b+1
... Das Speichern von a und b ist ja kein Problem, aber c hat ja mehrere Wert...

...

Ja, was den nun :wink:
entwewer ist c=a+b+1, da ist das für jedes a und b nur ein Wert, oder habe ich es nicht verstanden :?:

Mein Vorschlag:
a,b speichern und c bei laden neu berechnen!

DP-Maintenance 15. Jun 2006 07:20

DP-Maintenance
 
Dieses Thema wurde von "Sharky" von "Internet / LAN / ASP.NET" nach "Object-Pascal / Delphi-Language" verschoben.
Ich habe den Thread mal verschoben

darthwader 15. Jun 2006 07:26

Re: Records speichern in Datei
 
öh...da habe ich mich wohl unglücklich ausgedrückt

Also c is inner Schleife und wird quasi hochgezählt...z.B.

1
2
3
4
5
jetzt will ich, dass diese Werte in nem Record gespeichert werden und dann in einer Datei gespeichert werden...hab aber keinen Plan, wie ich das bewerkstelligen soll...

Jasocul 15. Jun 2006 07:31

Re: Records speichern in Datei
 
Da du alle werte in einer ListBox speicherst, würde sich vielleicht dies anbieten:
Delphi-Quellcode:
  ListBox1.Items.SaveToFile('DATEINAME');

Kroko1999 15. Jun 2006 07:34

Re: Records speichern in Datei
 
Zitat:

Zitat von darthwader
öh...da habe ich mich wohl unglücklich ausgedrückt

Also c is inner Schleife und wird quasi hochgezählt...z.B.

1
2
3
4
5
jetzt will ich, dass diese Werte in nem Record gespeichert werden und dann in einer Datei gespeichert werden...hab aber keinen Plan, wie ich das bewerkstelligen soll...

Sorry, ich verstehe es immer noch nicht :cry:

darthwader 15. Jun 2006 07:42

Re: Records speichern in Datei
 
ja, daran habe ich auch schon gedacht, aber die Werte müssen alle in als Record sein und da geht dis ja net so


ich versuchs nochmal zu erklären...

Wert a wird in einer Record gespeichert
Wert b wird in der selben Record gespeichert
jetzt Speichere diese beiden Werte in einer Datei nebeneinander
es geht weiter mit Wert c
Wert c hat den Startwert 1-->speichere diesen Wert in das Record, in das auch schon a und b sind und speichere es auch in der selben Datei neben b. Also wenn a z.B. den wert 3 hat und b den wert 2...dann sieht das jetzt so aus in der Datei:
3 2 1
so und nun zähle c hoch bis 5
2
3
4
5
und speichere jeweils immer die Werte wieder in der Record und dann in die Datei

am Ende steht das in der Datei

3 2 1
----- 2
----- 3
----- 4
----- 5

fkerber 15. Jun 2006 07:45

Re: Records speichern in Datei
 
Hi!

Zitat:

am Ende steht das in der Datei

3 2 1
2
3
4
5
Ist das dann der Zustand, den du erreichen willst oder ist das der "Ist-Zustand" und du willst etwas anderes erreichen?


Ciao Frederic

darthwader 15. Jun 2006 07:48

Re: Records speichern in Datei
 
na so soll es in der Datei aussehen

a b c
3 2 1
-----2
-----3
-----4
-----5

Die "-----" sollen in der Datei leerzeichen sein...

Kroko1999 15. Jun 2006 07:50

Re: Records speichern in Datei
 
dann speichere doch a und b immer wieder mit
a b c
3 2 1
3 2 2
3 2 3
3 2 4
3 2 5

und teste bei laden, ob sich a ubnd b ändern, wenn ja dann ausgeben, wenn nein dann Leerzeichen

fkerber 15. Jun 2006 07:50

Re: Records speichern in Datei
 
Hi!

Sollen die Zahlen immer positiv sein?
Falls ja, dann würde ich ein neues Record immmer mit -1, -1, -1 initialisieren und dann nur c bspw. ändern.
Dann kannst du es mit file of TTyp_deines_records in einer Datei wegspeichern und auch wieder lesen. Beim lesen kannst du dann die -1 wieder unter den Tisch fallen lassen....


Ciao Frederic

darthwader 15. Jun 2006 07:53

Re: Records speichern in Datei
 
die Zahlen variieren. also sind sie nicht immer positiv

Jasocul 15. Jun 2006 08:00

Re: Records speichern in Datei
 
Der Sinn des Ganzen kommt bei mir nicht an.
Ich würde zwei Records nehmen:
Delphi-Quellcode:
type
  TMyRec1 = Record
    a : Integer;
    b : Integer;
    c : Integer;
  end;
  TMyRec2 = Record
    a : String[5];
    b : String[5];
    c : String[5];
  end;
var
  MyRec1 : TMyRec1;
  MyRec2 : TMyRec2;
MyRec1 benutzt du für interne Zwecke und MyRec2 für die Datenspeicherung. Vor dem Speichern musst du MyRec2 nur mit den entsprechenden Werten aus MyRec1 füllen, bzw mit Leerstrings auffüllen.

//EDIT: Source ein wenig angepasst.

Kroko1999 15. Jun 2006 08:04

Re: Records speichern in Datei
 
oder
Delphi-Quellcode:
TMyRecord = record
    A,B: Integer;
    C: array of Integer;
  end;

procedure SaveRecord (const F: TFileStream; const R: TMyRecord),
var
  I: Integer;
begin
  F.Write (R.A,SizeOf(Integer));
  F.Write (R.B,SizeOf(Integer));
  F.Write (Lenght(C),SizeOf(Integer));
  for I := 0 to Length(C)-1 do
    F.Write (R.C[I],SizeOf(Integer));

end;
und Load entsprechend!

darthwader 15. Jun 2006 08:07

Re: Records speichern in Datei
 
Hallo

Vielen Dank für die Hilfe

werde ich gleich mal ausprobieren

Waldteufel 15. Jun 2006 09:01

Re: Records speichern in Datei
 
Hi Darthwader. :hi:

Also, wenn ich deine Beschreibungen so lese, dann glaube ich zu meinen, dass du die Daten tabellarisch (Vorsicht: Record ist ein Fachbegriff) in die Datei schreiben willst.

Schau dir hierzu mal in der Hilfe die Funktion Delphi-Referenz durchsuchenFormat an. ;-)


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