GeoGet

Complete geocaching solutions

User Tools

Site Tools


user:skripty:com

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.txt · Last modified: 2011/10/08 00:00 (external edit)