AGB  ·  Datenschutz  ·  Impressum  







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

Delphi XE2 /TXMLIniFile

Ein Thema von UliBru · begonnen am 7. Feb 2012 · letzter Beitrag vom 7. Feb 2012
Antwort Antwort
UliBru

Registriert seit: 10. Mai 2010
155 Beiträge
 
Delphi 11 Alexandria
 
#1

Delphi XE2 /TXMLIniFile

  Alt 7. Feb 2012, 10:27
Hallo,
ich überleg mir gerade, ob ich nicht mal testen sollte XML anstelle INI zu verwenden. Das Delphi XE2 hat im Beiwerk auch die Unit Xml.XMLIniFile.pas. Da drin sind dann auch die üblichen Funktionen wie ReadString, WriteString etc. enthalten (na ja, ReadFloat gibt es z.B. nicht).
Was mir aber unklar ist:
Mit ini := TIniFile.Create(Dateiname) wird klar der Bezug zu einer Datei festgelegt. Das gibt es bei TXMLIniFile aber nicht. Ich finde auch im Quellcode keine Dateioperation. Create ist definiert als constructor Create(const ANode: IXmlNode);
Wie geht das denn zu verwenden?

Gruss, Uli
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.341 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Delphi XE2 /TXMLIniFile

  Alt 7. Feb 2012, 10:35
Die Klasse ist nur eine Notlösung um bestehende INI-Strukturen abzubilden. Wenn du es gerade neu machst, mach es lieber gleich richtig als XML-Dokument, da hast du viel mehr Möglichkeiten.

Ein kleines Beispiel findest du hier:
http://www.delphipraxis.net/49100-xml-speichern.html#3
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Delphi XE2 /TXMLIniFile

  Alt 7. Feb 2012, 10:38
Wie kommst du darauf, dass ReadFloat nicht enthalten sein sollte?

TXmlIniFile erbt doch von TCustomIniFile und ReadFloat ist dort implementiert.
Man kann das überschreiben (ist virtual) aber man muss nicht.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
UliBru

Registriert seit: 10. Mai 2010
155 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Delphi XE2 /TXMLIniFile

  Alt 7. Feb 2012, 10:53
Die Klasse ist nur eine Notlösung um bestehende INI-Strukturen abzubilden. Wenn du es gerade neu machst, mach es lieber gleich richtig als XML-Dokument, da hast du viel mehr Möglichkeiten.

Ein kleines Beispiel findest du hier:
http://www.delphipraxis.net/49100-xml-speichern.html#3
Danke, schau ich mir an. Ich will aber eigentlich kein Studium über Syntax/Möglichkeiten/Fallstricke von XML beginnen. Bisher war ich mit ini klargekommen. Und wenn ich in die Hilfe bezgl. XMLDocument reinschaue, erschlägt es einen ja zuerst einmal.

Wie kommst du darauf, dass ReadFloat nicht enthalten sein sollte?

TXmlIniFile erbt doch von TCustomIniFile und ReadFloat ist dort implementiert.
Man kann das überschreiben (ist virtual) aber man muss nicht.
Nun, z.B. ReadInteger wird intern mit ReadXmlString über Nodes und all das Zeugs für das XML aufbereitet. Das klappt dann bei ReadFloat plötzlich ohne?

Grüsse, Uli
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: Delphi XE2 /TXMLIniFile

  Alt 7. Feb 2012, 11:30
Wie kommst du darauf, dass ReadFloat nicht enthalten sein sollte?

TXmlIniFile erbt doch von TCustomIniFile und ReadFloat ist dort implementiert.
Man kann das überschreiben (ist virtual) aber man muss nicht.
Nun, z.B. ReadInteger wird intern mit ReadXmlString über Nodes und all das Zeugs für das XML aufbereitet. Das klappt dann bei ReadFloat plötzlich ohne?

Grüsse, Uli
Dann schau dir mal die Implementierung von TCustomIniFile.ReadFloat und TCustomIniFile.WriteFloat an, dann verstehst du auch, warum das funktioniert
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
UliBru

Registriert seit: 10. Mai 2010
155 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Delphi XE2 /TXMLIniFile

  Alt 7. Feb 2012, 16:20
Also ReadInteger benutzt zum einen ReadString in der IniFile Unit bzw. ReadXMLString in der XMLIniFile Unit. Beide Routinen zum Lesen es Strings sehen aber sehr unterschiedlich aus mit unterschiedlichen Variablentypen. Die XML-Geschichte für mich aufwendiger.
Nun verwendet das ReadFloat in der Inifile ebenfalls das ReadString. Wenn das auch für XML reicht, dann täte es dies auch für ReadInteger, da wird aber ReadXMLString verwendet.
Das beisst sich doch oder?

Grüsse, Uli
  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 12:26 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