Аналитика http://www.geosystema.net/forum/ |
|
Однотипное заполнение адреса земельного участка http://www.geosystema.net/forum/viewtopic.php?f=1&t=19609 |
Страница 1 из 1 |
Автор: | Александр 7 [ 26 дек 2015 12:38 ] |
Заголовок сообщения: | Однотипное заполнение адреса земельного участка |
Возникла проблема. При создании карты населенного пункта ( 2000 усадеб), работу вели в разное время несколько исполнителей. В результате адрес участков заполнен по разному. Например: с.м.т.Дніпровське, вулиця Центральна,45 смт. Дніпровське, вул.Західна,54 ну и много разных вариаций, хотя структура н.п.,вулиця,номер,квартира, не нарушена Возможно ли пакетное приведение к однотипному представлению. |
Автор: | fendak [ 26 дек 2015 17:29 ] |
Заголовок сообщения: | Re: Однотипное заполнение адреса земельного участка |
в Бібліотеці корисних скриптів є скрипт, написаний Дмитром Золотарем: Код: $SearchText=@Dialog.Ask Введіть текст для пошуку $STL=@Calc Length("$SearchText") @if $STL=0 then @Break Введіть не пустий текст $ReplaceText=@Dialog.Ask Введіть текст для заміни $Path=@Dialog.Ask Шлях до папки Default=С:\Digitals @Text[0].FolderListTree *.dmf $Path $MapCount=@Text[0].Count @if $MapCount=0 then @Break Файл(и) не знайдені $FileNumber=0 %LoopEachFile $FileNumber=$FileNumber+1 $MapFileName=@Text[0].Line[$FileNumber] @FileOpen $MapFileName $OC=@Map.Count $PC=@Map.Parameters.Count $CC1=0 $I=0 %LoopObject $I=$I+1 $J=0 $L=@Map.Object[$I].Layer $LD=@Map.Layers.Get $L @Dialog.Message $LD %LoopParameter $J=$J+1 $S=@Map.Object[$I].Parameter[$J] $CC2=0 %Repeat $IP=@Calc pos("$SearchText","$S") @if $IP=0 then @Goto %Continue1 $S=@Calc delete("$S",$IP,$STL) $S=@DequoteText $S $S=@Calc insert("$S","$ReplaceText",$IP) $S=@DequoteText $S $CC2=$CC2+1 @if $CC2>100 then @Goto %Continue1 @Goto %Repeat %Continue1 @if $CC2=0 then @Goto %Continue2 $CC1=$CC1+1 @Map.Object[$I].Parameter[$J] $S %Continue2 @if $J<$PC then @Goto %LoopParameter @if $I<$OC then @Goto %LoopObject @if $CC1>0 then @Map.SaveToFile $MapFileName @if $CC1>0 then @Text[1].Add $MapFileName змінений @if $CC1=0 then @Text[1].Add $MapFileName не змінений @CloseMap @if $FileNumber<$MapCount then @Goto %LoopEachFile @Text[1].Save $Path\Changes.log @Dialog.Message див. лог-файл $Path\Changes.log Він здійснює заміну тексту в усіх dmf файлах у вказаній папці. Вам потрібно замінити с.м.т. на смт. і так усі інші написи, які не підходять. Якщо файли не dmf, а IN4 чи XML тоді треба змінити рядок @Text[0].FolderListTree *.dmf $Path поставививши замість dmf те, що треба Можна було б і у повністю автоматичному режимі, але тоді треба знати весь перелік ваших несходжень. ; |
Автор: | remixxiwe [ 14 фев 2016 18:36 ] |
Заголовок сообщения: | Re: Однотипное заполнение адреса земельного участка |
А можна описати біль детально роботу скрипту! Бо в мене щось не вийшло Масове перейменування((( |
Автор: | fendak [ 15 фев 2016 20:22 ] |
Заголовок сообщения: | Re: Однотипное заполнение адреса земельного участка |
якщо у вась всі ділянки на одній карті, тоді просто користуйтеся командою ЗАМІНИТИ. Наведений вище скрипт виконує ту ж саму операцію, але по окремих обмінниках. Можна, звичайно зробити скрипт, який би сам зводив усі види написання типу проїзду до одного виду. Але для чього треба створити довідник неправильних і правильного типу написання. Наприклад, шукати: с.м.т. селище міського типу селище замінювати на: смт. І так по кожному типу проїзду. Але з цим треба трохи посидіти, згадати (чи подивитися по вашій карті) всі можливі неправильні і правильні варіанти і створити довідник. |
Страница 1 из 1 | Часовой пояс: UTC + 2 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |