AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Record mit StringList

Ein Thema von Helmi · begonnen am 25. Feb 2012 · letzter Beitrag vom 26. Feb 2012
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#1

Record mit StringList

  Alt 25. Feb 2012, 13:18
Hallo,

ich hab grad eine Krise

Folgende Vorraussetzungen:
Ich lese eine Ini-Datei aus und speichere die einzelnen Daten (Strings, Integers, etc.) in einem Record.

Soweit so gut - nur muss ich jetzt eine Section als Liste auslesen.
Diese Liste würde ich auch gerne in dem Record speichern.

Also bräuchte ich so was ähnliches wie eine StringList in einem Record.

Meine Überlegung war auch schon, aus dem Record eine Klasse zu machen und dort die Variablen, als auch die StringList als public-Variablen zu definieren (vielleicht auch als property)

Oder gibt es vielleicht eine andere Möglichkeit? - Vielleicht auch eine um bei dem Record bleiben zu können?
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#2

AW: Record mit StringList

  Alt 25. Feb 2012, 14:06
Meine Überlegung war auch schon, aus dem Record eine Klasse zu machen
Das ist ein gute Idee.
Bei der Gelegenheit kannst du auch gleich das Laden und Speichern in die Klasse verlegen:
Delphi-Quellcode:
TAppSetting = class(TObject)
private
  FDieSection : TStrings;

public
  constructor Create;
  destructor Destroy;override;
  procedure LoadFromIni(ini:TCustomIniFile);
  procedure SaveToIni(ini:TCustomIniFile);

  property DieSection:TStrings;
end;
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#3

AW: Record mit StringList

  Alt 25. Feb 2012, 16:17
Man sollte das laden/speichern in einer separaten Klasse erledigen, denn der Datenklasse ist es ziemlich egal, ob sie aus einer INI-Datei kommt.
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#4

AW: Record mit StringList

  Alt 25. Feb 2012, 16:24
Soweit so gut - nur muss ich jetzt eine Section als Liste auslesen.
Diese Liste würde ich auch gerne in dem Record speichern.
Kein Problem, nur fehlen hier paar Einzeheiten in Bezug auf Weiterverarbeitung. Aber mal eine Idee. Ich hoffe ich habe dich verstanden

Zitat:
Also bräuchte ich so was ähnliches wie eine StringList in einem Record.
Einfach CommaText als normaler String speichern. Dieser kann jederzeit in eine StringList als CommaText geladen, verarbeitet und wieder als Commatext gespeichert werden.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.136 Beiträge
 
Delphi 12 Athens
 
#5

AW: Record mit StringList

  Alt 25. Feb 2012, 16:38
Nja, wenn das Lesen/Speichern unbedingt mit drinnen sein soll ... Records kennen auch Methoden. (seit D2006/TDE)

Beim Record wäre ein dynamisches Array besser, also wenn der Record/Delphi weiterhin seinen Speicher selber automatisch verwalten soll.

Sobald ein Objekt (z.B. TList oder TStringList) ins spiel kommt, dann würde ich vom Record abraten und auf ein Datenobjekt umsteigen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#6

AW: Record mit StringList

  Alt 25. Feb 2012, 16:46
Einfach CommaText als normaler String speichern. Dieser kann jederzeit in eine StringList als CommaText geladen, verarbeitet und wieder als Commatext gespeichert werden.
Hallo,

für diese Lösung hab ich mich nun auch entschieden.
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#7

AW: Record mit StringList

  Alt 25. Feb 2012, 17:02
Man sollte das laden/speichern in einer separaten Klasse erledigen...
Kann man machen, muss man aber nicht.
Falls geplant ist, die Daten später aus einer Datenbank, XML- oder JSON-Datei zu laden, sind eigene Persistenzklassen natürlich vorteilhaft.
Andererseits gibt es dann zwei Klassen wo vorher nur ein Record erwünscht war.
Man muss auch bedenken, dass Delphi keine Garbage-Collection hat, so dass man deutlich mehr Code für die Datenklasse und die Persistenzklasse braucht.
Es hat alles seine Vor- und Nachteile.

Ich würde so beginnen, wie ich es oben vorgeschlagen habe.
Sollte es dann notwendig werden die Daten aus einer anderen Quelle (XML,..) zu laden, sollte man je eine weitere Klasse für jede Art der Datenhaltung erstellen.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.136 Beiträge
 
Delphi 12 Athens
 
#8

AW: Record mit StringList

  Alt 25. Feb 2012, 17:07
Daten als Record, Listen darin als dynamisches Array und das Laden/Speichern in je einen Record-Helper (da Records leider keine Vererbung kennen).

CommaText: Falls Kommas in den Texten vorkommen, oder man gernen einen anderen Separator hätte, dann Delimiter und DelimitedText.
PS: StrictDelimiter nicht vergessen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#9

AW: Record mit StringList

  Alt 25. Feb 2012, 18:16
CommaText: Falls Kommas in den Texten vorkommen, oder man gernen einen anderen Separator hätte, dann Delimiter und DelimitedText.
Intern ist beides das gleiche, d. h. Commatext ist Delimitertext mit Komma. Und was die Kommas angeht, ich hab mal für ein Projekt ausführliche Untersuchungen der Commatext Funktion vorgenommen und kann sagen, dass solange man da nicht selbst in den String eingreift und reinpfuscht, da keine Fehler vorkommen, d. h. konvertieren String in Stringlist usw.
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#10

AW: Record mit StringList

  Alt 25. Feb 2012, 18:32
...Oder gibt es vielleicht eine andere Möglichkeit? - Vielleicht auch eine um bei dem Record bleiben zu können?
Sofern der Record zu der Stringliste passt : AddObject. Also die Objects-Eigenschfaft von der Stinglist.
Gruß
Hansa
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 08:42 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