Аналитика

Цифровая фотограмметрия, картография и землеустройство
Текущее время: 26 апр 2024 06:06

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




Начать новую тему Ответить на тему  [ Сообщений: 1236 ]  На страницу Пред.  1 ... 37, 38, 39, 40, 41, 42, 43 ... 83  След.
Автор Сообщение
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 17 ноя 2015 20:33 
Гуру
Гуру

Зарегистрирован:
05 апр 2012 10:20
Сообщения: 797
Откуда: Львівська область
klaid писал(а):
Треба приклад скрипта для імпорту данних з ексель таблиці....
Треба щоб скрипт шукав у файлі ПІБ, в цьому рядку, але в іншій колонці брав дати - номери реєстрації, № паїв і прописував в потрібні параметри в карті.
може в когось щось є подібне, поділіться будьте ласкаві. :D


Може це підійде - viewtopic.php?p=36460&f=1#36460

_________________
додатково про скрипти Digitals на www.digitals.at.ua


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 20 ноя 2015 16:49 
Специалист
Специалист

Зарегистрирован:
21 дек 2013 22:52
Сообщения: 40
Всем привет. В ходе работ по проверке подрядчиков, появилась необходимость в проставлении им ошибок в слое Errors с ID9. Одна из ошибок должна ставиться в виде крестика, что означает, что перечеркнутый этим крестиком объект нужно удалить. Можно ли написать такой скрипт, чтобы при нажатии кнопки этот крестик ставился в заданном слое над помеченным объектом?


Вложения:
.JPG
.JPG [ 14 Кб | Просмотров: 9159 ]
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 20 ноя 2015 17:24 
Гуру
Гуру

Зарегистрирован:
18 апр 2007 11:55
Сообщения: 2298
Откуда: Vinnytsia
Если слой ID9 точечный с условным знаком "крестиком", то скрипт такой:
@Map.AddNodes ID9 4

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


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

Зарегистрирован:
06 июн 2010 06:35
Сообщения: 823
Откуда: Ліспроект Володимир Вовчанський
Доброго дня всім.
Тема на обговорення: чи можна на скриптовому рівні підписати карту разовим скриптовим підписом?

Карта збирається виконавцями підрозділу-1 і для подальшої роботи передається одному працівнику-прийомщику. Прийомщик виконує перевірку якості отриманої карти скриптом, і якщо помилок немає - віддає карту для подальшої роботи виконавцям підрозділу-2.
Яким чином заставити виконавців підрозділу-1, перед здачею карти прийомщику, виконати скрипт перевірки? Щоб карта на прийомку приходила з такою собі ознакою: "скрипт перевірки на цій карті було пройдено, і помилок в карті гарантовано немає, і карта після перевірки жодного разу не відкривалась"?

1. Коли карта готова до здачі прийомщику, виконавець підрозділу-1 запускає скрипт перевірки карти, який:
- за умови виправлення виконавцем відловлених скриптом помилок, додає до карти об'єкт "P" у певному шарі;
- дописує до карти скрипт обробки події %Events.OnFileOpen, зберігає зміни в карті та закриває карту.
Результатом є карта, підписана разовим скриптовим підписом, принцип роботи якого нижче описаний.
Якщо карта відкривається після підписання - запускається скрипт %Events.OnFileOpen, який:
- за наявності в карті об'єкта "P" видає на екран повідомлення "Карта належної якості, оскільки перевірена скриптом", видаляє з карти об'єкт "P" і зберігає зміни в карті;
- за відсутності в карті об'єкта "P" видає на екран повідомлення "Карта сумнівної якості, оскільки відкривалась після перевірки скриптом"
2. Прийомщик, коли приймає карту, відкриває карту і ... Момент істини:
- приймає карту, якщо підпис діючий;
- не приймає карту, якщо підпис злетів.

З усього цього, питання до розробників: чи можна скриптовою функцією додати до карти скрипт обробки події рівня карти? А рівня шару?

Вибачте за складність викладу інформації :oops:


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

Зарегистрирован:
05 апр 2012 10:20
Сообщения: 797
Откуда: Львівська область
Я правильно зрозумів? Вам потрібний контроль, чи оброблялася карта певним скриптом?

Якщо так, то, можливо, підійде наступний варіант. В скрипт за допомогою функцій @Text добавляється код, який записує в певний текстовий файл на комп'ютері певне контрольне значення (для прикладу, цифра 1) і навпроти - шлях чи назва карти.

Потім ви собі відкрили цей файл і побачили, які карти оброблялися, а які ні. Чи, якщо таких багато, можна написати ще додатковий скрипт, який шукає по створеному списку, чи дана карта оброблялася.

Звичайно, якби можна самим скриптом добавляти на карту інший скрипт - то це було б круто. Але такої можливості, здається, немає.

Є тільки можливість добавляти скриптом скрипт рівня кнопки, редагуючи, чи створюючи файл .tlb

_________________
додатково про скрипти Digitals на www.digitals.at.ua


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 22 ноя 2015 11:39 
Гуру
Гуру

Зарегистрирован:
06 июн 2010 06:35
Сообщения: 823
Откуда: Ліспроект Володимир Вовчанський
fendak писал(а):
...потрібний контроль, чи оброблялася карта певним скриптом?...
Такого контролю - реєстрації в текстовому файлі факту виконання скрипта контролю для карти мало. Треба забезпечити реєстрацію вдалого виконання скрипта контролю в самій карті.
Ви спитаєте: для чого в карті? Я відповім: щоб наступне, після разового скриптового підписання карти, її відкриття, скидало цей підпис у скрипті обробки події %Events.OnFileOpen з виведенням повідомлення "Карта не відкривалась з тих пір, як в ній виправлено всі помилки скриптом контролю".

В запропонованому Вами варіанті є такий нюанс:
- виконавець перевірив карту скриптом перевірки, таки добравшись до завершення скрипта (ліквідував усі помилки, виловлені скриптом), і скрипт контролю добавив запис у текстовий файл про те, що карта перевіркою пройдена;
- виконавець після перевірки вніс зміни в карту, при цьому допустив помилки, а скрипт контролю йому "по-боку", або просто забув за нього.
Колізія получається: і запис про контроль в текстовому файлі є, і помилки в карті є.

А так, в кінцевому результаті, матимем контроль прийомщика над виконавцем, щодо якості зданої виконавцем карти.

Можливість скриптом-1 додати скрипт-2 обробки події карти. От що треба мати. Наявність першої такої (з блоку скриптових функцій роботи зі скриптами) функції, дасть можливість реалізувати підписання карти разовим скриптовим підписом.


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

Зарегистрирован:
05 апр 2012 10:20
Сообщения: 797
Откуда: Львівська область
Ну тоді можна при перевірці вашим скриптом, при збереженні файлу, в певний параметр карти добавляти дату перевірки (чи замість карти в той же список).

Якщо дата внесення змін у файл не співпадатиме із датою, внесеною в контрольний параметр - значить файл редагувався після перевірки скриптом.

Але це буде працювати тільки при умові, що зміни не вносилися в той же день, що і перевірка скриптом, бо не вистачає ще, окрім @Date, функції @Hour

_________________
додатково про скрипти Digitals на www.digitals.at.ua


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 22 ноя 2015 13:56 
Гуру
Гуру

Зарегистрирован:
06 июн 2010 06:35
Сообщения: 823
Откуда: Ліспроект Володимир Вовчанський
fendak писал(а):
...при збереженні файлу, в певний параметр карти добавляти дату перевірки...
Дякую за сумісний пошук вирішення. Варіант можливий. Але Ви правду кажете: шкода, що немає функції, яка повертала б поточний час. Навіть якби функція часу була - треба записувати час збереження змін, а це - скрипт обробки події рівня карти %Events.OnFileSave.
fendak писал(а):
...Якщо дата внесення змін у файл не співпадатиме із датою, внесеною в контрольний параметр - значить файл редагувався після перевірки скриптом...
В тому то й справа, що треба мінімізувати наявність людського фактора. Прийомщик не має пам'ятати, що йому треба не забути подивитись відповідність часу останнього збереження і часу закінчення скрипта перевірки. На тепер, діюча наша інструкція рясніє словами "обов'язково не забути", або "уважно слідкувати щоб...". Нехай скрипт обробки події відкриття карти слідкує. Та як там, в карті, є помилки, то нехай скрипт обробки події відкриття карти, після виведення повідомлення, взагалі закриває карту і забезпечує таким чином відсутність можливості прийняти карту зі "злетівшим" підписом.

Щодо часу завершення скрипта, є вихід. Скрипт контролю:
- починає писати лог-файл @OpenLog;
- після збереженням карти @Map.SaveToFile завершує лог-файл @CloseLog [Filename];
- вичитує з лог-файла час завершення команди збереження карти з точністю до тисячної долі секунди в змінну $Time;
- створює об'єкт "Р", значення параметра якого встановлює $Time;
- додає до карти скрипт обробки події %Events.OnFileOpen з первіркою при наступному відкритті карти значення параметра об'єкта "P", чи рівне $Time;
- повторно зберігає карту.

Як не крути, а все повертаюсь до необхідності скриптом з кнопки додати в карту скрипт обробки події рівня карти. Хто мене переконає в іншому? Буду дуже вдячний, бо вже можна заплутатись. Рішення десь близько :?


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 23 ноя 2015 15:50 
Гуру
Гуру

Зарегистрирован:
05 апр 2012 10:20
Сообщения: 797
Откуда: Львівська область
Роблю скрипт на основі цього http://www.geosystema.net/forum/viewtopic.php?p=37241&f=1#37241
який повинен добавляти на карту ділянки з бази.

$ActivateMap=@ActivateMap
@Text[1].Load D:\BazaWork.txt
$FC=@Text[1].Count
$I=0
@Map.BeginUpdate
@Progress.Start $FC Процес створення бази
%Loop
$I=$I+1
@Progress.StepBy
$rogress=@Progress.Canceled
@if $rogress=1 then @break Зупинено на файлі $I-1 $FN
@if $I<$FC then
$FN=@Text[1].Line[$I]
@FileOpen $FN
@Map.SelectAll
@Map.Copy
$CopyMap=@ActivateMap
@CloseMap $CopyMap
@ActivateMap $ActivateMap
@Map.Paste
@if $I<$FC then @Goto %Loop
@Progress.Stop
@Map.EndUpdate


Але зіткнувся з двома проблемами:
1.Довго формується, потрібно дуже багато часу.
2.Зайнятий буфер обміну на компютері. Не можна більше нічого копіювати і вставляти.

Чи є способи пришвидшити це якось?

Якщо просто взяти перетягнути папку з ділянками на Digitals, то це також займає дуже багато часу, не вистачає дня. А потім, відмінивши, не знаю, на чому стало, щоб продовжити.

_________________
додатково про скрипти Digitals на www.digitals.at.ua


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 23 ноя 2015 16:01 
Гуру
Гуру

Зарегистрирован:
06 июн 2010 06:35
Сообщения: 823
Откуда: Ліспроект Володимир Вовчанський
fendak писал(а):
...повинен добавляти на карту ділянки з бази...
Код:
$FC=@Text[1].Load D:\BazaWork.txt
@If $FC=0 then @Break Відсутні дані у файлі D:\BazaWork.txt
$I=1
@Map.BeginUpdate
@Progress.Start $FC Процес створення бази
%Loop
@Progress.StepBy
$rogress=@Progress.Canceled
@if $rogress=1 then @Map.EndUpdate RefreshAlways
@if $rogress=1 then @break Зупинено на файлі $I-1 $FN
$FN=@Text[1].Line[$I]
$FileExist=@FileExists $FN
@If $FileExist=0 then @Goto %LoopNext
@Map.InsertFromFile $FN
%LoopNext
$I=$I+1
@if $I<=$FC then @Goto %Loop
@Progress.Stop
@Map.EndUpdate
@Dialog.Message Виконано


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

Зарегистрирован:
05 апр 2012 10:20
Сообщения: 797
Откуда: Львівська область
дякую :)
По часу не скоріше, але хоч буфер вільний завдяки @Map.InsertFromFile

_________________
додатково про скрипти Digitals на www.digitals.at.ua


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 24 ноя 2015 13:19 
Специалист
Специалист

Зарегистрирован:
21 дек 2013 22:52
Сообщения: 40
Dmitry_Zolotar писал(а):
Если слой ID9 точечный с условным знаком "крестиком", то скрипт такой:
@Map.AddNodes ID9 4

К сожалению нет. Это полигон/полилиния и менять шаблон нельзя. В этом и вся проблема.


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

Зарегистрирован:
06 июн 2010 06:35
Сообщения: 823
Откуда: Ліспроект Володимир Вовчанський
carnivoro писал(а):
необходимость в проставлении им ошибок в слое Errors с ID9. Одна из ошибок должна ставиться в виде крестика, что означает, что перечеркнутый этим крестиком объект нужно удалить. Можно ли написать такой скрипт, чтобы при нажатии кнопки этот крестик ставился в заданном слое над помеченным объектом?... Это полигон/полилиния и менять шаблон нельзя. В этом и вся проблема.
Визначайтесь. Або скрипт додасть шар (щоб в карті, тим самим натисканням кнопкою на об'єкті створювався точковий об'єкт), або скрипт додасть параметр, значення якого заповнить прикметою помилковості та відобразить карту в тематичному вигляді.
В будь-якому випадку, це означає змінити шаблон. "Поставити помилку в шарі Errors з ID9 кнопкою" - означає "перевести об'єкт в шар Errors с ID9"? Як на мене, задача може вирішитись лише зі змінами в шаблоні карти.


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 24 ноя 2015 15:32 
Эксперт
Эксперт

Зарегистрирован:
04 ноя 2010 12:28
Сообщения: 76
Откуда: Київ
Як змінити ";" на "пробіл" за допомогою скрипта ???


ReplaceCrapkaComma.dsf

$S=@Calc replace("$PARAMETERS",";"," ")
$Result=@DequoteText $S

у даному випадку просто видаляються ";"


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

Зарегистрирован:
06 июн 2010 06:35
Сообщения: 823
Откуда: Ліспроект Володимир Вовчанський
13vp писал(а):
Як змінити ";" на "пробіл" за допомогою скрипта ???
Як варіант, пропоную: функціональний скрипт з архіва в папку Digitals\Library. Виклик функціонального скрипта зі скрипта:

$ResText=%Library.ReplaceChar1WithChar2 Text|CharWith|CharReplace

Функціональний скрипт %Library.ReplaceChar1WithChar2 Text|CharWith|CharReplace приймає один параметр Text-рядок тексту, в якому треба замінити знак CharWith на знак CharReplace. Знак CharWith і CharReplace - не літери. Якщо CharReplace пробіл - передуючі пробіли ліквідовуються, кінцеві - ні. Функціональний скрипт не можна застосовувати для заміни літеральних символів.

Якщо CharReplace - пробіл:
$Space=@Calc Char(32)
$Space=@DequoteText $Space
$ResText=%Library.ReplaceChar1WithChar2 Text|CharWith|$Space


Вложения:
ReplaceChar1WithChar2.rar [626 байт]
Скачиваний: 244
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 1236 ]  На страницу Пред.  1 ... 37, 38, 39, 40, 41, 42, 43 ... 83  След.

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


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

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


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

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