Delphi-PRAXiS

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

stefanahrens 12. Jul 2007 14:09


Listen in Datei speichern
 
Moin,

Ich habe ine kleines Problem :)

Ich habe eine Liste, diese ist doppelt Verkette.
typ1
Info1 record
Next Zeiger
Prev Zeiger


und in dem info1 record

info
name string
vorname string
spieltage Liste

befindet sich noch eine Liste.

ich möchte das jetzt alles in eine Datei speichern :)

Hintergrund.

Ich hab eine Liste von Spielern. (doppelt verkettet) Jeder dieser Spieler hat eine Liste von Spieltagen die er gespielt hat (ebenfalls doppelt verkettet).

Wie bekomme ich das jetzt am besten in was für eine Datei?

File of Typ1 beinhaltet dann ja nicht alles oder`?

Danke für eure hilfe.

MfG
Stefan

hoika 12. Jul 2007 14:13

Re: Listen in Datei speichern
 
Hallo,

da fällt mir xml ein.


<player>
<name>
Müller
</name>
<day>
1.1.2007 //jaja ein Neujahrsturnier ;)
</day>
<day>
3.1.2007
</day>
</player>



<player>
<name>
Meier
</name>
</player>


Ich kenne mich mit xml aber nicht so aus,
also bitte korrigiert mich, wenn die Syntax falsch ist.


Heiko

Jens Schumann 12. Jul 2007 14:41

Re: Listen in Datei speichern
 
Hallo,
wenn Du aus deinen Records Objekte machts und für die Objekte als Vorfahren TCollectionItem verwendest
handelt es sich hier um den klassischen Anwendungsfall für die dpCollection

stefanahrens 12. Jul 2007 16:50

Re: Listen in Datei speichern
 
Mhh danke für die schnelle Hilfe. Hab leider mit Objekten noch nicht allzuviel Erfahrung :)


Meine Unit mit den Typen sieht mom so aus.
Delphi-Quellcode:
type
  TName     = String[200];
  TID        = cardinal;
  TPosition = 0..4;

  // Spieler
  TSpieltag = record
                Day : byte;
                Month : byte;
                year : byte;
                Played : boolean;
                Mark : byte;
                Yellow : boolean;
                YellowRed : boolean;
                Goals : byte;
                Red : boolean;
                Team : boolean;
                Zusatz : string[255];
              end;

  // Spielerliste
  PSaison     = ^TSaison;
  TSaison     = record
                  info : TSpieltag;      // Benutzerinfos
                  next : PSaison;        // nächster
                  previous : PSaison;
                end;

  // Spieler-Daten
  TSpieler = record
                Name   : TName;       // Nachname
                Vorname : TName;       // Vorname
                Position : TPosition;  // Position
                Spieltage : PSaison; // Spieltage als Liste
              end;

  // Spieler-Liste
  PMannschaft = ^TSpielerliste;
  TSpielerListe = record
                    info : TSpieler;
                    next : PMannschaft;
                    previous : PMannschaft;
                   end;
:duck:

Muss ich hier schon was ändern ?!

Danke für die Hilfe .

MfG

[edit=SirThornberry]aus quote-tags wurden delphi-tags - nächstes mal bitte selbst richtig machen - Mfg, SirThornberry[/edit]

Chemiker 12. Jul 2007 17:12

Re: Listen in Datei speichern
 
Hallo,

im Grunde genommen sind es doch 2 Listen die nichts miteinander zu tun haben.

1. Spieltag-Liste
2. Spieler-Liste

Deswegen kannst Du sie auch getrennt abspeichern und zwar nur die Daten, ohne Zeiger.

Bis bald Chemiker

stefanahrens 12. Jul 2007 17:44

Re: Listen in Datei speichern
 
Zitat:

Zitat von Chemiker
Hallo,

im Grunde genommen sind es doch 2 Listen die nichts miteinander zu tun haben.

1. Spieltag-Liste
2. Spieler-Liste

Deswegen kannst Du sie auch getrennt abspeichern und zwar nur die Daten, ohne Zeiger.

Bis bald Chemiker


Meinst also, ich soll eine Spieltagdatei machen und eine Spielerdatei.

und dann in die Spieltagdatei auch namen und vornamen des spielers mit rein, um ihn zu identifizieren?

Könnt dann beim Laden natürlich aus den Daten aus der Datei alles wieder in ne Liste machen.

mmh mal sehen.

Sonst jemand nen netten Ansatz für mein Problem?

MfG Stefan

Jens Schumann 12. Jul 2007 19:07

Re: Listen in Datei speichern
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Stefan,
ich habe Dir ein kleines Beispiel auf Basis der dpCollection gebastelt.
In der unit Spieler befindet sich für den Spieler (TPlayer) und für den
Spieltag (TDay) je ein Nachfahre von TCollectionItem. TPlayer enthält mit
der property Saison die Liste für TDay. Wenn Du das Dateiformat erweiterst
must Du lediglich die prperzties von TPlayer, TDay und die beiden Assign
Methoden anpassen.
Das Beste ist: Die Abwärtskompatiblität beibt erhalten !!!!!!

Im Hauptformular steht FPlayer für die Spielerliste. Um die Sache zu
speichern und zu laden benötigst Du lediglich die Methoden SaveToFile
und LoadFromFile von FPlayer


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