Autor Beitrag
Mariko
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Di 15.04.08 14:53 
Hallo,

gibt es eine einfache Methode um einen beliebigen Record in eine Datei zu schreiben und wider auszulesen?
Silas
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 478

Windows XP Home
Delphi 2005, RAD Studio 2007, MASM32, FASM, SharpDevelop 3.0
BeitragVerfasst: Di 15.04.08 15:07 
Ja, beispielsweise mit TStream.

Es kommt natürlich darauf an, ob es mehrere Records sind, ob sie z.B. in einer INI landen sollen, in XML, ...

_________________
Religionskriege sind nur Streitigkeiten darüber, wer den cooleren imaginären Freund hat ;-)
Mariko Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Di 15.04.08 15:29 
Array sieht folgendermaßen aus

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
TDoubArr = array of double;

  TResultSet = packed record

    LMeanArr : TDoubArr;
    SMeanArr : TDoubArr;
    RMeanArr : TDoubArr;
    CalcTime : Integer;
    LastOneOfBlock  : Boolean;
    LStableTime, SStableTime, RStableTime :Integer;
    LStableValue,SStableValue, RStableValue : Double;
    LDelta, SDelta, RDelta :Double;
    FieldPercent: Integer;
    RuleKey: Integer;
    Stability: TStability;
    BlockID: Integer;
  end;
Silas
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 478

Windows XP Home
Delphi 2005, RAD Studio 2007, MASM32, FASM, SharpDevelop 3.0
BeitragVerfasst: Di 15.04.08 15:38 
Das dürfte schwierig werden, weil du dynamische Arrays verwendest. Für die wird nur die Adresse im Record selbst gespeichert, der Array-Inhalt landet im Heap.

Wenn es für dein Vorhaben möglich ist, statische Arrays zu verwenden, wäre es kein Problem.

_________________
Religionskriege sind nur Streitigkeiten darüber, wer den cooleren imaginären Freund hat ;-)
Mariko Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Di 15.04.08 16:47 
und wenn ich anstat des records eine klasse verwende?

weis dass es in java möglich ist objekte direkt zu speichern, hab aber zu delphi nichts gefunden
jakobwenzel
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1889
Erhaltene Danke: 1

XP home, ubuntu
BDS 2006 Prof
BeitragVerfasst: Di 15.04.08 16:58 
Och, so ist das auch kein Problem:
Einfach ein "file of TResultSet" als Dateityp, ganz altmodisch mit AssignFile und ReWrite zum schreiben öffnen. Dann mit Write die einzelnen Datensätze schreiben und mit CloseFile am Schluss schließen.
Auslesen geht dann mit AssignFile und ResetFile (ka ob mit oder ohne File). Die einzelnen Datensätze werden mit Read gelesen, ob du am Ende bist, erfährst du mit EOF. Am Schluss das Aufräumen geht wieder mit CloseFile.

_________________
I thought what I'd do was, I'd pretend I was one of those deaf-mutes.
Mariko Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Di 15.04.08 17:13 
wenn ich das mache:

[Error] uUtils.pas(35): Type 'TResultSet' needs finalization - not allowed in file type
[Fatal Error] fmMain.pas(10): Could not compile used unit 'uUtils.pas'

liegt glaub ich an den dynamischen arrays