Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Wie würdet ihr mehrere Items speichern? (https://www.delphipraxis.net/45656-wie-wuerdet-ihr-mehrere-items-speichern.html)

Pseudemys Nelsoni 10. Mai 2005 08:22


Wie würdet ihr mehrere Items speichern?
 
Moin,

wie würdet ihr (das nur soll hier nur ein Beispiel sein, ist aber genau das worauf ich eine Antwort brauche ;)) mehrere Namen eines Users speichern? Die 3 Möglichkeiten die mir einfallen währen entweder:

- Ein Array
- Eine verkettete Liste
- Ein String der durch einen Seperator die Namen trennt

Ersteres entspricht nichtmehr dem OOP-Konzept? (Hat man mir hier so gesagt :mrgreen:)
Mittleres währe wohl ein bisschen übertrieben für einen einzelnen String...
Einzig die letztere Methode käme für mich wohl in Frage...aber ist das nicht ein wenig unordentlich? Oder gibts da noch andere Methoden?

Ich meine die Namen wären dann (in FNamen) so gespeichert:

name1,name2,name3,name4,name5


Wenn einer von Euch eine bessere Idee hat - Immer her damit ;)

Kedariodakon 10. Mai 2005 08:37

Re: Wie würdet ihr mehrere Items speichern?
 
Wesshalb wäre mittleres ein wenig übertrieben?

Pseudemys Nelsoni 10. Mai 2005 08:40

Re: Wie würdet ihr mehrere Items speichern?
 
Weil ich dann extra Prozeduren schreiben müsste um zu löschen/hinzufügen usw

bernau 10. Mai 2005 08:40

Re: Wie würdet ihr mehrere Items speichern?
 
Zitat:

Zitat von Pseudemys Nelsoni
Ich meine die Namen wären dann (in FNamen) so gespeichert:
name1,name2,name3,name4,name5

In diesem Fall würde sich ein String, mit Separator anbieten (wie du es auch angegeben hast.

Ich würde allerdings dann #13+#10 als Separator verwenden. Dann kannst du diesen String einfach einer Stringliste zuweisen (oder einer Listbox).

Delphi-Quellcode:
MeineStringliste.text:=fNamen;
// Oder
Listbox1.items.text:=fNamen

Gerd

Pseudemys Nelsoni 10. Mai 2005 08:42

Re: Wie würdet ihr mehrere Items speichern?
 
Danke, du hast Recht....an StringList habe ich nicht gedacht, das kommt davon wenn man das jahrelang nichtmehr verwendet *g*

marabu 10. Mai 2005 13:54

Re: Wie würdet ihr mehrere Items speichern?
 
Zitat:

Zitat von bernau
Ich würde allerdings dann #13+#10 als Separator verwenden. Dann kannst du diesen String einfach einer Stringliste zuweisen

Delphi-Quellcode:
sl.CommaText := 'name1,name2,name3';
sl.Text := 'name1'#13#10'name2'#13#10'name3';
sl.Delimiter := '?';
sl.DelimitedText := 'name1?name2?name3';
Die drei Varianten der Zeichenkettenzerlegung produzieren das gleiche Ergebnis. Aber bevor ich cr/lf als Trenner in der Objektvariablen "FNamen: string" verwende, deklariere ich lieber gleich "FNamen: TStringList".

Grüße vom marabu

bernau 10. Mai 2005 14:10

Re: Wie würdet ihr mehrere Items speichern?
 
Zitat:

Zitat von marabu
Die drei Varianten der Zeichenkettenzerlegung produzieren das gleiche Ergebnis.

OK. Delimiter kann man verwenden um andere Separatorn zu verwenden.

Zitat:

Zitat von marabu
Aber bevor ich cr/lf als Trenner in der Objektvariablen "FNamen: string" verwende, deklariere ich lieber gleich "FNamen: TStringList".

Ich verwende in der Regel auch TStringlist, aber manchaml ist es auch einfacher, nur einen String zu verwenden als eine Stringliste zu instanzieren. Und sei es nur, weil ein String in einem Stream einfacher gespeichert werden kann als eine TStringlist.


Gerd

marabu 11. Mai 2005 15:35

Re: Wie würdet ihr mehrere Items speichern?
 
Zitat:

Zitat von bernau
Ich verwende in der Regel auch TStringlist, aber manchaml ist es auch einfacher, nur einen String zu verwenden als eine Stringliste zu instanzieren. Und sei es nur, weil ein String in einem Stream einfacher gespeichert werden kann als eine TStringlist.

Gute Nachrichten - du kannst jetzt immer StringListen verwenden:

Delphi-Quellcode:
var
  sl: TStringList;
  s: TStream;
begin
  // ...
  sl.LoadFromStream(s);
  // ...
  sl.SaveToStream(s);
  // ...
end;
Grüße vom marabu


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