Delphi-PRAXiS
Seite 24 von 35   « Erste     14222324 252634     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   himXML (gesprochen himix ML) (https://www.delphipraxis.net/130751-himxml-gesprochen-himix-ml.html)

Neutral General 29. Jun 2010 19:19

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 ;)

RWarnecke 28. Aug 2010 15:56

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:
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;
Jedesmal bekomme ich eine AccessViolation in der Zeile
Delphi-Quellcode:
with FormalXML.Node['WinSAT'].Node['WinSPR'] do
. Das ganze führe ich unter Windows 7 x64 aus.

Edit:
Wenn ich das ganze so ausprobiere :
Delphi-Quellcode:
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;
Bei dieser Variante wird noch der Pfad vom Arbeitsverzeichnis vor den übergebenen Pfad gesetzt. Somit funktioniert auch hier das Laden des XML-Files nicht.

himitsu 28. Aug 2010 16:30

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:
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;
oder direkt beim Create
Delphi-Quellcode:
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;
    ...
Wie sieht denn die XML-Datei aus?
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.

RWarnecke 28. Aug 2010 16:50

AW: himXML (gesprochen himix ML)
 
Hallo Himitsu,

danke erstmal für Deine prompte Antwort.

Zitat:

Zitat von himitsu (Beitrag 1045756)
Wie sieht denn die XML-Datei aus?

Wenn Du Windows VISTA oder Windows 7 als Betriebssystem installiert hast, kann Du Dir die XML-Datei in dem angegebenen Pfad anschauen.

Zitat:

Zitat von himitsu (Beitrag 1045756)
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.

Die Node WinSAT ist die RootNode.

Wenn ich Dein Beispiel übernehme, bekomme ich folgende Fehlermeldung :
Zitat:

---------------------------
Debugger Exception Notification
---------------------------
Project SystemInfo.exe raised exception class EXMLException with message 'EXMLException (TXMLFile.ParsingTree):
unknown encoding

error at byte position 2 ("" on line 1)'.
---------------------------
Break Continue Help
---------------------------
Diese Meldung taucht auf in der Zeile FormalXML.LoadFromFile.

himitsu 28. Aug 2010 17:02

AW: himXML (gesprochen himix ML)
 
Nein, solche Dateien gibt es nicht.
Und auf die Schnelle bekomm ich die gefundene WinSAT.exe nicht zum laufen.

RWarnecke 28. Aug 2010 17:10

AW: himXML (gesprochen himix ML)
 
Zitat:

Zitat von himitsu (Beitrag 1045772)
Und auf die Schnelle bekomm ich die gefundene WinSAT.exe nicht zum laufen.

In Windows 7 oder Windows Vista die Tastenkombi Windows-Taste+Pause drücken und dann kannst Du den Leistungsindex von Deinem Betriebssystem abfragen. Ich schicke Dir zuästzlich noch die angegebene Datei per PN.

himitsu 28. Aug 2010 17:29

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:
xeUnicode, xeUnicodeBE
noch das xeUTF16 mit hinzufügen.

Dann sollte es "nutzbar" sein.

RWarnecke 28. Aug 2010 18:12

AW: himXML (gesprochen himix ML)
 
Hallo himitsu,

danke für Deine Hilfe. Nun funktioniert Dein himXML erstklassig. :thumb:

himitsu 28. Aug 2010 18:19

AW: himXML (gesprochen himix ML)
 
Zitat:

Zitat von RWarnecke (Beitrag 1045781)
Hallo himitsu,

danke für Deine Hilfe. Nun funktioniert Dein himXML erstklassig. :thumb:

In der (geheimen) aktuellen Überarbeitung läßt sich sowas dann leichter ändern/erweitern :)

RWarnecke 28. Aug 2010 18:49

AW: himXML (gesprochen himix ML)
 
Hast Du da noch mehr auskommentiert, was man wissen sollte ?


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:09 Uhr.
Seite 24 von 35   « Erste     14222324 252634     Letzte »    

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