!GEOSET
!VERSION 450
begin_metadata
"\GEOSET" = ""
"\GEOSET\NAME" = "正阳路地图1.01"
"\GEOSET\PROJECTION" = "0,7"
"\GEOSET\CENTER" = "568.4,47.4"
"\GEOSET\CENTER_USER" = "568.4,47.4"
"\GEOSET\MBR" = ""
"\GEOSET\MBR\LOWERLEFT" = "-688.04,-621.58158461037"
"\GEOSET\MBR\UPPERRIGHT" = "1824.84,716.38158461037"
"\GEOSET\ZOOMLEVEL" = "2512.88"
"\GEOSET\AUTOLAYER" = "FALSE"
"\GEOSET\MAPUNIT" = "7"
"\GEOSET\ROTATION" = "0"
"\TABLE" = ""
"\TABLE\1" = ""
"\TABLE\1\FILE" = "正阳路地图\注释.TAB"
"\TABLE\1\DESCRIPTION" = "注释"
"\TABLE\1\ISVISIBLE" = "TRUE"
"\TABLE\1\AUTOLABEL" = "FALSE"
"\TABLE\1\DRAWLABELSAFTER" = "FALSE"
"\TABLE\1\SHOWLINEDIRECTION" = "FALSE"
"\TABLE\1\SHOWNODES" = "FALSE"
"\TABLE\1\SHOWCENTROIDS" = "FALSE"
"\TABLE\1\EDITABLE" = "TRUE"
"\TABLE\1\SELECTABLE" = "FALSE"
"\TABLE\1\REGISTERINGEOODICT" = "TRUE"
"\TABLE\1\LABEL" = ""
"\TABLE\1\LABEL\FONT" = ""
"\TABLE\1\LABEL\FONT\Style" = "0"
"\TABLE\1\LABEL\FONT\ExtStyle" = "0"
"\TABLE\1\LABEL\FONT\Description" = "System"
"\TABLE\1\LABEL\FONT\Size" = "12"
"\TABLE\1\LABEL\FONT\Forecolor" = "0"
"\TABLE\1\LABEL\FONT\Backcolor" = "16777215"
"\TABLE\1\LABEL\FONT\Opaque" = "FALSE"
"\TABLE\1\LABEL\DUPLICATE" = "TRUE"
"\TABLE\1\LABEL\PARALLEL" = "TRUE"
"\TABLE\1\LABEL\OVERLAP" = "FALSE"
"\TABLE\1\LABEL\PARTIALSEGMENTS" = "FALSE"
"\TABLE\1\LABEL\LINETYPE" = "2"
"\TABLE\1\LABEL\OFFSET" = "2"
"\TABLE\1\LABEL\POSITION" = "5"
"\TABLE\2" = ""
"\TABLE\2\FILE" = "正阳路地图\变电站.TAB"
"\TABLE\2\DESCRIPTION" = "变电站"
"\TABLE\2\ISVISIBLE" = "TRUE"
"\TABLE\2\AUTOLABEL" = "FALSE"
"\TABLE\2\DRAWLABELSAFTER" = "FALSE"
"\TABLE\2\SHOWLINEDIRECTION" = "FALSE"
"\TABLE\2\SHOWNODES" = "FALSE"
"\TABLE\2\SHOWCENTROIDS" = "FALSE"
"\TABLE\2\EDITABLE" = "FALSE"
"\TABLE\2\SELECTABLE" = "FALSE"
"\TABLE\2\REGISTERINGEOODICT" = "TRUE"
"\TABLE\2\LABEL" = ""
"\TABLE\2\LABEL\FONT" = ""
"\TABLE\2\LABEL\FONT\Style" = "0"
"\TABLE\2\LABEL\FONT\ExtStyle" = "0"
"\TABLE\2\LABEL\FONT\Description" = "System"
"\TABLE\2\LABEL\FONT\Size" = "12"
"\TABLE\2\LABEL\FONT\Forecolor" = "0"
"\TABLE\2\LABEL\FONT\Backcolor" = "16777215"
"\TABLE\2\LABEL\FONT\Opaque" = "FALSE"
"\TABLE\2\LABEL\DUPLICATE" = "TRUE"
"\TABLE\2\LABEL\PARALLEL" = "TRUE"
"\TABLE\2\LABEL\OVERLAP" = "FALSE"
"\TABLE\2\LABEL\PARTIALSEGMENTS" = "FALSE"
"\TABLE\2\LABEL\LINETYPE" = "2"
"\TABLE\2\LABEL\OFFSET" = "2"
"\TABLE\2\LABEL\POSITION" = "5"
end_metadata这是一个地图文件包括两个图层TABLE(1、2),我怎样能读出里面的信息?

解决方案 »

  1.   

    var
      F: TextFile;
      S: string;
    begin
      ...
      while not EOF(F) do begin
        Readln(F, S);
        if Pos('NAME" = "', S) > 0 then begin
          {该行是名称信息}
          {分析串并得到信息}
        end else if Pos('LABEL\FONT\Style" = "', S) > 0 then begin
          {该行是字体尺寸信息}
           ...
        end else if 
          ...
        end;
      end;
    end;
    大概意思就是这样了。
    如果你事先知道GEOSET、TABLE这样固定的内容,以及NAME、OVERLAP这样特定的名称,那么可以用TStringList处理,就象读INI文件那样。
      

  2.   

    上面的代码中忘记关闭文件了:CloseFile(F)