Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi dyn. Liste und Recordtyp (https://www.delphipraxis.net/3615-dyn-liste-und-recordtyp.html)

Trax 21. Mär 2003 15:24


dyn. Liste und Recordtyp
 
Hi leute,
ich habe ein problem in Bezug auf Datenbanken in Delphi. Ich bin mir nicht sicher ob das Thema wirklich was mit Datenbanken zu tun hat - das thema steht aber unter dem namen "Von der Datei zur Datenbank" deswegen hab ichs hier gepostet.

Ich habe von meinem Info Lehrer folgende Aufgabe bekommen:

Zitat:

Die Suche bestimmter Daten in einer Liste vom Stringtyp ist recht aufwändig. Einfacher ist die Suche (bzw. das Bearbeiten) in einer
dyn Liste vom Recordtyp.
Erkläre dies und bringe ein Beispiel
Ich würde Lügen wenn ich sagen würde das ich wüsste was mein Infolehrer von mir will :D
Wir haben gerade erst mit dem Thema angefangen und für jede Hilfe wäre ich sehr dankbar :angle:

vielen dank schonmal im vorraus

Christian Seehase 21. Mär 2003 19:07

Moin Trax,

hat Dein Lehrer mal so grob erläutert, was er unter "bestimmten Daten" versteht?

Falls nicht, kann ich mich Deinem Unverständnis nur anschliessen.

Trax 22. Mär 2003 11:04

ich vermute mal das er einfach nur einen wert an einer bestimmten position meint (das das auslesen oder so schwierig ist)
ich weiß nicht ob das weiter hilft :?:

Christian Seehase 22. Mär 2003 23:34

Moin Trax,

lass es mich mal so sagen:

In einer String Liste nach einem String zu suchen dürfte sich durch eine andere Listenform kaum vereinfachen lassen.

Was kann denn mit Recordtyp gemeint sein?

Trax 23. Mär 2003 11:02

ich glaub damit mein er einfach das verwenden von RECORDS
bsp.:
Delphi-Quellcode:
Type adresse = RECORD name,ort:string; End;
wenn das irgenwie weiterhilft
ansonsten hab ich keine ahnung :?

Steffen 23. Mär 2003 18:21

Hallo!

Ich denke mal dein "Info-Lehrer" sucht eine solche Datenstruktur...!?

Delphi-Quellcode:
Type
  // Die Nutzdaten
  TData = record
            Text : String[255];
            [...]
          end;

  // Die Liste
  TMainList = ^TMainListElement;
  TMainListelement = record
                       Data : TData;
                       NextY : TMainList;
                     end;
Gruss,
Steffen

Trax 23. Mär 2003 18:31

ich würde sagen ja, aber wie hilft mir das bei der beantwortung der fragen :? :D
wie soll ich das erklären?? warum ist das so??
und was für ein beispiel kann ich bringen?

Steffen 23. Mär 2003 18:40

Hmmm...

Zitat:

Die Suche bestimmter Daten in einer Liste vom Stringtyp ist recht aufwändig.
Das verstehe ich momentan noch nicht so ganz :? , was für Daten habt ihr denn vorher (bisher) benutzt?

Gruss,
Steffen

MrSpock 24. Mär 2003 06:45

Hallo Trax,

ohne Hintergrundinformationen ist es wirklich schwierig die Frage zu beantworten. Die Aufgabe steht ja unter dem Thema "Von der Datei zur Datenbank" und unterscheidet "String-Listen" und "Recordtyp-Listen". Hier man meine Vermutung: Möglicherweise habt ihr bisher mit CSV (comma separated values) gearbeitet !? Das heißt, ihr habt Datensätze zum Beispiel in folgender Form gespeichert:

0001; Karl Mustermann; Tafelstraße 12; 80000; München; 089-12345678
0002; Karl seine Frau :-); Tafelstraße 13; 80000; München; 089-12345678

Will man jetzt z.B. nach Ort oder Postleitzahl suchen, hat man ja die Schwierigkeit, die richtige Position der Feldes im Datensatz zu finden.

Sortiert man das Ganze jedoch in einen Record der Form:
Delphi-Quellcode:
type
  adressDaten = record
    ID: Integer;
    Name: string[60];
    Strasse: string[40];
    PLZ: string[7];
    Ort: string[20];
    Tel: string[20]
  end;
dann hat jeder Datensatz zunächst dieselbe Länge und bei der Suche kann man das gesuchte Feld direkt abfragen:

Delphi-Quellcode:
if aktAdresse.Ort = 'München' then ...
Legt man sogar Indices an, also z.B. eine Liste aller IDs mit der dazugehörigen Position in der Datei / Datenbank, findet man den Datensatz sehr schnell.

So könnte es gemeint sein. Muss es aber nicht :mrgreen: .


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:53 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz