AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte himXML (gesprochen himix ML)
Thema durchsuchen
Ansicht
Themen-Optionen

himXML (gesprochen himix ML)

Ein Thema von himitsu · begonnen am 12. Mär 2009 · letzter Beitrag vom 11. Nov 2020
Antwort Antwort
Muetze1
(Gast)

n/a Beiträge
 
#1

Re: himXML (gesprochen himixML)

  Alt 15. Apr 2009, 13:41
Zitat von himitsu:
Eine ganze NodeList wollte ich dafür nicht gleich verwenden, denn ansonstenmüßte ich darin entweder das Erstellen/Ändern von Nodes unterbinden oder irgendwie synchronisieren und ein einfaches Array hätte eigentlich doch auch gereicht. :roll:
Hö? Das ist doch sogar sehr einfach. Du reichst in der Liste einfach die Node Instanzen raus, die du findest. Wenn irgendwer diese ändert: Soll er doch - ist doch vollkommen egal, da es die gleiche Instanz ist. Diese Änderungen sind in deiner Struktur drin, da es die gleichen Instanzen sind (um es nochmals zu erwähnen ^^).

Und wenn einer einen Knoten aus der Liste löscht oder freigibt, dann kann sich dieser Knoten doch selbst in seinem Überknoten entfernen. Gleiches hatte ich in meiner Lib auch gemacht - funktioniert einwandfrei. Dadurch war das Knoten löschen recht einfach: einfach freigeben mit .Free und der Knoten samt seinen Unterknoten wird ordentlich freigegeben und die Struktur bei dir im Speicher ist aktuell. Was will man mehr? Das ist doch gerade das schöne an OOP und den Instanzen.

Zitat von himitsu:
Das Ganze wollte ich ja auch noch "möglichst" Schlank halten :angel
Jo, ein Extract()-Aufruf in der Knotenliste des Vaterknoten im Destruktor der Knoten.

Zitat von himitsu:
und Aufgrund der Speicherverwaltung nur mit Objekten ist es garnicht so leicht möglich extra eine NodeList dafür zu verwenden, denn wie soll diese wieder freigegeben werden?
Oh und gerade deshalb ja.

Objekte sollten immer auf der gleichen Ebene freigegeben werden wo sie auch alloziiert werden. Also kannst du schonmal keine Rückgabeliste erzeugen, also bekommst du eine vom Nutzer übergeben. Der legt sie an und gibt sie auf der gleichen Ebene wieder frei.

Schau dir doch einfach meine Lib an in Sachen Objektverwaltung - zur Not kopier es dir sogar. Die Lib ist (öffentlich) tot und du kannst dich frei bedienen.
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

AW: himXML (gesprochen himix ML)

  Alt 29. Jun 2010, 17:39
Hallo,

Hab deine Unit jetzt mal ausprobiert

Macht allerdings ein paar Probleme mit D2010:
Delphi-Quellcode:
Procedure TXMLNode.Serialize(C: TObject; SOptions: TXMLSerializeOptions = []; Proc: xXMLSerializeProc = nil);
      Procedure _SavePropInfos(Node: xXMLNode; Info: PPropInfo);
        Const cTypeKind: Array[TTypeKind] of AnsiString = ('Unknown', 'Integer', 'Char',
            'Enumeration', 'Float', 'String', 'Set', 'Class', 'Method', 'WChar',
            'LString', 'WString', 'Variant', 'Array', 'Record', 'Interface', 'Int64',
            'DynArray' , {$IF Declared(UnicodeString)} 'UString{$IFEND});
Zitat:
[DCC Fehler] HimXML.pas(6767): E2072 Anzahl der Elemente (19) weicht von der Deklaration (22) ab
Das ist ca. Zeile 6765 in der HimXML.pas. Problem scheint nur zu sein, dass TTypeKind unter D2010 ein paar weitere Einträge hinzubekommen hat. Ansonsten bekomme ich noch:

Zitat:
[DCC Hinweis] HimXML.pas(774): H2219 Das private-Symbol 'DoChanged' wurde deklariert, aber nie verwendet
Zitat:
[DCC Hinweis] HimXML.pas(1210): H2219 Das private-Symbol 'SetOwner' wurde deklariert, aber nie verwendet
Nichts tragisches, aber wollte dich darauf hinweisen, falls das nicht beabsichtigt sein sollte
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: himXML (gesprochen himix ML)

  Alt 29. Jun 2010, 18:40
hast du die mit der größeren Nummer (sind nur indexnummern des alten phpBBs) verwendet?
(eigentlich dachte ich ich hätte eine Version Oben, welche schon mit D2010 zurecht kommt)

der gezeigte Codeausschnitt gehört jedenfalls zur älternen Version.




Nja, ich bastel jetzt erstmal vorwiegend die Webseite, dann kommt da die Hilfe für's RegEx (ePCRE), die himXML und Anderes hin
und danach wird's RegEx für's XPath ins himXML eingebaut und das himXML wieder auf selbstverwaltete (Refferenzzählung) Interfaces umgestellt.
Wird irgendwie langsam zuviel, um noch alles zu überblicken, da Vieles zusammenhängt.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

AW: himXML (gesprochen himix ML)

  Alt 29. Jun 2010, 18:46
Habe diese Version hier: himxml_246.7z
Wenn das die ältere Version sein sollte, dann ist die Benennung ziemlich irritierend
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: himXML (gesprochen himix ML)

  Alt 29. Jun 2010, 19:13
Nja, original hießen beide mal himXML.7z und die Versionen standen in den nun nicht mehr existierenden Dateikommentaren.

hab nochmal reingesehn ... es ist doch andersrum
(wie gesagt, die Dateinamen sind nicht von mir, daran isses neue Forum Schuld)

himxml_246 = v0.9 21.05.2009
himxml_164 = v0.99d 12.01.2010
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (29. Jun 2010 um 19:31 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

AW: himXML (gesprochen himix ML)

  Alt 29. Jun 2010, 19:19
Wow, ich glaube ich lade mir doch die Version aus der Zukunft von 2020!

Du könntest ja evtl. beide Versionen nochmal neu hochladen mit einem besseren Namen
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#7

AW: himXML (gesprochen himix ML)

  Alt 28. Aug 2010, 15:56
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 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.
Angehängte Grafiken
Dateityp: jpg Zwischenablage01.jpg (31,4 KB, 4x aufgerufen)
Rolf Warnecke
App4Mission

Geändert von RWarnecke (28. Aug 2010 um 16:18 Uhr)
  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:

(?)

LinkBack to this Thread

Erstellt von For Type Datum
xml - MSXML alternative - Stack Overflow This thread Refback 28. Jun 2011 15:34

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:24 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-2025 by Thomas Breitkreuz