AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Teilstring in Textdatei ändern

Offene Frage von "Bea"
Ein Thema von Bea · begonnen am 19. Mai 2006 · letzter Beitrag vom 31. Mai 2006
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#11

Re: Teilstring in Textdatei ändern

  Alt 19. Mai 2006, 14:04
Zitat von Bea:
Nun muss ich zur Laufzeit meines Programms den Eintrag in den Anführungsstrichen bei
<StoreProperties DocumentName="Testdokument" />
durch einen neuen Wert (z.B.123456789) ersetzen.

Kann mir bitte jemand sagen, wie soetwas am besten geht?
Ich bedanke mich schonmal im Vorraus für jede Hilfe.

CU Bea
nimm doch einfach mal (wie bereits erwähnt) eine XML-Komponente und lies die datei damit ein.
Dann schaust Du, was dann passiert.
Anschliessend liesst Du die Hilfe zu der XML-Kompo.
Vermutlich kannst Du dann auf sehr einfache Weise den 'DocumentName' ändern.
Dann die Datei wieder mit der XML-Kompo speichern und feddisch.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Bea

Registriert seit: 23. Dez 2004
53 Beiträge
 
RAD-Studio 2009 Ent
 
#12

Re: Teilstring in Textdatei ändern

  Alt 19. Mai 2006, 14:07
also doch XML...na das muss ich mal in Ruhe probieren...noch nie gemacht.
und wie gesagt...oldValue kenn ich doch nicht
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#13

Re: Teilstring in Textdatei ändern

  Alt 19. Mai 2006, 14:12
Zitat von Bea:
also doch XML...na das muss ich mal in Ruhe probieren...noch nie gemacht.
und wie gesagt...oldValue kenn ich doch nicht
XML solltest Du dir mal reinziehen, ist sehr interessant.
Da kann man viele schöne Sachen damit machen.

und vermutlich brauchst Du den oldValue nicht, da Du dich auf 'DocumentName' stürzen solltest.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#14

Re: Teilstring in Textdatei ändern

  Alt 19. Mai 2006, 15:22
Hallo ihr Spaßvögel,

wenn oldValue nicht bekannt ist, dann schraubt man die Funktionalität einfach etwas zurück:

Delphi-Quellcode:
uses
  XMLIntf,
  XMLDoc;

function XMLChange(markup, ePath, aName, aValue: String): String;
var
  doc: IXMLDocument;
  nl: IDOMNodeList;
  i: Integer;
begin
  doc := LoadXMLData(markup);
  with doc.DOMDocument as IDOMNodeSelect do
    nl := SelectNodes(ePath);
  for i := 0 to Pred(nl.length) do
    with nl.item[i] as IDOMElement do
      setAttribute(aName, aValue);
  Result := doc.XML.Text;
end;
Einfach mal ausprobieren...

marabu
  Mit Zitat antworten Zitat
Bea

Registriert seit: 23. Dez 2004
53 Beiträge
 
RAD-Studio 2009 Ent
 
#15

Re: Teilstring in Textdatei ändern

  Alt 30. Mai 2006, 08:23
Hallo marabu,

wie verwende ich nun diese Funktion?
Was muss denn da nun bei markup, ePath, aName, aValue rein?
Hab da irgendwas von Knoten usw. gelesen, blick aber noch nicht so richtig durch.
Keinen Plan
Könntest du mir da mal ein Aufruf für mein Beispiel dazupacken, bitte?

CU Bea
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#16

Re: Teilstring in Textdatei ändern

  Alt 30. Mai 2006, 08:44
Hallo Bea,

hilft dir das?

Delphi-Quellcode:
with TStringList.Create do
begin
  LoadFromFile(ParamStr(1));
  Memo.Text := XMLChange(Text, '//StoreProperties', 'DocumentName', 'Bea');
  Free;
end;
Freundliche Grüße vom marabu
  Mit Zitat antworten Zitat
Bea

Registriert seit: 23. Dez 2004
53 Beiträge
 
RAD-Studio 2009 Ent
 
#17

Re: Teilstring in Textdatei ändern

  Alt 31. Mai 2006, 11:20
Hallo marabu,
vielen Dank für deine Hilfe.

Habe mich die letzten Tage mal etwas mit XML beschäftigt und mir viele Beispiele aus dem Forum angeschaut und ausprobiert,
um das ganze Thema verstehen zu lernen.
... werd ich aber noch viel üben müssen

Mit dem Beispiel von Dir konnte ich meine Anfrage lösen, denke ich.
Ich habe das jetzt so umgesetzt:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var xmlDoc: IXMLDocument;
    xmlFile: string;
    bXMLChange: boolean;
begin
with TStringList.Create do
  begin
    xmlFile := 'C:\DOCU0001.001';
    LoadFromFile(xmlFile);
    if XMLChangeAttribute(xmlFile, Text, '//StoreProperties', 'DocumentName', '123456789') then
      bXMLChange := true
    else
      bXMLChange := false;
    Free;
  end;
end;
 
function XMLChangeAttribute(sFile, markup, ePath, aName, aValue: string): boolean;
var
  doc: IXMLDocument;
  nl: IDOMNodeList;
  i: Integer;
begin
  Result := true;
  doc := LoadXMLData(markup);
  try
    with doc.DOMDocument as IDOMNodeSelect do
      nl := SelectNodes(ePath);
    for i := 0 to Pred(nl.length) do
      with nl.item[i] as IDOMElement do
      begin
        setAttribute(aName, aValue);
        doc.SaveToFile(sFile);
      end
  except
    Result := false;
  end;
end;
Könnte ich diese Funktion nun eigentlich auch (sicherlich etwas abgeändert) verwenden,
um Werte bestimmter Knoten zu ändern?

Also nochmals vielen Dank
CU Bea
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:27 Uhr.
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