+ end else if Key = 'surfacefile' then
+ begin
+ Result := Val;
+ end else if (Key = 'surface') or (Length(Key) = 0) then
+ begin
+ // \83T\81[\83t\83B\83X
+ if System.Pos(':', Blocks[i]) <= 0 then
+ Continue;
+ SurStr := Copy(Blocks[i], 1, System.Pos(':', Blocks[i])-1);
+ PosStr := Copy(Blocks[i], System.Pos(':', Blocks[i])+1, High(integer));
+ try
+ if System.Pos('-', SurStr) > 0 then
+ begin
+ smin := StrToInt(Copy(SurStr, 1, System.Pos('-', SurStr)-1));
+ smax := StrToInt(Copy(SurStr, System.Pos('-', SurStr)+1, High(integer)));
+ end else
+ begin
+ smin := StrToInt(SurStr);
+ smax := smin;
+ end;
+ for k := smin to smax do
+ begin
+ if PosStr = '*' then
+ begin
+ Sur2Pos.Values[IntToStr(k)] := IntToStr(k);
+ oldsur := k;
+ end else if PosStr = '-2' then
+ begin
+ Sur2Pos.Values[IntToStr(k)] := '' // \92è\8b`\89ð\8f\9c
+ end else if PosStr = '+' then
+ begin
+ Inc(oldsur);
+ Sur2Pos.Values[IntToStr(k)] := IntToStr(oldsur);
+ end else if StrToInt(PosStr) >= 0 then
+ begin
+ Sur2Pos.Values[IntToStr(k)] := PosStr;
+ oldsur := StrToInt(PosStr);
+ end;
+ end;
+ except
+ Continue;