AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Verkettete Liste als Baum in Txtdatei abspeichern
Thema durchsuchen
Ansicht
Themen-Optionen

Verkettete Liste als Baum in Txtdatei abspeichern

Ein Thema von bioser · begonnen am 15. Dez 2005 · letzter Beitrag vom 16. Dez 2005
Antwort Antwort
bioser

Registriert seit: 30. Aug 2005
140 Beiträge
 
#1

Verkettete Liste als Baum in Txtdatei abspeichern

  Alt 15. Dez 2005, 21:21
Hallo,

wie kann ich eine doppelt verkettete Liste als Baum in eine Textdatei schreiben ?

Danke für Eure Antwort.

Gruss
BIOSER
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#2

Re: Verkettete Liste als Baum in Txtdatei abspeichern

  Alt 15. Dez 2005, 21:30
Listen als Baum abspeichern ist naturgemäß nicht so einfach (weil eine Liste kein Baum ist).

Speichere die Liste doch einfach sequentiell ab und lies sie dann wieder ein...
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
bioser

Registriert seit: 30. Aug 2005
140 Beiträge
 
#3

Re: Verkettete Liste als Baum in Txtdatei abspeichern

  Alt 15. Dez 2005, 21:41
Hallo alzaimar,

was soll ich machen, wenn ich mehrere verkettete Listen habe ?
Trennzeichen verwenden ?
Danke für Deine Antwort.

Viele Grüße
BIOSER
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: Verkettete Liste als Baum in Txtdatei abspeichern

  Alt 15. Dez 2005, 22:12
Hallo Bioser,

doppelt verkettete Liste sagt ja nur was über den Zugriff auf die Daten aus, aber nichts über die Daten selbst. Die Folgebeziehung aus der Verkettung kann leicht auf einen externen Speicher abgebildet werden, aber man muss die Struktur der zu speichernden Daten kennen um dir einen vernünftigen Vorschlag machen zu können.

Grüße vom marabu
  Mit Zitat antworten Zitat
bioser

Registriert seit: 30. Aug 2005
140 Beiträge
 
#5

Re: Verkettete Liste als Baum in Txtdatei abspeichern

  Alt 15. Dez 2005, 22:35
hi, es handelt sich dabei um Datensätze aus verschiedenen Tabellen.
Meiner Meinung nach wäre es am besten, wenn man sie als Baum
abspeichert, oder ?
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#6

Re: Verkettete Liste als Baum in Txtdatei abspeichern

  Alt 15. Dez 2005, 23:00
Hmm.... Lass mich mal ausholen..
Erstmal: Abspeichern und Einlesen sollte schnell gehen. Also ohne vorher die Einfügeposition suchen zu müssen.
Daraus folgt: Jede Liste sollte so abgespeichert werden, wie sie eben vorliegt. Damit kann man sie 1:1 genauso wieder einlesen.
Daraus folgt aber auch: Jede Liste wird nacheinander abgespeichert.
Ich würde es so machen:

Jede Liste speichert die Elemente hintereinander und dann zum Schluss ein 'Listenende'
Damit kann man das Abspeichern (in Pseudocode) so implementieren:
Code:
Foreach L in ListsToSave Do
  e := L.First;
  While e<>nil do begin
    WriteToFile (e.Contents);
    e := e.NextElement;
  End;
  WriteToFile (<EndOfList>);
  End;
Und das Einlesen so;
Code:
While not EndOfFile Do begin
  L := NewList;
  Repeat
    E := ReadElement;
    If E = EndOfList Then
      Break
    Else
      L.Add (E); // Ans Ende der Liste anhängen
  Until Weihnachten=Ostern; // Hö Hö
End;
Das ist optimal schnell aber es geht einfacher:
Wozu verkettete Listen, wenn es die gute alte TStringList gibt. Auch wenn sie nicht optimal schnell ist, sollte das im Jahre 2005 egal sein, zumal sie bis 20000 Elemente durchaus schnell genug ist (solange man
MyList.Sorted := True setzt. Dann ist das Suchen ordendlich.

Noch ein Tipp: Du hast einen Kunden. Warum, meinst du, bieten die meisten Software-Buden auch 'IT-Consulting' an, also Beratung? Weil die Forderung deines Kunden (wenn er den kein Prof ist ) eine verkettete Liste zu verwenden, auf durchaus kostenpflichtigen Beratungsbedarf (des Kunden) schliessen lässt. Will sagen: Manchmal muss man den Kunden zu seinem Glück *zwingen*

Tipp: Stringlisten.
Und dann so programmieren, das man die Stringlisten -wenns geht- einfach durch noch geeignetere Strukturen ersetzen kann.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#7

Re: Verkettete Liste als Baum in Txtdatei abspeichern

  Alt 16. Dez 2005, 10:30
Hallo Bioser,

wie groß sind deine Listen? Wieviele Felder enthält jeder Tabelleneintrag? Wieviele Tabellen hältst du in deinen Listen vor? Werden alle Tabellen immer vollständig in den Hauptspeicher geladen?

marabu
  Mit Zitat antworten Zitat
Antwort Antwort


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 03:18 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