Аналитика http://geosystema.net/forum/ |
|
Все про скрипти http://geosystema.net/forum/viewtopic.php?f=1&t=2809 |
Страница 5 из 83 |
Автор: | Пупкин [ 26 мар 2013 19:07 ] |
Заголовок сообщения: | Re: Все про скрипти |
Виникла ще одна цікава задача. Отже помічаємо (наприклад @Map.SelectByParameters) певні об'єкти, що вдовольняють умовам функції. Припустімо, що їх, об'єктів, декілька - наприклад чотири. Маю бажання зробити цикл, почергово звертаючись до кожного з них. Нумерація (ID) у них (результат @Map.Selected.List) "2 10 96 171" тобто певної послідовності не має. Яким чином взяти послідовно номери результату ф-ції @Map.Selected.List для обробки в циклі ф-цією @Map.SelectObject? Або підкажіть будь ласка інший метод послідовного звернення до виділених об'єктів. Пробував результат @Map.Selected.List обробляти @StringPart та тип змінних вирівняти не вдалося. |
Автор: | Dmitry_Zolotar [ 27 мар 2013 09:08 ] |
Заголовок сообщения: | Re: Все про скрипти |
Пупкин писал(а): Виникла ще одна цікава задача. Отже помічаємо (наприклад @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 |
Автор: | Пупкин [ 27 мар 2013 11:01 ] |
Заголовок сообщения: | Re: Все про скрипти |
Он як організовано роботу з масивами! (класичними "array"). Дякую! |
Автор: | Denidz [ 28 мар 2013 10:05 ] |
Заголовок сообщения: | Re: Все про скрипти |
Здравствуйте, есть тхт с очень большими количеством вот таких вот записей(между ФИО и кад номером знак табуляции) Бабіч Сергій Михайлович 0223972200050010573 Рожков Валентин Викторович 0223972200050010523; 0123982200050010524 Рожкова Галина Валентинівна 0223972200050010526; 0123982200050010527 Рожкова Ольга Федосіївна 0223972200050010576 Рожков Віктор Сергійович 0223972200050010564; 0123972200050010565 Рожков Роман Степанович 0223972200050010611 Рожкова Зінаїда Володимирівна 0223972200050010607 0123972200050010608 Рожков Микола Альбертович 0223972200050010551 022397220005001052 0223972200050010553 0223972200050010554 и есть еще участки с кадастровыми номерами без фамилий. Помогите скриптецом чтобы по кадастровым номерам фимилии в участки вписались. Если был бы вид фамилия-кадастровый номер я бы еще осилил, а так вид фамилия- n... кадастровых номеров сложновато. Очень очень буду признателен! |
Автор: | Пупкин [ 28 мар 2013 10:12 ] |
Заголовок сообщения: | Re: Все про скрипти |
Доброго здоров’я всім! В обмінному файлі такий вигляд <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/>) вписувати значення тега та модифікувати його в такий, що містить значення. |
Автор: | Deffar [ 28 мар 2013 12:22 ] |
Заголовок сообщения: | Re: Все про скрипти |
Пупкин писал(а): Яким чином передати значення $Name та модифікувати «<LastName/>» в «<LastName>Іванов</LastName>» не формуючи щось на кшталт $Value=<LastName>$Name</LastName>. Тобто, звертаючись до тега ХМЛ, що має порожнє значення (<LastName/>) вписувати значення тега та модифікувати його в такий, що містить значення. Здається немає функції для "заповнення" ХМЛ по тегах, чи я помиляюся Я робив саме через $Value=<LastName>$Name</LastName> , тобто формував в скрипті повне значення необхідного параметру і призначував його через @Map.Selected.ChangeParameter. |
Автор: | Denidz [ 28 мар 2013 12:27 ] |
Заголовок сообщения: | Re: Все про скрипти |
+1 за $Value=<LastName>$Name</LastName>. делал так же. |
Автор: | Пупкин [ 29 мар 2013 08:42 ] |
Заголовок сообщения: | Re: Все про скрипти |
Denidz писал(а): Здравствуйте, есть тхт с очень большими количеством вот таких вот записей(между ФИО и кад номером знак табуляции) Пропоную Вам скористатись @StringPartCount Char String та @StringPart Number String. |
Автор: | Denidz [ 31 мар 2013 18:38 ] |
Заголовок сообщения: | Re: Все про скрипти |
Спасибо, проблема уже решена) |
Автор: | Denidz [ 02 апр 2013 00:01 ] |
Заголовок сообщения: | Re: Все про скрипти |
Записать обменник со своим именем все-таки удалось, но вот трабл с хмл тегами. $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=Фамилия. почему с юр. лицами не дружит? |
Автор: | Bondarets Alexander [ 02 апр 2013 07:49 ] |
Заголовок сообщения: | Re: Все про скрипти |
Русская буква E в LegalЕntity. Будьте внимательней. |
Автор: | Denidz [ 05 апр 2013 11:25 ] | |||
Заголовок сообщения: | Re: Все про скрипти | |||
Прошу помощи, дигитал подвисает. Написал скрипт который сравнивая кадастровые номера присваивает земельному участку ФИО из списка. $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 и дмф прилагаю
|
Автор: | Dmitry_Zolotar [ 05 апр 2013 14:30 ] |
Заголовок сообщения: | Re: Все про скрипти |
В урезанном варианте(приложенные файлы) нет совпадений кадномеров и все проходит очень быстро, но без заполнения. Смущает только одно: @Map.Selected.GetParameter ID106 лучше заменить на @Map.Object[$N].Parameter[ID106] |
Автор: | Пупкин [ 05 апр 2013 16:06 ] |
Заголовок сообщения: | Re: Все про скрипти |
Доброго здоров'я всім! Допоможіть будь-ласка знайти функцію, якою можна було би перевірити полігон на предмет того, чи містить він вкраплені контури (вирізані методом "Сложный полигон", наприклад). |
Автор: | Denidz [ 05 апр 2013 16:30 ] |
Заголовок сообщения: | Re: Все про скрипти |
Вроде все заработало , но только не могу понять как дополнить кодом, что если совпадение не найдено то строки которые не совпали записывались в отдельный txt. |
Страница 5 из 83 | Часовой пояс: UTC + 2 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |