Delphi-PRAXiS
Seite 1 von 2  1 2      

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 21. Jul 2008 14:33


Ideen für spezielle Stringbearbeitung
 
hallo delphianer

ich habe folgenden String aus einer Datenbank einer Fremdapplikation:

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

1. Ich weiss nicht ob das XML ist??
2. Wie kann ich diesen String dynamisch anpassen (die Briefkorb Pfade sollen geändert werden können).

Je nach Benutzer kann die totalNumber der Baskets natürlich unterschiedlich sein. Somit ist ein StringReplace wohl nicht so geeignet?

Mit welcher Methode würded ihr sowas bewerkstelligen? (Ich kenne mich nur mit Ini-File aus... Habe ich die Möglichkeit diesen String wie ein Ini-File zu bearbeiten?)

Danke für Tips.

mkinzler 21. Jul 2008 14:36

Re: Ideen für spezielle Stringbearbeitung
 
Bei der Verwendung einer XML-Klasse

toyoman 21. Jul 2008 14:41

Re: Ideen für spezielle Stringbearbeitung
 
Zitat:

Zitat von mkinzler
Bei der Verwendung einer XML-Klasse

ja ok, und wie muss ich mir das konkret vorstellen? wie heisst diese klasse und hat jemand ein beispiel?

mkinzler 21. Jul 2008 14:48

Re: Ideen für spezielle Stringbearbeitung
 
Es gibt mehrere XML-Parser für Delphi
http://www.delphipraxis.net/internal_redirect.php?f=43
http://www.hsg-kl.de/faecher/inf/mat...lphi/index.php

toyoman 22. Jul 2008 12:44

Re: Ideen für spezielle Stringbearbeitung
 
Was ist ein XML Parser?
Ich hab nun ein paar von den Dingern angeguckt. Aber ich werd dennoch nicht schlau daraus.
Mein XML String ist in einem Feld einer SQL Datenbank drin. Wenn ich das richtig sehe müsste ich aber da immer ein File angeben. Ich hab aber kein XML File sondern nur einen String.

Hab jetzt die Mütze Kompo installiert. Da muss ich auch ein File angeben. Gibts eine Komponente wo ich direkt einen String einlesen kann?

Ich arbeite mit Delphi 2007 Rad Studio.

mkinzler 22. Jul 2008 12:54

Re: Ideen für spezielle Stringbearbeitung
 
Unterstützt aber .LoadFromStream()

Diamondback2007 22. Jul 2008 13:04

Re: Ideen für spezielle Stringbearbeitung
 
Zur not speicherst du den string halt? :wink:
Oder wie schon gesagt wurde mit einem Stream, was natürlich wesentlich eleganter wäre.

toyoman 22. Jul 2008 13:42

Re: Ideen für spezielle Stringbearbeitung
 
Zitat:

Zitat von mkinzler
Unterstützt aber .LoadFromStream()

gibts irgendwo ein tutorial über die streamgeschichte in verbindung mit sql datenbanken?
ich kenn mich damit nicht aus.

Diamondback2007 22. Jul 2008 13:45

Re: Ideen für spezielle Stringbearbeitung
 
es geht wohl eher darum, mit deinen string in einen stream zu verpacken und diesen dann laden zu können. Nicht darum mit dem Stream irgendwas direkt aus der DB zu lesen.

mkinzler 22. Jul 2008 13:47

Re: Ideen für spezielle Stringbearbeitung
 
Zitat:

Zitat von Diamondback2007
es geht wohl eher darum, mit deinen string in einen stream zu verpacken und diesen dann laden zu können. Nicht darum mit dem Stream irgendwas direkt aus der DB zu lesen.

Da die Daten aus einer DB kommen, ist es imho schon sinnvoll diese direkt von dort in einem Stream zu lesen.

toyoman 22. Jul 2008 13:47

Re: Ideen für spezielle Stringbearbeitung
 
Zitat:

Zitat von Diamondback2007
es geht wohl eher darum, mit deinen string in einen stream zu verpacken und diesen dann laden zu können. Nicht darum mit dem Stream irgendwas direkt aus der DB zu lesen.

kannst du mir das mal anhand eines einfachen beispiels erklären?

ich habe also in der db einen string z.b. S.
und wie mach ich jetzt daraus einen stream?

mkinzler 22. Jul 2008 13:50

Re: Ideen für spezielle Stringbearbeitung
 
Was für einen Datenbank? Welchen Typ hat das Feld?

toyoman 22. Jul 2008 13:52

Re: Ideen für spezielle Stringbearbeitung
 
Zitat:

Zitat von mkinzler
Was für einen Datenbank? Welchen Typ hat das Feld?

MS SQL, Typ: ntext

toyoman 22. Jul 2008 14:24

Re: Ideen für spezielle Stringbearbeitung
 
bin jetzt etwas weiter gekommen:

habe eine XMLDocument Komponente aufs Form gelegt den XML String mal manuell in die XML Eigenschaft kopiert.

Und folgenden Code geschrieben:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  wnode: IXMLNode;
  w: string;
begin
   wnode:=xmldocument1.DocumentElement.ChildNodes[0];
   w:=wnode.ChildNodes['Basket path'].Text;

end;
nun kommt aber die meldung:


Dieser Name darf nicht das Zeichen '' enthalten:
Basket--> <--path.

Zur Erinnerung ein Teil meines XML Strings:

<Baskets totalNumber="3"><Basket path="W:\briefkorb\nsa\" opened="false" isUserAssigned="true" /><Basket path="W:\briefkorb\tke\" opened="false" isUserAssigned="true" /><Basket path="H:\daten\Docuware\Ablage\" opened="false" isUserAssigned="false" /></Baskets>

ich möchte Basket path auslesen und später dann auch mutieren...

Morphie 22. Jul 2008 14:31

Re: Ideen für spezielle Stringbearbeitung
 
Basket heißt das Element, path ist nur ein attribut...
formatiert säh es so aus:
<Baskets totalNumber="3">
<Basket path="W:\briefkorb\nsa\" opened="false" isUserAssigned="true" />
<Basket path="W:\briefkorb\tke\" opened="false" isUserAssigned="true" />
<Basket path="H:\daten\Docuware\Ablage\" opened="false" isUserAssigned="false" />
</Baskets>

toyoman 22. Jul 2008 14:43

Re: Ideen für spezielle Stringbearbeitung
 
Zitat:

Zitat von Morphie
Basket heißt das Element, path ist nur ein attribut...
formatiert säh es so aus:
<Baskets totalNumber="3">
<Basket path="W:\briefkorb\nsa\" opened="false" isUserAssigned="true" />
<Basket path="W:\briefkorb\tke\" opened="false" isUserAssigned="true" />
<Basket path="H:\daten\Docuware\Ablage\" opened="false" isUserAssigned="false" />
</Baskets>

ja aber wie kann ich jetzt das attribut "path" auslesen und auch verändern?
und wie kann ich feststellen bei welchem basket ich grad bin?

ich versteh das einfach nicht.

RavenIV 22. Jul 2008 15:03

Re: Ideen für spezielle Stringbearbeitung
 
Zitat:

Zitat von toyoman
<Baskets totalNumber="3"><Basket path="W:\briefkorb\nsa\" opened="false" isUserAssigned="true" /><Basket path="W:\briefkorb\tke\" opened="false" isUserAssigned="true" /><Basket path="H:\daten\Docuware\Ablage\" opened="false" isUserAssigned="false" /></Baskets>

Ist das wirklich Standard-XML?
Ich kenne das XML anderst:
XML-Code:
<?xml version="1.0"?>
<TNMessageAcknowledgement>
  <AcknowledgementLocation>QUADREM</AcknowledgementLocation>
  <AcknowledgementReferenceNumber>CORRELATION ID = PO Number</AcknowledgementReferenceNumber>
  <AcknowledgementNote>Date: 07/04/2008:02:49:23 DocType: Order</AcknowledgementNote>
  <senderID>SELLER (XXX) DDID provided by Quadrem</senderID>
  <receiverID>BUYER (YYYY) DDID provided by Quadrem</receiverID>
  <messageID>Internal ID</messageID>
</TNMessageAcknowledgement>

toyoman 22. Jul 2008 15:04

Re: Ideen für spezielle Stringbearbeitung
 
Zitat:

Zitat von RavenIV
Zitat:

Zitat von toyoman
<Baskets totalNumber="3"><Basket path="W:\briefkorb\nsa\" opened="false" isUserAssigned="true" /><Basket path="W:\briefkorb\tke\" opened="false" isUserAssigned="true" /><Basket path="H:\daten\Docuware\Ablage\" opened="false" isUserAssigned="false" /></Baskets>

Ist das wirklich Standard-XML?
Ich kenne das XML anderst:
XML-Code:
<?xml version="1.0"?>
<TNMessageAcknowledgement>
  <AcknowledgementLocation>QUADREM</AcknowledgementLocation>
  <AcknowledgementReferenceNumber>CORRELATION ID = PO Number</AcknowledgementReferenceNumber>
  <AcknowledgementNote>Date: 07/04/2008:02:49:23 DocType: Order</AcknowledgementNote>
  <senderID>SELLER (XXX) DDID provided by Quadrem</senderID>
  <receiverID>BUYER (YYYY) DDID provided by Quadrem</receiverID>
  <messageID>Internal ID</messageID>
</TNMessageAcknowledgement>

weiss ich auch nicht, ist halt so in der datenbank drin.... ohne header und so...

Morphie 22. Jul 2008 15:08

Re: Ideen für spezielle Stringbearbeitung
 
warum sollte es nicht Standard-XML sein?
sind alles Empty-Element-Tags, bis eben auf das Parent...

und die XML-Deklaration (Version, Kodierung,...) ist optional...

Morphie 22. Jul 2008 15:17

Re: Ideen für spezielle Stringbearbeitung
 
Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
var
  anzahl: integer;
  wnode: IXMLNode;
  i: integer;
begin
  XMLDocument1.LoadFromFile('E:\Dokumente und Einstellungen\Entwicklung\Desktop\test.xml');
   anzahl:=XMLDocument1.DocumentElement.Attributes['totalNumber'];
   for i := 0 to anzahl-1 do
   begin
     showmessage(XMLDocument1.DocumentElement.ChildNodes.Nodes[i].Attributes['path'])
   end;
end;
so in etwa sollte das ganze auch funktionieren...

mit

Delphi-Quellcode:
XMLDocument1.DocumentElement.ChildNodes.Nodes[i].Attributes['path']:='C:\MeinPfad...';
könntest du die attribute dann ändern...

toyoman 22. Jul 2008 15:18

Re: Ideen für spezielle Stringbearbeitung
 
Zitat:

Zitat von Morphie
warum sollte es nicht Standard-XML sein?
sind alles Empty-Element-Tags, bis eben auf das Parent...

und die XML-Deklaration (Version, Kodierung,...) ist optional...

ob standard xml oder nicht, eigentlich müsste das ja keine rolle spielen oder?
kann mir mal jemand einen kleinen codeschnippsel wie ihr dieses problem lösen würded?
ich seh im moment den wald vor lauter bäume nicht.

ok, danke morphie. guck mir deinen code gleich mal an. bzw. probier mal aus...

Morphie 22. Jul 2008 15:22

Re: Ideen für spezielle Stringbearbeitung
 
Zitat:

Zitat von toyoman
Zitat:

Zitat von Morphie
warum sollte es nicht Standard-XML sein?
sind alles Empty-Element-Tags, bis eben auf das Parent...

und die XML-Deklaration (Version, Kodierung,...) ist optional...

ob standard xml oder nicht, eigentlich müsste das ja keine rolle spielen oder?
kann mir mal jemand einen kleinen codeschnippsel wie ihr dieses problem lösen würded?
ich seh im moment den wald vor lauter bäume nicht.

ok, danke morphie. guck mir deinen code gleich mal an. bzw. probier mal aus...

Nicht-standard-xml könnte eventuell beim Parser Probleme machen und führt dann zu Fehlermeldungen...

So kenne ich das jedenfalls von Visual Basic. Sobald ein Umlaut im XML-Text ist, macht der parser schlapp...

toyoman 22. Jul 2008 15:25

Re: Ideen für spezielle Stringbearbeitung
 
Zitat:

Zitat von Morphie
Zitat:

Zitat von toyoman
Zitat:

Zitat von Morphie
warum sollte es nicht Standard-XML sein?
sind alles Empty-Element-Tags, bis eben auf das Parent...

und die XML-Deklaration (Version, Kodierung,...) ist optional...

ob standard xml oder nicht, eigentlich müsste das ja keine rolle spielen oder?
kann mir mal jemand einen kleinen codeschnippsel wie ihr dieses problem lösen würded?
ich seh im moment den wald vor lauter bäume nicht.

ok, danke morphie. guck mir deinen code gleich mal an. bzw. probier mal aus...

Nicht-standard-xml könnte eventuell beim Parser Probleme machen und führt dann zu Fehlermeldungen...

So kenne ich das jedenfalls von Visual Basic. Sobald ein Umlaut im XML-Text ist, macht der parser schlapp...

ja könnte wohl schon soweit sein.
ich krieg bei verwendung von deinem code den fehler:

Variante des Typs (Null) konnte nicht in Typ (Integer) konvertiert werden

Morphie 22. Jul 2008 15:26

Re: Ideen für spezielle Stringbearbeitung
 
Zeig mal deinen jetzigen Code, du hast den ja sicher ein wenig abgewandelt...

toyoman 22. Jul 2008 15:29

Re: Ideen für spezielle Stringbearbeitung
 
Zitat:

Zitat von Morphie
Zeig mal deinen jetzigen Code, du hast den ja sicher ein wenig abgewandelt...

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  anzahl: integer;
  wnode: IXMLNode;
  i: integer;

begin
   XMLDocument1.LoadFromFile(getpath+'test.xml');
   anzahl:=XMLDocument1.DocumentElement.Attributes['totalNumber'];
   for i := 0 to anzahl-1 do
   begin
     showmessage(XMLDocument1.DocumentElement.ChildNodes.Nodes[i].Attributes['path'])
   end;

end;
getpath ist eine funktion von mir welche den aktuellen programmpfad zurückgibt (getestet und funktioniert 100pro) :)

Morphie 22. Jul 2008 15:33

Re: Ideen für spezielle Stringbearbeitung
 
Und der XML-Inhalt liegt auch in der test.xml?

btw.
Delphi-Quellcode:
wnode: IXMLNode;
kann erstmal ganz raus, sorry ;-)

Hab nun feierabend, ich schau mir das gleich mal zuhause an...

RavenIV 22. Jul 2008 15:33

Re: Ideen für spezielle Stringbearbeitung
 
Zitat:

Zitat von toyoman
getpath ist eine funktion von mir welche den aktuellen programmpfad zurückgibt (getestet und funktioniert 100pro) :)

Warum immer so kompliziert?
Dies ist auch nicht viel länger und funktioniert auf jeden Fall:
Delphi-Quellcode:
ExtractFilePath(ParamStr(0)

toyoman 22. Jul 2008 15:35

Re: Ideen für spezielle Stringbearbeitung
 
Zitat:

Zitat von Morphie
Und der XML-Inhalt liegt auch in der test.xml?

btw.
Delphi-Quellcode:
wnode: IXMLNode;
kann erstmal ganz raus, sorry ;-)

Hab nun feierabend, ich schau mir das gleich mal zuhause an...

jetzt musst ich grad studieren..... aber doch: inhalt ist vorhanden :)

toyoman 22. Jul 2008 15:37

Re: Ideen für spezielle Stringbearbeitung
 
Zitat:

Zitat von RavenIV
Zitat:

Zitat von toyoman
getpath ist eine funktion von mir welche den aktuellen programmpfad zurückgibt (getestet und funktioniert 100pro) :)

Warum immer so kompliziert?
Dies ist auch nicht viel länger und funktioniert auf jeden Fall:
Delphi-Quellcode:
ExtractFilePath(ParamStr(0)

jetzt lass mir doch meine geile funktion. die geb ich nicht her.
die kommt aus meiner spezial unit mit den ganzen gesammelten werken....

RavenIV 22. Jul 2008 15:41

Re: Ideen für spezielle Stringbearbeitung
 
Zitat:

Zitat von toyoman
jetzt lass mir doch meine geile funktion. die geb ich nicht her.
die kommt aus meiner spezial unit mit den ganzen gesammelten werken....

...welche vermutlich alle irgendwoher kopiert sind.

Ausserdem sind die meisten Delphi-Funktionen sehr optimiert und tausendfach im Einsatz.
Ich such lieber ne halbe Stunde in der Delphi-Hilfe, bevor ich was selber in Angriff nehme.
Wenn ich dann nichts finde, kann ich immernoch woanderst suchen oder mir die Finger wundtippen.

toyoman 22. Jul 2008 15:45

Re: Ideen für spezielle Stringbearbeitung
 
Zitat:

Zitat von RavenIV
Zitat:

Zitat von toyoman
jetzt lass mir doch meine geile funktion. die geb ich nicht her.
die kommt aus meiner spezial unit mit den ganzen gesammelten werken....

...welche vermutlich alle irgendwoher kopiert sind.

Ausserdem sind die meisten Delphi-Funktionen sehr optimiert und tausendfach im Einsatz.
Ich such lieber ne halbe Stunde in der Delphi-Hilfe, bevor ich was selber in Angriff nehme.
Wenn ich dann nichts finde, kann ich immernoch woanderst suchen oder mir die Finger wundtippen.

ja das rad neu erfinden macht ja keinen sinn.
aber viele funktionen sind auf meine bedürfnisse abgestimmt und keine standard dinger. so dass ich sie halt dennoch selber hingetippt hab.
ich tipp eigentlich gerne....

toyoman 22. Jul 2008 15:52

Re: Ideen für spezielle Stringbearbeitung
 
Zitat:

Zitat von RavenIV
Zitat:

Zitat von toyoman
getpath ist eine funktion von mir welche den aktuellen programmpfad zurückgibt (getestet und funktioniert 100pro) :)

Warum immer so kompliziert?
Dies ist auch nicht viel länger und funktioniert auf jeden Fall:
Delphi-Quellcode:
ExtractFilePath(ParamStr(0)

übrigens meine getpath funktion:


Delphi-Quellcode:
function getPath: TFileName;
begin
   result:= ExtractFilePath(ParamStr(0));
end;
für mich ist es einfach einfacher getpath zu schreiben ... darum hab ich das so gemacht.
die unit mit meinen funktionen und prozeduren bind ich eh in jedes programm ein daher kann ich immer überall alles gleich machen und habe somit meinen eigenen standard in der programmierung.

Morphie 22. Jul 2008 15:58

Re: Ideen für spezielle Stringbearbeitung
 
Zitat:

Zitat von toyoman
Zitat:

Zitat von Morphie
Zeig mal deinen jetzigen Code, du hast den ja sicher ein wenig abgewandelt...

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  anzahl: integer;
  wnode: IXMLNode;
  i: integer;

begin
   XMLDocument1.LoadFromFile(getpath+'test.xml');
   anzahl:=XMLDocument1.DocumentElement.Attributes['totalNumber'];
   for i := 0 to anzahl-1 do
   begin
     showmessage(XMLDocument1.DocumentElement.ChildNodes.Nodes[i].Attributes['path'])
   end;

end;
getpath ist eine funktion von mir welche den aktuellen programmpfad zurückgibt (getestet und funktioniert 100pro) :)


hab mir den code nun 1:1 kopiert und getpath durch ExtractFilePath(ParamStr(0)) ersetzt. Sollte also eig. alles übereinstimmen...

klappt ohne Probleme...
Zeig doch nochmal den Inhalt der test.xml, da ist garantiert der Wurm drinne

toyoman 22. Jul 2008 16:02

Re: Ideen für spezielle Stringbearbeitung
 
hab mir den code nun 1:1 kopiert und getpath durch ExtractFilePath(ParamStr(0)) ersetzt. Sollte also eig. alles übereinstimmen...

klappt ohne Probleme...
Zeig doch nochmal den Inhalt der test.xml, da ist garantiert der Wurm drinne[/quote]

der string ist riesengross und auf einer zeile im file drin...
gibt das evtl. probleme? so ist es halt nunmal in der DB drin.... ich kann das nicht ändern.

kann dir das file von hier auch nicht raufladen weil das hier nicht möglich ist (in der firma).

das file fängt so an:

DWUser version="5.1.0.1" uid="10" oid="1"

mittendrin kommt dann das mit den baskets und am schluss:

startDocuWareMinimized="false" /></DWUser>

mach jetzt auch feierabend, und mach morgen weiter!

danke erstmal

Morphie 22. Jul 2008 16:20

Re: Ideen für spezielle Stringbearbeitung
 
Na da musst du den Code auch deiner XML-Datei anpassen... Mein Beispiel war eben nur für den kurzen Ausschnitt aus deinem 1. Post gedacht...

Deine Meldung
Zitat:

Variante des Typs (Null) konnte nicht in Typ (Integer) konvertiert werden
kommt dadurch zustande, dass das Attribute "path" im DocumentElement (Also dem 1. Element / dem Root / dem Parent der Child-elemente ;-) ) gar nicht existiert und es deswegen Null zurückliefert.

An deiner Stelle würde ich vorher mit
Delphi-Quellcode:
XMLDocument1.DocumentElement.HasAttribute('')
und
Delphi-Quellcode:
XMLDocument1.DocumentElement.nodename
usw. erstmal überprüfen, WO du dich grad überhaupt in deiner XML-Struktur befindest...

toyoman 23. Jul 2008 09:03

Re: Ideen für spezielle Stringbearbeitung
 
Zitat:

Zitat von Morphie
Na da musst du den Code auch deiner XML-Datei anpassen... Mein Beispiel war eben nur für den kurzen Ausschnitt aus deinem 1. Post gedacht...

Deine Meldung
Zitat:

Variante des Typs (Null) konnte nicht in Typ (Integer) konvertiert werden
kommt dadurch zustande, dass das Attribute "path" im DocumentElement (Also dem 1. Element / dem Root / dem Parent der Child-elemente ;-) ) gar nicht existiert und es deswegen Null zurückliefert.

An deiner Stelle würde ich vorher mit
Delphi-Quellcode:
XMLDocument1.DocumentElement.HasAttribute('')
und
Delphi-Quellcode:
XMLDocument1.DocumentElement.nodename
usw. erstmal überprüfen, WO du dich grad überhaupt in deiner XML-Struktur befindest...

und wo muss ich das einbauen? - in die schlaufe?

toyoman 23. Jul 2008 09:42

Re: Ideen für spezielle Stringbearbeitung
 
hier noch der ganze XML String:

XML-Code:
<DWUser version="5.1.0.1" uid="10" oid="1" dw4uid="username" guid="094ae9eb-3f39-42e6-a33e-6f2658f8468e" oguid="6d807b13-1ecf-47a9-b31f-1b1134bd35e5" name="username" active="true" eMail="mailadresse" distribution="NetworkStartup" oldIniSettingsForDw="[bibl_00995018.184_RESULT]&#xD;&#xA;COLFIXED=0&#xD;&#xA;COLUMNWIDTHS=0026000129001730006800034002230007500036&#xD;&#xA;[0ablage]&#xD;&#xA;DISPLAYMODE=0&#xD;&#xA;[4126528203dw5waste]&#xD;&#xA;DISPLAYMODE=0&#xD;&#xA;[banken_00963233.089_RESULT]&#xD;&#xA;COLFIXED=0&#xD;&#xA;COLUMNWIDTHS=00039000610003400036000360018100148001320003300036000360003600036000130003600036000360003600036000360003600036&#xD;&#xA;[687238641test]&#xD;&#xA;DISPLAYMODE=0&#xD;&#xA;[personal_12841424.261_RESULT]&#xD;&#xA;COLFIXED=0&#xD;&#xA;COLUMNWIDTHS=00053000510003100029000610005800097000380005800093&#xD;&#xA;[projekt_12841424.368_RESULT]&#xD;&#xA;COLFIXED=0&#xD;&#xA;COLUMNWIDTHS=001210006300061000320003200013&#xD;&#xA;[780170000dw5waste]&#xD;&#xA;DISPLAYMODE=0&#xD;&#xA;[0scanner]&#xD;&#xA;DISPLAYMODE=0&#xD;&#xA;[504390781papierkorb]&#xD;&#xA;DISPLAYMODE=0&#xD;&#xA;[85362843user]&#xD;&#xA;DISPLAYMODE=0&#xD;&#xA;[1950194user]&#xD;&#xA;DISPLAYMODE=1&#xD;&#xA;" oldIniSettingsForViewer="[Dacs4]&#xD;&#xA;LastOCRSetting=&#xD;&#xA;LastBarcodeSetting=&#xD;&#xA;" securityLevel="Normal"><Registered><FileCabinets totalNumber="5"><FileCabinet guid="1d8ea7b5-977c-4c08-b809-3ce0c67b9157" dbdatetime="00995018.184" path="C:\Documents and Settings\username\Local Settings\Temp\CtSCache\ContentServer\username\1d8ea7b5-977c-4c08-b809-3ce0c67b9157\Bibl.ADF" opened="true" isUserAssigned="false" /><FileCabinet guid="abcd0060-e615-4703-a0e2-a07ed99b13b0" dbdatetime="12841424.261" path="C:\Documents and Settings\username\Local Settings\Temp\CtSCache\ContentServer\username\abcd0060-e615-4703-a0e2-a07ed99b13b0\Personal.ADF" opened="true" isUserAssigned="false" /><FileCabinet guid="8e1e9306-d756-434e-ba64-dce190f8ba6e" dbdatetime="12841424.368" path="C:\Documents and Settings\username\Local Settings\Temp\CtSCache\ContentServer\username\8e1e9306-d756-434e-ba64-dce190f8ba6e\Projekt.ADF" opened="true" isUserAssigned="false" /><FileCabinet guid="c339340c-43ed-4769-b463-7ada38d8ba3e" dbdatetime="12841424.549" path="C:\Documents and Settings\username\Local Settings\Temp\CtSCache\ContentServer\username\c339340c-43ed-4769-b463-7ada38d8ba3e\Interess.ADF" opened="true" isUserAssigned="false" /><FileCabinet guid="b4a87a2f-c6ed-46a8-9d7c-91b619fc0050" dbdatetime="00963233.089" path="C:\Documents and Settings\username\Local Settings\Temp\CtSCache\ContentServer\username\b4a87a2f-c6ed-46a8-9d7c-91b619fc0050\banken.ADF" opened="true" isUserAssigned="false" /></FileCabinets><Baskets totalNumber="3"><Basket path="c:\temp\user\" opened="false" isUserAssigned="true" /><Basket path="c:\temp\user\" opened="false" isUserAssigned="true" /><Basket path="c:\daten\Docuware\Ablage\" opened="false" isUserAssigned="false" /></Baskets></Registered><MainWindow archivesVisible="true" basketsVisible="true" hierarchiesVisible="true" destBasketMdiState="false" defaultExportMode="0" exportMultiPageTiff="false" exportMergeOverlay="false" defaultImportMode="0" toolbarSize="false" activeImport="false" pendingBox="false" /><Login useDwLogin="true" /><Misc pathOfTrashCan="c:\daten\Docuware\Papierkorb" startDocuWareMinimized="false" /></DWUser>

Morphie 23. Jul 2008 10:39

Re: Ideen für spezielle Stringbearbeitung
 
Sehen alle XML-Strings in deiner Datenbank in etwa so aus, oder gibt es da unterschiede?
Ich meine von der Struktur her...

marabu 23. Jul 2008 10:53

Re: Ideen für spezielle Stringbearbeitung
 
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

toyoman 23. Jul 2008 15:12

Re: Ideen für spezielle Stringbearbeitung
 
Zitat:

Zitat von Morphie
Sehen alle XML-Strings in deiner Datenbank in etwa so aus, oder gibt es da unterschiede?
Ich meine von der Struktur her...

sollte immer gleich sein, denk ich.. hab aber nicht alle durchgesehen.
was sicher variert ist die anzahl von baskets z.b....


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:00 Uhr.
Seite 1 von 2  1 2      

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