Delphi-PRAXiS
Seite 5 von 8   « Erste     345 67     Letzte » 

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Ideen für spezielle Stringbearbeitung (https://www.delphipraxis.net/117587-ideen-fuer-spezielle-stringbearbeitung.html)

toyoman 23. Jul 2008 16:15

Re: Ideen für spezielle Stringbearbeitung
 
Zitat:

Zitat von marabu
Hallo,

hier eine kleine Starthilfe:

Delphi-Quellcode:
uses
  MSXML2;

function CreateDocument(var doc: IXMLDOMDocument2; const markup: string): Boolean;
begin
  doc := CoDomDocument.Create;
  doc.async := False;
  Result := doc.loadXML(markup);
end;

procedure TDemoForm.TestButtonClick(Sender: TObject);
const
  MARKUP
    = '<Baskets totalNumber="3">'
    + '<Basket path="W:\briefkorb\test\" opened="false" isUserAssigned="true" />'
    + '<Basket path="W:\briefkorb\test1\" opened="false" isUserAssigned="true" />'
    + '<Basket path="H:\daten\Docuware\Ablage\" opened="false" isUserAssigned="false" />'
    + '</Baskets> '
    ;
  XPATH = '//Basket[%d]/@path';
var
  doc: IXMLDOMDocument2;
  n: IXMLDOMNode;
begin
  if CreateDocument(doc, MARKUP) then
  begin
    n := doc.selectSingleNode(Format(XPATH, [1]));
    ShowMessage(VarToStr(n.nodeValue));
    n.nodeValue := ExtractFilePath(ParamStr(0));
    ShowMessage(doc.xml);
  end else ShowMessage(doc.parseError.reason);
end;
Statt MARKUP kann auch der Text aus der Datenbank eingesetzt werden.

Grüße vom marabu

danke, aber woher krieg ich MSXML2? Ich hab Delphi 2007. Scheint nicht Bestandteil zu sein?

marabu 23. Jul 2008 21:49

Re: Ideen für spezielle Stringbearbeitung
 
Hallo,

schau mal hier: XML DOM Importe

Freundliche Grüße

toyoman 24. Jul 2008 08:00

Re: Ideen für spezielle Stringbearbeitung
 
Zitat:

Zitat von marabu
Hallo,

schau mal hier: XML DOM Importe

Freundliche Grüße

sorry muss nochmals blöd fragen, welche Version muss ich da nehmen? ich nehm an 6.0 die neuste?
Wenn ich die MSXML2_TLB.pas in mein Projekt einfüge scheint das dennoch nicht zu klappen...

mkinzler 24. Jul 2008 08:02

Re: Ideen für spezielle Stringbearbeitung
 
Nein es gibt mehrere verschiedene XML-Parser von Microsoft. Diese Unit wrappt MSXML2

toyoman 24. Jul 2008 08:37

Re: Ideen für spezielle Stringbearbeitung
 
Delphi-Quellcode:
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, XMLFile, XMLDOM, XMLIntf, msxmldom, XMLDoc, MSXML2_TLB;
Datei MSXML2_TLB ist im Projektverzeichnis...

kriege nun diesen Fehler:

[DCC Fehler] dw_xml.pas(32): E2003 Undefinierter Bezeichner: 'CoDomDocument'

marabu 24. Jul 2008 08:41

Re: Ideen für spezielle Stringbearbeitung
 
Moin,

öffne mal ein Befehlseingabefenster und schau dir mit DIR %WINDIR%\system32\MSXML?.DLL an, was die höchste Version deines installierten MSXML-Parsers ist. Und dann besorge dir wahlweise den Wrapper für MSXML4 (mit XDR) oder MSXML6 (ohne XDR).

Wahlweise kannst du dir den Wrapper selbst erstellen mit (D7): tlibimp -Fe- %windir%\system32\msxml4.dll

Und beachte, dass im generierten Wrapper je nach Version von TLIBIMP bestimmte Bezeichner umbenannt werden.

Freundliche Grüße

toyoman 24. Jul 2008 09:00

Re: Ideen für spezielle Stringbearbeitung
 
Zitat:

Zitat von marabu
Moin,

öffne mal ein Befehlseingabefenster und schau dir mit DIR %WINDIR%\system32\MSXML?.DLL an, was die höchste Version deines installierten MSXML-Parsers ist. Und dann besorge dir wahlweise den Wrapper für MSXML4 (mit XDR) oder MSXML6 (ohne XDR).

Wahlweise kannst du dir den Wrapper selbst erstellen mit (D7): tlibimp -Fe- %windir%\system32\msxml4.dll

Und beachte, dass im generierten Wrapper je nach Version von TLIBIMP bestimmte Bezeichner umbenannt werden.

Freundliche Grüße

ich hab Version 2,3,4 und 6 drauf. Die Wrapper Unit für Version 6 hab ich ja schon reinkopiert, dann müsst es doch eigentlich gehen oder?

marabu 24. Jul 2008 09:34

Re: Ideen für spezielle Stringbearbeitung
 
Hast du mal den Kommentar im Kopfteil von MSXML2_TLB.PAS durchgelesen?
Vielleicht wurde CoDomDocument umbenannt.

toyoman 24. Jul 2008 09:51

Re: Ideen für spezielle Stringbearbeitung
 
Zitat:

Zitat von marabu
Hast du mal den Kommentar im Kopfteil von MSXML2_TLB.PAS durchgelesen?
Vielleicht wurde CoDomDocument umbenannt.

Von coDomDocument steht da nichts. Diverse andere ja...

Delphi-Quellcode:
//   Hinweis: Symbol 'DOMDocument' umbenannt zu 'msDOMDocument'
//   Hinweis: Symbol 'DOMDocument26' umbenannt zu 'msDOMDocument26'
//   Hinweis: Symbol 'DOMDocument30' umbenannt zu 'msDOMDocument30'
//   Hinweis: Symbol 'FreeThreadedDOMDocument' umbenannt zu 'msFreeThreadedDOMDocument'
//   Hinweis: Symbol 'FreeThreadedDOMDocument26' umbenannt zu 'msFreeThreadedDOMDocument26'
//   Hinweis: Symbol 'FreeThreadedDOMDocument30' umbenannt zu 'msFreeThreadedDOMDocument30'
//   Hinweis: Symbol 'XMLSchemaCache' umbenannt zu 'msXMLSchemaCache'
//   Hinweis: Symbol 'XMLSchemaCache26' umbenannt zu 'msXMLSchemaCache26'
//   Hinweis: Symbol 'XMLSchemaCache30' umbenannt zu 'msXMLSchemaCache30'
//   Hinweis: Symbol 'XSLTemplate' umbenannt zu 'msXSLTemplate'
//   Hinweis: Symbol 'XSLTemplate26' umbenannt zu 'msXSLTemplate26'
//   Hinweis: Symbol 'XSLTemplate30' umbenannt zu 'msXSLTemplate30'
//   Hinweis: Symbol 'XMLHTTP' umbenannt zu 'msXMLHTTP'
//   Hinweis: Symbol 'XMLHTTP26' umbenannt zu 'msXMLHTTP26'
//   Hinweis: Symbol 'XMLHTTP30' umbenannt zu 'msXMLHTTP30'
//   Hinweis: Symbol 'ServerXMLHTTP' umbenannt zu 'msServerXMLHTTP'
//   Hinweis: Symbol 'ServerXMLHTTP30' umbenannt zu 'msServerXMLHTTP30'
//   Hinweis: Symbol 'SAXXMLReader' umbenannt zu 'msSAXXMLReader'
//   Hinweis: Symbol 'SAXXMLReader30' umbenannt zu 'msSAXXMLReader30'
//   Hinweis: Symbol 'MXXMLWriter' umbenannt zu 'msMXXMLWriter'
//   Hinweis: Symbol 'MXXMLWriter30' umbenannt zu 'msMXXMLWriter30'
//   Hinweis: Symbol 'SAXAttributes' umbenannt zu 'msSAXAttributes'
//   Hinweis: Symbol 'SAXAttributes30' umbenannt zu 'msSAXAttributes30'
//   Hinweis: Parameter 'type' im IXMLDOMNode.nodeType geändert zu 'type_'
//   Hinweis: Element 'implementation' von 'IXMLDOMDocument' geändert zu 'implementation_'
//   Hinweis: Parameter 'type' im IXMLDOMDocument.createNode geändert zu 'type_'
//   Hinweis: Parameter 'var' im IXMLDOMSchemaCollection.add geändert zu 'var_'
//   Hinweis: Symbol 'type' umbenannt zu 'type_'
//   Hinweis: Parameter 'type' im ISchemaElement.type geändert zu 'type_'
//   Hinweis: Symbol 'type' umbenannt zu 'type_'
//   Hinweis: Parameter 'type' im ISchemaAttribute.type geändert zu 'type_'

marabu 24. Jul 2008 09:54

Re: Ideen für spezielle Stringbearbeitung
 
Wenn du genau liest, dann findest du heraus, dass du ComsDOMDocument verwenden musst. klick


Alle Zeitangaben in WEZ +2. Es ist jetzt 02:45 Uhr.
Seite 5 von 8   « Erste     345 67     Letzte » 

Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf