Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Record Fragen (https://www.delphipraxis.net/123811-record-fragen.html)

delphinia 9. Nov 2008 12:33


Record Fragen
 
Hallo ihr lieben.

Wie kann ich aus einem Record (ich nutzte es zum Speichern von Datensätzen)
Einen bestimmten Datensatz X komplett löschen?

Sharky 9. Nov 2008 12:34

Re: Record Fragen
 
Hai,

was verstehst Du denn unter einem Record? Eigentlich entspricht ein Delphi/Pascal-Record ziemlich genau einem Datensatz.

delphinia 9. Nov 2008 12:36

Re: Record Fragen
 
Sorry hier mein Record:

Delphi-Quellcode:
type
  TUserData = record
    id: integer;
    title: string;
    uname: string;
    user: string;
    pass: string;
    auto_time: integer;
  end;

var
  UserData : array of TUserData ;

Sharky 9. Nov 2008 12:42

Re: Record Fragen
 
In diesem Fall hast Du nur die möglichkeit alle Elemete aus dem Array um eine Position nach vorne zu kopieren und dann das Array um eines zu verkleinern.

Eventuell wäre eine Verkettete Liste oder die Verwendung von einer TList besser für dein Vorhaben?

[edite]
Aus der Verketteliste mal eine Verkette Liste gemacht :oops:

delphinia 9. Nov 2008 12:48

Re: Record Fragen
 
Zitat:

Zitat von Sharky
In diesem Fall hast Du nur die möglichkeit alle Elemete aus dem Array um eine Position nach vorne zu kopieren und dann das Array um eines zu verkleinern.

Eventuell wäre eine Verketteliste oder die Verwendung von einer TList besser für dein Vorhaben?

Das weiss ich nicht ob das besser wäre?
Tlist, dachten da kann ich pro Zeile immer nur einen String speichern?
Aber ahbe ja mehrere "Felder" mit Werten und was ist eine Verketteliste?

DeddyH 9. Nov 2008 12:51

Re: Record Fragen
 
Genau, bei einer verketteten Liste musst Du nur einen Zeiger "verbiegen", das geht deutlich schneller und komfortabler. Oder bei TList einfach mit Delete(Index) löschen.

[edit] Ein Tutorial zu verketteten Listen findest Du hier[/edit]

alzaimar 9. Nov 2008 12:55

Re: Record Fragen
 
Zitat:

Zitat von DeddyH
Genau, bei einer verketteten Liste musst Du nur einen Zeiger "verbiegen", das geht deutlich schneller

Das "verbiegen" ist rein von der Übung her interessant (Jeder sollte mal eine Verkette Liste implementiert haben), aber einfacher in der Handhabung ist eine TList allemal. Die paar Nanosekunden Performanceunterschied sind in der realen Welt heutzutage kaum noch der Rede wert.

DeddyH 9. Nov 2008 12:57

Re: Record Fragen
 
Das "schneller und komfortabler" bezog sich nicht auf TList, sondern auf das "Nach vorne Kopieren" innerhalb eines dynamischen Arrays ;)

Luckie 9. Nov 2008 13:17

Re: Record Fragen
 
Zitat:

Zitat von delphinia
Tlist, dachten da kann ich pro Zeile immer nur einen String speichern?

Jaein. Du machst aus deinem Record eine Klasse und jedr Datensatz ist dass ein Objekt dieser Klasse. Und die Objekte kannst du dann in der Liste ablegen. Beispiel siehe hier: http://www.michael-puff.de/Artikel/C...rKlassen.shtml

DeddyH 9. Nov 2008 13:19

Re: Record Fragen
 
Oder wenn es unbedingt Records sein müssen, Pointer auf diese definieren und die dann in der Liste ablegen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:34 Uhr.
Seite 1 von 2  1 2      

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 by Thomas Breitkreuz