Задача: Є список кадастрових номерів в стовпчик. Потрібно помітити на карті ділянки за кадастровими номерами в списку. При чому, ділянки на карті, як у форматі IN4, так і в форматі XML.
Вирішення:
@Dialog.Message Виберіть файл із списком кадастрових номерів
$ListName=@Dialog.OpenFile *.txt
@If $ListName= then @Break
@Text.Load $ListName
@Map.DeselectAll
@Map.SelectLayer id20000
@Map.SelectLayer id70005
$SL=@Map.SelCount
$N2=0
%Pochatok2
$N2=@Map.NextSelected $N2
@Text[2].Add $N2
@if $N2<>0 then @Goto %Pochatok2
$MC=@Text[2].Count
$MC=$MC-1
$FC=@Text.Count
@Progress.Start $FC Пошук та виділення файлів
@Map.DeselectAll
$I=0
%Loop
$I=$I+1
$FN=@Text.Line[$I]
@Progress.StepBy
$rogress=@Progress.Canceled
@if $rogress=1 then @Goto %End
$N=0
%Pochatok
$N=$N+1
$LN=@Text[2].Line[$N]
$LID=@Map.Object[$LN].LayerID
@If $LID=20000 then $Cil=@Map.Object[$LN].CalculateFormula Parent[23]:Parent[24]:Parent[25]:CUT(4,4,P[34])
@If $LID=70005 then $Cil=@Map.Object[$LN].CalculateFormula Parent[ID7000301](ID70003):Parent[ID7000401](ID70004):P[ID7000513]
$Cil=@Calc Trim("$Cil")
$Cil=@DequoteText $Cil
@If "$Cil"<>"$FN" then @Goto %Next
@Map.SelectObject $LN
%Next
@if $N<$MC then @Goto %Pochatok
@if $I<$FC then @Goto %Loop
%End
@Progress.Stop
Кадастрові номери в списку повинні бути у форматі:
6858589500:03:001:0038
6858589500:03:001:0039
тобто, з двокрапками. |