AGB  ·  Datenschutz  ·  Impressum  







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

von XML in Tabelle

Ein Thema von CalganX · begonnen am 22. Jul 2002 · letzter Beitrag vom 10. Dez 2004
Antwort Antwort
Seite 3 von 3     123   
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#21
  Alt 16. Jan 2003, 09:29
Im Menü Projekt der Punkt Typelibrary importieren (oder so ähnlich; ich nutze die engl. Version).
......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Snoop007

Registriert seit: 14. Jan 2003
331 Beiträge
 
Delphi 6 Personal
 
#22
  Alt 16. Jan 2003, 10:17
habs jetzt auch gefunden
ich wusste gar nicht das delphi so eine funktion unterstütz
danke !!!
  Mit Zitat antworten Zitat
wk_one

Registriert seit: 19. Mai 2003
26 Beiträge
 
Delphi 7 Professional
 
#23

Frage

  Alt 14. Jul 2003, 09:42
Wenn man MSXML 4.0 verwendet, muss das dann auch auf dem System installiert sein auf dem die Anwendung läuft?
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#24

Re: von XML in Tabelle

  Alt 14. Jul 2003, 10:55
Na logo!

Es reicht aber IMHO schon, wenn der IE vorhanden ist. Der sollte XML auch installieren. Der IE5 enthält, glaube ich, XML 3. Evtl. hat der 6er also die 4er-Version dabei.

Notfalls sollte man bei der Installation seiner Anwendung prüfen, ob das XML-Interface bekannt ist und im Fehlerfall die Installation von MS-XML anbieten. Oder zumindest den Anwender auffordern, MS-XML zu installieren.


@sakura:
Zitat:
ich arbeite den ganzen lieben, langen Tag mit dem MS XML DOM (und das seit über 2 Jahren).
Ohne Pause? Mann, was für ein langer Tag.
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#25

Re: von XML in Tabelle

  Alt 14. Jul 2003, 15:03
Hätte ich fast vergessen. Quasi als Präventiv(vor)schlag (bevor die Frage kommt: wie kann man das prüfen?) hier eine Idee -

Mangels Rechner ohne XML weiß ich nicht, wie so ein Programm reagiert. Logisch, es wird nicht funktionieren ... Aber wahrscheinlich dürfte das System auch ein paar Fehler verursachen - vergleichbar mit dem statischen Laden von DLL-Funktionen, die es nicht gibt. Will sagen: die Fehler lassen sich evtl. nicht einfach unterbinden, weil die Typbibliothek keine dynamischen Zugriffe enthält. (Hab jedenfalls auf die Schnelle nichts davon gesehen.)

Um also ohne unschöne Fehlermeldungen auszukommen, empfehle ich die Prüfung in den Projektquelltext (*.dpr) zu schreiben und noch vor dem Erzeugen der Forms auszuführen:
Delphi-Quellcode:
uses
  { ... },
  Windows, Registry, ComObj, SysUtils;


function DoesXMLExist: boolean;
var
  reg : TRegistry;
  s : string;
begin
  Result := false;

  reg := TRegistry.Create(KEY_READ);
  if(reg <> nil) then
    with reg do try
      RootKey := HKEY_CLASSES_ROOT;

      if(OpenKey('CLSID\' + GuidToString(CLASS_DOMDocument40) +
        '\InProcServer32',false)) then
      try
        s := ReadString('');
        Result := (s <> '') and (fileexists(s));
      finally
        CloseKey;
      end;
    finally
      Free;
    end;
end;


begin
  if(not DoesXMLExist) then begin
    MessageBox(0,'Dieses Programm erfordert min. MS XML 4',nil,
      MB_ICONERROR or MB_OK);
    Halt;
  end;

  // hier würden dann die Forms erzeugt werden, usw.
  Application.Initialize;
  { ... }
end.
Der Wert CLASS_DOMDocument40 ergibt sich in diesem Fall aus sakuras Beispielcode. Die Funktion "CoDOMDocument40.Create" verweist auf eben diesen Wert, der eine GUID ({88D969C0-F192-11D4-A65F-0040963251E5}) enthält. Diese muss es als Registryschlüssel geben, und sie sollte den Pfad zur entsprechenden DLL (hier "msxml4.dll") enthalten. Dann dürfte alles in Butter sein.

Im Fehlerfall (sprich: XML ist nicht installiert, und das Interface existiert darum nicht) wird die Anwendung hoffentlich beendet, bevor irgendein Formular erzeugt wird und evtl. automatisch (OnCreate, usw.) auf XML-Dateien zuzugreifen versucht.
  Mit Zitat antworten Zitat
wk_one

Registriert seit: 19. Mai 2003
26 Beiträge
 
Delphi 7 Professional
 
#26

Re: von XML in Tabelle

  Alt 18. Jul 2003, 12:32
Danke übrigens für deine super Unterstützung. Hast mir wirklich sehr weitergeholfen.
Weiter so
  Mit Zitat antworten Zitat
Benutzerbild von semo
semo

Registriert seit: 24. Apr 2004
755 Beiträge
 
Delphi 2010 Professional
 
#27

Re: von XML in Tabelle

  Alt 10. Dez 2004, 15:45
@sakkura

Code:
 // XML Datei laden
  XMLDoc.load('smiley.xml');

  // Fehler überprüfen
  if XMLDoc.parseError.errorCode <> 0 then
  begin
    ShowMessage('XML Fehler: '#13#10 + XMLDoc.parseError.reason);
    Exit;
  end;
wenn die datei nicht geladen werden kann aufgrund eines fehlers in der wohlgeformtheit, dann sollte man den fehler direkt in diesem schritt abfragen.

beispiel:

Code:
    if not xmlDoc.load(sDateiname) then
    begin
      // prüfen ob XML-File "wohlgeformt" ist:
      If xmlDoc.parseerror.errorCode <> 0 then
      begin
        // eine ausführliche Fehlermeldung zusammenstellen:
        sError := Format( 'XML-Datei %s ist nicht wohlgeformt --> Abbruch ||| ' +
                          'Code:   ' + ' %d +++ ' +
                          'Reason: ' + ' %s +++ ' +
                          'URL:    ' + ' %s +++ ' +
                          'SrcText: ' + ' %s +++ ' +
                          'Line:   ' + ' %d +++ ' +
                          'LinePos: ' + ' %d +++ ' +
                          'FilePos: ' + ' %d',
                          [sDateiname,
                          xmlDoc.parseerror.Get_errorCode,
                          xmlDoc.parseerror.Get_reason(),
                          xmlDoc.parseerror.Get_url,
                          xmlDoc.parseerror.Get_srcText,
                          xmlDoc.parseerror.Get_line,
                          xmlDoc.parseerror.Get_linepos,
                          xmlDoc.parseerror.Get_filepos]);

        WriteToLogFile(sError);
        if Assigned(aErrorProc) then
          aErrorProc( 'XML-File ' + sDateiname + ' ist nicht wohlgeformt und ' +
                      'konnte deshalb nicht geladen werden!');
        Exit;
      end else
      begin
        if Assigned(aErrorProc) then
          aErrorProc('XML-Datei ' + sDateiname + ' nicht vorhanden!');
        exit;
      end;
    end else
      if Assigned(aInfoProc) then
        aInfoProc('XML-Datei ' + sDateiname + ' erfolgreich geladen!');
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


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 11:55 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