GeoGet

Complete geocaching solutions

User Tools

Site Tools


user:skripty:com

This is an old revision of the document!


Volání COM/OLE objektů

Ze skriptů Geogetu lze volat i libovolný COM nebo OLE objekt z počítače.

Pro tento účel lze ve skriptech používat proměnné typu variant, které jsou schopny v sob držet libovolný datový typ včetně interfaců ke COM/OLE objektů.

Příklad

Následující kód ukazuje, jak lze ze skriptu používat Microsoft XML. V příkladu se otevře soubor my.gpx ve vašem datovém adresáři, vyberou se všechny názvy bodů, které soubor obsahuje, a prvních 20 se vypíše.

procedure ReadXML;
var
  Document: Variant;
  NodeList: Variant;
  Root: variant;
  s: string;
  n: integer;
begin
  try
    Document := CreateOleObject('Microsoft.XMLDOM');
    try
      Document.async := False;
      Document.validateOnParse := false;
      Document.resolveExternals := false;
      Document.preserveWhiteSpace := True;
      Document.load('my.gpx');
      if Document.parseError.errorCode <> 0 then
      begin
        ShowMessage('Parse Error line ' + inttostr(Document.parseError.line) 
          + ', character ' + inttostr(Document.parseError.linePos) + CRLF
          + Document.parseError.srcText); 
        exit;
      end;
      Root := Document.DocumentElement;
      NodeList := Root.SelectNodes('/gpx/wpt/name'); //XPath
      Showmessage('Found: ' + inttostr(NodeList.Length) + 'x');
      s := '';
      for n := 0 to NodeList.Length - 1 do
      begin
        if n >= 20 then break; //just first 20 records... 
	s := S + CRLF + NodeList.item[n].text;
      end;
      ShowMessage(s);  //display result
    finally
      Document := varNull;
    end;
  except
    Showmessage('Crashed?');
  end;
end;
user/skripty/com.1282045729.txt.gz · Last modified: 2010/08/17 00:00 (external edit)