Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Menge in Datei speichern


cbs - Mo 01.12.08 17:31
Titel: Menge in Datei speichern
Tach DF

Ist sicher völlig banal, aber ich habe weder über Google noch hier im Forum etwas über mein Problem gefunden.

Ich möchte ganz einfach eine Menge in eine Datei speichern (genauer in einem XML-Tag).

Z.B.:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
type
  TElement = (elEins, elZwo);
  TElemente = set of TElement;

var
  ele: TElemente;


Ich habe es bisher so gelöst:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
    for vCntr := Ord(Low(TElement)) to Ord(High(TElement)) do
    begin
      if TElement(vCntr) in ele then
      begin
        // Speichern
      end;
    end;


Geht das auch einfacher? Also ohne alle Möglichen Werte durchzugehen?

Danke schon mal!

mfg

cbs


Hidden - Mo 01.12.08 20:15

Hi :)

Mach doch einfach eine typisierte Datei daraus:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
type
  TMySet = set of TElement;
  TMySetData = file of TMySet;

{..}

procedure SaveSets(aSets: Array of TMySet; aPath: String);  //Speichert alle Sets im Array
var
  i: Integer;
  f: TMySetData;
begin
  AssignFile(aPath, f);
  ReWrite(f);
  for i := 0 to High(aSets) do
    WriteLn(f, aSets[i]);
  CloseFile(f);
end;


mfG,


Bernhard Geyer - Mo 01.12.08 22:18

Oder beschäftige dich etwas mit den Möglichkeiten aus Types.pas. Damit wird auch das Streaming der Formulare (*.dfm) erledigt.


cbs - Di 02.12.08 10:23

@Hidden:

Die Möglichkeit bringt mir nichts, da ich die Menge ja in ein XML-Tag speichern möchte.

@Bernhard Geyer:

Ich habe mal in die types.pas reingeschaut, aber nichts relevantes gefunden. Was meinst du denn genau?