ReadXMLFragment überladene Prozeduren

Für Fehler in Lazarus, um diese von anderen verifizieren zu lassen.
Antworten
soerensen3
Beiträge: 104
Registriert: Fr 22. Jun 2012, 01:51
OS, Lazarus, FPC: Fedora-Linux 23 (Korora) Lazarus 1.6 FPC 3.0
CPU-Target: 64Bit
Wohnort: Bonn

ReadXMLFragment überladene Prozeduren

Beitrag von soerensen3 »

Hallo,

ich habe das Gefühl die überladenen Prozeduren von ReadXMLFragment ist nicht sehr glücklich gewählt. Was meint ihr?

Code: Alles auswählen

procedure ReadXMLFragment(AParentNode: TDOMNode; const AFilename: String); overload; //Es gibt keine Möglichkeit auszuwählen welche Prozedur man aufrufen möchte
procedure ReadXMLFragment(AParentNode: TDOMNode; var f: Text); overload;  //Woher soll der Compiler wissen welche Prozedur gewählt wurde   
// Der Vollständigkeit halber die beiden anderen überladenen Deklarationen
procedure ReadXMLFragment(AParentNode: TDOMNode; f: TStream); overload;
procedure ReadXMLFragment(AParentNode: TDOMNode; f: TStream; const ABaseURI: String); overload;    
Besser wäre meiner Meinung nach an dieser Stelle ReadXMLFragmentFromFile oder ReadXMLFragmentFromString.

Lazarus 1.4 mit fpc 2.6 unter Arch Linux 64 Bit

wp_xyz
Beiträge: 5210
Registriert: Fr 8. Apr 2011, 09:01

Re: ReadXMLFragment überladene Prozeduren

Beitrag von wp_xyz »

Es gibt keine Möglichkeit auszuwählen welche Prozedur man aufrufen möchte ... Woher soll der Compiler wissen welche Prozedur gewählt wurde
Doch, aufgrund der verwendeten Parameter-Typen.

Benutzeravatar
theo
Beiträge: 10949
Registriert: Mo 11. Sep 2006, 19:01

Re: ReadXMLFragment überladene Prozeduren

Beitrag von theo »

soerensen3 hat geschrieben: ReadXMLFragmentFromString.
Kann man mit einem TStringStream machen.

Code: Alles auswählen

var S : TStringStream;
...
  SS:=TStringStream.Create(MyXMLString);
  SS.Position:=0;
  ReadXMLFragment(AParentNode,SS); 
...

soerensen3
Beiträge: 104
Registriert: Fr 22. Jun 2012, 01:51
OS, Lazarus, FPC: Fedora-Linux 23 (Korora) Lazarus 1.6 FPC 3.0
CPU-Target: 64Bit
Wohnort: Bonn

Re: ReadXMLFragment überladene Prozeduren

Beitrag von soerensen3 »

Upps Text = TextFile. Dachte das wäre das gleiche wie String. Da findet CodeTools die Definition nicht wenn draufklickt.
theo hat geschrieben:
soerensen3 hat geschrieben: ReadXMLFragmentFromString.
Kann man mit einem TStringStream machen.

Code: Alles auswählen

var S : TStringStream;
...
  SS:=TStringStream.Create(MyXMLString);
  SS.Position:=0;
  ReadXMLFragment(AParentNode,SS); 
...
Das habe ich auch mittlerweile gefunden. Danke!

Gut das ich keinen Bug Report gemacht habe :P

Antworten