AGB  ·  Datenschutz  ·  Impressum  







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

Save Dialog inkl. XML

Ein Thema von StepByStep · begonnen am 16. Jan 2015 · letzter Beitrag vom 16. Jan 2015
 
StepByStep

Registriert seit: 12. Nov 2014
Ort: Schleswig-Holstein
61 Beiträge
 
Delphi 7 Professional
 
#5

AW: Save Dialog inkl. XML

  Alt 16. Jan 2015, 10:00
Ich hab da irgendwie ein Problem... es nennt sich Exception.

Also ich mache folgendes:

Im "OnCreate" meiner Hauptform rufe ich den Befehl Xmlvalue.Open; auf.

Delphi-Quellcode:
procedure TXmlfunction.Open;
begin
  OpenDialog := TOpenDialog.Create(nil);
  OpenDialog.Title := 'Datei auswählen';
  OpenDialog.Options := [ofFileMustExist];
  OpenDialog.InitialDir := GetCurrentDir;
  OpenDialog.Filter := 'XML|*.xml';
  if OpenDialog.Execute then
  begin
    Data := Xml.XMLDoc.LoadXMLDocument(OpenDialog.FileName);
    firstchild := Data.ChildNodes['Arbeitszeiterfassung'];
    secondchild := firstchild.ChildNodes['Arbeitszeit'];
    Xmllist := TObjectlist<TList>.Create;
    repeat
      Xmllist.Add(TList.Create(secondchild.ChildNodes['Nummer'].Text, secondchild.ChildNodes['Von'].Text,
        secondchild.ChildNodes['Bis'].Text, secondchild.ChildNodes['Dauer'].Text,
        secondchild.ChildNodes['Stichwort'].Text, secondchild.ChildNodes['Summe'].Text));
      secondchild := secondchild.NextSibling;
    until secondchild = nil;
    ShowMessage('Die Datei wurde geladen.');
  end
  else
  begin
    Data := NewXMLDocument;
    Data.Encoding := 'utf-8';
    firstchild := Data.AddChild('Arbeitszeiterfassung');
    ShowMessage('Die Datei konnte nicht geladen werden.');
  end;
  OpenDialog.Free;
end;
Das soll eigentlich dafür sorgen, dass wenn ich keine bestehende Datei auswähle, eine neue erstellt wird.
Ich trage anschließend etwas in Editfelder und drücke auf speichern:

Xmlvalue.AddChild(Von_E.Text, Bis_E.Text, Stichwort_E.Text); Dort in der Funktion werden die Daten übernommen und anschließend steht dort zum Schluss:

Save; was mich an meinen SaveDialog weiterleitet:

Delphi-Quellcode:
procedure TXmlfunction.Save;
begin
  SaveDialog := TSaveDialog.Create(nil);
  SaveDialog.Title := 'XML speichern';
  SaveDialog.InitialDir := GetCurrentDir;
  SaveDialog.Filter := 'XML|*.xml';
  SaveDialog.DefaultExt := 'xml';
  if SaveDialog.Execute then
  begin
    Data.SaveToFile(SaveDialog.FileName);
    ShowMessage('Die Datei konnte gespeichert werden.');
  end
  else
  begin
    ShowMessage('Die Datei konnte nicht gespeichert werden.');
  end;
  SaveDialog.Free;
end;
Ich habe ein bestehendes XML-Dokument, das möchte ich aber nicht überschreiben, sondern ein neues erstellen. Also trage ich einen anderen Namen ein.
Ohne etwas zu machen kam dann eine Readofadress-exception - warum?
Jan
  Mit Zitat antworten Zitat
 

 

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 22:02 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