Аналитика

Цифровая фотограмметрия, картография и землеустройство
Текущее время: 23 ноя 2017 22:16

Часовой пояс: UTC + 2 часа




Начать новую тему Ответить на тему  [ Сообщений: 841 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7, 8 ... 57  След.
Автор Сообщение
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 26 мар 2013 19:07 
Эксперт
Эксперт

Зарегистрирован:
21 мар 2013 14:12
Сообщения: 94
Виникла ще одна цікава задача.
Отже помічаємо (наприклад @Map.SelectByParameters) певні об'єкти, що вдовольняють умовам функції.
Припустімо, що їх, об'єктів, декілька - наприклад чотири.
Маю бажання зробити цикл, почергово звертаючись до кожного з них.
Нумерація (ID) у них (результат @Map.Selected.List) "2 10 96 171" тобто певної послідовності не має.
Яким чином взяти послідовно номери результату ф-ції @Map.Selected.List для обробки в циклі ф-цією @Map.SelectObject?
Або підкажіть будь ласка інший метод послідовного звернення до виділених об'єктів.
Пробував результат @Map.Selected.List обробляти @StringPart та тип змінних вирівняти не вдалося.


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 27 мар 2013 09:08 
Гуру
Гуру

Зарегистрирован:
18 апр 2007 11:55
Сообщения: 1865
Откуда: Vinnitsa
Пупкин писал(а):
Виникла ще одна цікава задача.
Отже помічаємо (наприклад @Map.SelectByParameters) певні об'єкти, що вдовольняють умовам функції.
Припустімо, що їх, об'єктів, декілька - наприклад чотири.
Маю бажання зробити цикл, почергово звертаючись до кожного з них.
Нумерація (ID) у них (результат @Map.Selected.List) "2 10 96 171" тобто певної послідовності не має.
Яким чином взяти послідовно номери результату ф-ції @Map.Selected.List для обробки в циклі ф-цією @Map.SelectObject?
Або підкажіть будь ласка інший метод послідовного звернення до виділених об'єктів.
Пробував результат @Map.Selected.List обробляти @StringPart та тип змінних вирівняти не вдалося.


;Отримали список помічених об'єктів (роздільник - перенос строки)
$SOL=@Map.Selected.List
;зняли помітку
@Map.DeselectAll
@Text[1].Text=$SOL
$I=0
$SC=@Text[1].Count
%Loop
$I=$I+1
$O=@Text[1].Line[$I]
@Map.SelectObject $O
;
;Помічений лише один об'єкт з номером $O
;Додайте сюди код обробки
;
@Map.DeselectAll
@if $I<$SC then @Goto %Loop

_________________
Команда разработчиков Digitals
(наш e-mail и ICQ находятся в меню Помощь|О программе)
Новичкам сюда | Новые возможности программы | Купить Digitals


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 27 мар 2013 11:01 
Эксперт
Эксперт

Зарегистрирован:
21 мар 2013 14:12
Сообщения: 94
Он як організовано роботу з масивами! (класичними "array"). Дякую!


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 28 мар 2013 10:05 
Гуру
Гуру

Зарегистрирован:
14 окт 2010 16:40
Сообщения: 181
Здравствуйте, есть тхт с очень большими количеством вот таких вот записей(между ФИО и кад номером знак табуляции)
Бабіч Сергій Михайлович 0223972200050010573
Рожков Валентин Викторович 0223972200050010523; 0123982200050010524
Рожкова Галина Валентинівна 0223972200050010526; 0123982200050010527
Рожкова Ольга Федосіївна 0223972200050010576
Рожков Віктор Сергійович 0223972200050010564; 0123972200050010565
Рожков Роман Степанович 0223972200050010611
Рожкова Зінаїда Володимирівна 0223972200050010607 0123972200050010608
Рожков Микола Альбертович 0223972200050010551 022397220005001052 0223972200050010553 0223972200050010554

и есть еще участки с кадастровыми номерами без фамилий. Помогите скриптецом чтобы по кадастровым номерам фимилии в участки вписались. Если был бы вид фамилия-кадастровый номер я бы еще осилил, а так вид фамилия- n... кадастровых номеров сложновато. Очень очень буду признателен! :roll:


Последний раз редактировалось Denidz 28 мар 2013 10:16, всего редактировалось 1 раз.

Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 28 мар 2013 10:12 
Эксперт
Эксперт

Зарегистрирован:
21 мар 2013 14:12
Сообщения: 94
Доброго здоров’я всім!

В обмінному файлі такий вигляд

<Proprietors>
<ProprietorInfo>
<Authentication>
<NaturalPerson>
<FullName>
<LastName/>

Прогнозується такий результат після обробки

<Proprietors>
<ProprietorInfo>
<Authentication>
<NaturalPerson>
<FullName>
<LastName>Іванов</LastName>


$Name=@Dialog.Ask Введіть прізвище (Вводимо Іванов)
$From=@Map.Selected.GetParameter ID7000520
$Path=/Proprietors/ProprietorInfo/Authentication/NaturalPerson/FullName/LastName
$Value=@XML.XPath $Path $From (маємо порожнечу, в яку необхідно вписати $Name)

Яким чином передати значення $Name та модифікувати «<LastName/>» в «<LastName>Іванов</LastName>» не формуючи щось на кшталт $Value=<LastName>$Name</LastName>. Тобто, звертаючись до тега ХМЛ, що має порожнє значення (<LastName/>) вписувати значення тега та модифікувати його в такий, що містить значення.


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 28 мар 2013 12:22 
Эксперт
Эксперт

Зарегистрирован:
30 авг 2010 16:23
Сообщения: 99
Откуда: Хмельницкий
Пупкин писал(а):
Яким чином передати значення $Name та модифікувати «<LastName/>» в «<LastName>Іванов</LastName>» не формуючи щось на кшталт $Value=<LastName>$Name</LastName>. Тобто, звертаючись до тега ХМЛ, що має порожнє значення (<LastName/>) вписувати значення тега та модифікувати його в такий, що містить значення.

Здається немає функції для "заповнення" ХМЛ по тегах, чи я помиляюся :?:
Я робив саме через $Value=<LastName>$Name</LastName> , тобто формував в скрипті повне значення необхідного параметру і призначував його через @Map.Selected.ChangeParameter.


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 28 мар 2013 12:27 
Гуру
Гуру

Зарегистрирован:
14 окт 2010 16:40
Сообщения: 181
+1 за $Value=<LastName>$Name</LastName>. делал так же.


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 29 мар 2013 08:42 
Эксперт
Эксперт

Зарегистрирован:
21 мар 2013 14:12
Сообщения: 94
Denidz писал(а):
Здравствуйте, есть тхт с очень большими количеством вот таких вот записей(между ФИО и кад номером знак табуляции)

Пропоную Вам скористатись @StringPartCount Char String та @StringPart Number String.


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 31 мар 2013 18:38 
Гуру
Гуру

Зарегистрирован:
14 окт 2010 16:40
Сообщения: 181
Спасибо, проблема уже решена)


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 02 апр 2013 00:01 
Гуру
Гуру

Зарегистрирован:
14 окт 2010 16:40
Сообщения: 181
Записать обменник со своим именем все-таки удалось, но вот трабл с хмл тегами.
$GRUR=@Map.Selected.GetParameter ID7000520
$Found=@XML.NodeCount /Proprietors/ProprietorInfo[1]/Authentication/LegalЕntity $GRUR
$URNM=@XML.XPath /Proprietors/ProprietorInfo[1]/Authentication/LegalЕntity/Name $GRUR
$GRLastName=@XML.XPath /Proprietors/ProprietorInfo[1]/Authentication/NaturalPerson/FullName/LastName $GRUR
что-то я понять не могу. есть заполненный тег ../LegalЕntity/Name но $Found=0, а $URNM=пустая строка. тут же вместо юр лица ввожу физ лицо и $GRLastName=Фамилия. почему с юр. лицами не дружит?


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 02 апр 2013 07:49 
Гуру
Гуру

Зарегистрирован:
26 фев 2007 12:04
Сообщения: 1751
Откуда: Vinnitsa
Русская буква E в LegalЕntity. Будьте внимательней.

_________________
Команда разработчиков Digitals
(наш e-mail и ICQ находятся в меню Помощь|О программе)
Новичкам сюда | Новые возможности программы | Купить Digitals


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 05 апр 2013 11:25 
Гуру
Гуру

Зарегистрирован:
14 окт 2010 16:40
Сообщения: 181
Прошу помощи, дигитал подвисает. Написал скрипт который сравнивая кадастровые номера присваивает земельному участку ФИО из списка.
$C=@Map.SelCount
@if $С=0 then @Break Выделите объекты
$N=0
@Text[1].Load D:\2.txt //список со строками вида 'Гейван Георгій Засімович.0123982200:05:001:0571'
$SC=@Text[1].Count // число строк в списке
%Start
$N=@Map.NextSelected $N // перебираем обьекты по 1
@if $N=0 then @Break
$KAD=@Map.Selected.GetParameter ID106 //параметр с кадастровым номером вида '0123982200:05:001:0571'
$I=0
%Loop
$I=$I+1
$z=@Text[1].line[$I] //перебираем строки в списке
$NM=@StringPart 1.$z //имя землепользователя
$Kadin=@StringPart 2.$z //кадастровый номер
@if $Kadin=$KAD then @Map.Object[$N].Parameter[ID20030] $NM //если находим совпадение по кад. номерам то в параметр 20030 записываем ФИО
@if $I<$SC then @Goto %Loop
@if $N<$C then @Goto %Start

строк в списке 3 тыс может дигитал не подвисает, а думаетб но что-то уж очень долго. (тренировался всего на 1 участке) txt и дмф прилагаю


Вложения:
.dmf [17.02 Кб]
Скачиваний: 117
2.txt [3.16 Кб]
Скачиваний: 122
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 05 апр 2013 14:30 
Гуру
Гуру

Зарегистрирован:
18 апр 2007 11:55
Сообщения: 1865
Откуда: Vinnitsa
В урезанном варианте(приложенные файлы) нет совпадений кадномеров и все проходит очень быстро, но без заполнения.

Смущает только одно:
@Map.Selected.GetParameter ID106
лучше заменить на
@Map.Object[$N].Parameter[ID106]

_________________
Команда разработчиков Digitals
(наш e-mail и ICQ находятся в меню Помощь|О программе)
Новичкам сюда | Новые возможности программы | Купить Digitals


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 05 апр 2013 16:06 
Эксперт
Эксперт

Зарегистрирован:
21 мар 2013 14:12
Сообщения: 94
Доброго здоров'я всім!

Допоможіть будь-ласка знайти функцію, якою можна було би перевірити полігон на предмет того, чи містить він вкраплені контури (вирізані методом "Сложный полигон", наприклад).


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 05 апр 2013 16:30 
Гуру
Гуру

Зарегистрирован:
14 окт 2010 16:40
Сообщения: 181
Вроде все заработало :D, но только не могу понять как дополнить кодом, что если совпадение не найдено то строки которые не совпали записывались в отдельный txt.


Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 841 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7, 8 ... 57  След.

Часовой пояс: UTC + 2 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB