![]() |
AW: himXML (gesprochen himix ML)
Wow, ich glaube ich lade mir doch die Version aus der Zukunft von 2020! :mrgreen:
Du könntest ja evtl. beide Versionen nochmal neu hochladen mit einem besseren Namen ;) |
AW: himXML (gesprochen himix ML)
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo himitsu,
ich wollte gerade Dein himXML ausprobieren unter Delphi 2006. Leider bekomme ich keine Daten aus meiner XML-Datei ausgelesen. Könntest Du mir da vielleicht weiterhelfen. Das erste ist, wenn ich Deine Datei himXML.pas öffne, dann bekomme ich schonmal die Meldungen aus dem Anhang. Dann probiere ich es trotzdem mit folgenden Code die XML-Datei zu öffnen und Werte auszulesen :
Delphi-Quellcode:
Jedesmal bekomme ich eine AccessViolation in der Zeile
var
FormalXML : TXMLFile; begin FormalXML := TXMLFile.Create; try FormalXML.asXML := '"' + GetEnvVarValue('SystemRoot') + '\Performance\WinSAT\DataStore\2010-08-28 14.10.58.562 Formal.Assessment (Initial).WinSAT.xml"'; with FormalXML.Node['WinSAT'].Node['WinSPR'] do begin Label30b.Caption := Node['CpuScore'].Text; Label112b.Caption := Node['MemoryScore'].Text; Label113b.Caption := Node['GraphicsScore'].Text; Label114b.Caption := Node['GamingScore'].Text; Label115b.Caption := Node['DiskScore'].Text; end; finally FormalXML.Free; end; end;
Delphi-Quellcode:
. Das ganze führe ich unter Windows 7 x64 aus.
with FormalXML.Node['WinSAT'].Node['WinSPR'] do
Edit: Wenn ich das ganze so ausprobiere :
Delphi-Quellcode:
Bei dieser Variante wird noch der Pfad vom Arbeitsverzeichnis vor den übergebenen Pfad gesetzt. Somit funktioniert auch hier das Laden des XML-Files nicht.
var
FormalXML : TXMLFile; begin FormalXML := TXMLFile.Create; try FormalXML.LoadFromFile('"' + GetEnvVarValue('SystemRoot') + '\Performance\WinSAT\DataStore\2010-08-28 14.10.58.562 Formal.Assessment (Initial).WinSAT.xml"'); with FormalXML.Node['WinSAT'].Node['WinSPR'] do begin Label30b.Caption := Node['CpuScore'].Text; Label112b.Caption := Node['MemoryScore'].Text; Label113b.Caption := Node['GraphicsScore'].Text; Label114b.Caption := Node['GamingScore'].Text; Label115b.Caption := Node['DiskScore'].Text; end; finally FormalXML.Free; end; end; |
AW: himXML (gesprochen himix ML)
asXML ist der Inhalt der XML-Datei ... also der XML-Code selber.
Eine Datei laden kannst du über LoadFromFile
Delphi-Quellcode:
oder direkt beim Create
var
FormalXML : TXMLFile; begin FormalXML := TXMLFile.Create(; try FormalXML.LoadFromFile(GetEnvVarValue('SystemRoot') + '\Performance\WinSAT\DataStore\2010-08-28 14.10.58.562 Formal.Assessment (Initial).WinSAT.xml'); with FormalXML.Node['WinSAT'].Node['WinSPR'] do begin Label30b.Caption := Node['CpuScore'].Text; Label112b.Caption := Node['MemoryScore'].Text; Label113b.Caption := Node['GraphicsScore'].Text; Label114b.Caption := Node['GamingScore'].Text; Label115b.Caption := Node['DiskScore'].Text; end; finally FormalXML.Free; end; end;
Delphi-Quellcode:
Wie sieht denn die XML-Datei aus?
var
FormalXML : TXMLFile; begin FormalXML := TXMLFile.Create(nil, GetEnvVarValue('SystemRoot') + '\Performance\WinSAT\DataStore\2010-08-28 14.10.58.562 Formal.Assessment (Initial).WinSAT.xml'), False); try Label30b.Caption := FormalXML['WinSAT\WinSPR\CpuScore'].Text; Label112b.Caption := FormalXML['WinSAT\WinSPR\MemoryScore'].Text; ... Wenn "WinSAT" der Name des RootNode/Hauptknoten ist, dann kannst/mußt du .Node['WinSAT'] weglassen, da der Hauptknoten über XML.Node schon direkt angesprochen wurde. |
AW: himXML (gesprochen himix ML)
Hallo Himitsu,
danke erstmal für Deine prompte Antwort. Zitat:
Zitat:
Wenn ich Dein Beispiel übernehme, bekomme ich folgende Fehlermeldung : Zitat:
|
AW: himXML (gesprochen himix ML)
Nein, solche Dateien gibt es nicht.
Und auf die Schnelle bekomm ich die gefundene WinSAT.exe nicht zum laufen. |
AW: himXML (gesprochen himix ML)
Zitat:
|
AW: himXML (gesprochen himix ML)
Ohhh, das böse UTF-16 :shock:
OK, da müßtest du mal ein bissl "hacken". - in der himXML.pas nach xeUTF16 suchen und diese beiden/drei Funde entkommentieren - in TXReader.ReadData und und TXWriter.WriteDataX gibt es jeweils ein
Delphi-Quellcode:
,
Case _Encoding of
dort bei den Werten
Delphi-Quellcode:
noch das xeUTF16 mit hinzufügen.
xeUnicode, xeUnicodeBE
Dann sollte es "nutzbar" sein. |
AW: himXML (gesprochen himix ML)
Hallo himitsu,
danke für Deine Hilfe. Nun funktioniert Dein himXML erstklassig. :thumb: |
AW: himXML (gesprochen himix ML)
Zitat:
|
AW: himXML (gesprochen himix ML)
Hast Du da noch mehr auskommentiert, was man wissen sollte ?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:43 Uhr. |
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