GeoCalc 2.0

今天刚从花山回来。花果山实习共花两天,第一天从早上8:30出发,下午4点回校,第二天早上7:00出发,下午3点回校,总算是搞完了。我的手严重晒伤,好痛,昨晚那么晚了还跑出去买了药,希望不要脱皮!

前天拿到全站仪就写了最后一个功能,但是由于时间太仓促,功能上有点问题,昨晚上又改了一下,才没有问题。这个软件就到这里了,不想再写下去了!就让2.0成为最后一个版本吧,可能也只有我本人才有这个版本……

帖上两非常重要的函数。

//将数据转换成南方CASS的数据格式
procedure Tform1.StringToNF(s:AnsiString);
var temp2,tempData:AnsiString;
    i,j:integer;
begin
  dataString:=dataString+s;
repeat
  i:=pos('+',string(dataString)); j:=pos('_',string(dataString));
  if((i<>0) and (j<>0)) then
  begin
  dataString:=Copy(dataString,i+1,length(dataString)-i);
  j:=pos('_',string(dataString));
  tempData:=AnsiString(trim(string(Copy(dataString,1,j-1))));
  dataString:=copy(dataString,j+1,length(dataString)-j);
  case times mod 4 of
    1:  tempNFstr:=tempNFstr+tempData+',,';
    2,3:
      begin
        temp2:=AnsiString(IntToStr(strtoint(string(tempData))));
        Insert('.',temp2,length(temp2)-2);
        tempNFstr:=tempNFstr+temp2+',';
      end;
    0:
      begin
        temp2:=AnsiString(IntToStr(strtoint(string(tempData))));
        Insert('.',temp2,length(temp2)-2);
        tempNFstr:=tempNFstr+temp2;
        bsSkinMemo1.Lines.Add(string(ExchangeXY(tempNFstr)));
        label102.Caption:='已下载点数:'+IntToStr(times div 4);
        tempNFstr:='';
      end;
  end;
  end;
  times:=times+1;
until ((pos('+',string(dataString))=0) or (pos('_',string(dataString))=0));
end;

//将X,Y坐标互换(因测绘坐标系与数学的X,Y反的)
function ExchangeXY(s:Ansistring):Ansistring;
var i:integer;
    s1,s2,s3,s4:AnsiString;
begin
   i:=pos(',',string(s));
   s1:=copy(s,1,i+1);
   s:=Copy(s,i+2,length(s)-i);

   i:=pos(',',string(s));
   s2:=copy(s,1,i);
   s:=Copy(s,i+1,length(s)-i);

   i:=pos(',',string(s));
   s3:=copy(s,1,i);
   s4:=Copy(s,i+1,length(s)-i);

   Result:=s1+s3+s2+s4;
end;