Аналитика

Цифровая фотограмметрия, картография и землеустройство
Текущее время: 16 май 2025 09:26

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




Начать новую тему Ответить на тему  [ Сообщений: 1240 ]  На страницу Пред.  1 ... 79, 80, 81, 82, 83
Автор Сообщение
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 31 янв 2024 16:44 
Гуру
Гуру

Зарегистрирован:
09 дек 2015 12:30
Сообщения: 101
Откуда: Закарпатська область
Доброго дня.
Підкажіть, як перевести значення отримане за допомогою функції @FileDate (дата файлу), у формат дати dd.mm.yyyy


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

Зарегистрирован:
22 сен 2007 16:09
Сообщения: 382
Откуда: м.Львiв
petrogeo писал(а):
Доброго дня.
Підкажіть, як перевести значення отримане за допомогою функції @FileDate (дата файлу), у формат дати dd.mm.yyyy

Спробуйте, накинув на скору руку з сайтів 1 і 2, можливо щось підправити потрібно
Код:
$FDate=45316.79
$Trunc=@Calc Trunc("$FDate")
$Trunc=@DequoteText $Trunc
$d=$Trunc
$y24=$d/365.2422
$years=@Calc Trunc("$y24")+1900
$m24=Frac("$y24")*12
$months=@Calc Trunc("$m24")+1
$days=@Calc Trunc(Frac("$m24")*30)
; hours minutes seconds
$Frac=@Calc Frac("$FDate")
$Frac=@DequoteText $Frac
$t=$Frac
$t24=$t*24
$hours=@Calc Trunc("$t24")
$t24=@Calc Frac("$t24")
$minutes=@Calc Trunc("$t24"*60)
$t24=$t24-$minutes/60
$seconds=@Calc Trunc("$t24"*3600)
@Dialog.Memo Header|$days-$months-$years ($hours:$minutes:$seconds)

P.S. З датою, бачу, проблеми. Потрібно аналізувати місяць (не кожен має 30 днів)

_________________
Більшість хороших програмістів виконують свою роботу не тому, що очікують оплати або визнання, а тому, що отримують задоволення від програмування.


Последний раз редактировалось Руслан Пархуць 02 фев 2024 10:33, всего редактировалось 1 раз.

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

Зарегистрирован:
09 дек 2015 12:30
Сообщения: 101
Откуда: Закарпатська область
Руслан Пархуць писал(а):
petrogeo писал(а):
Доброго дня.
Підкажіть, як перевести значення отримане за допомогою функції @FileDate (дата файлу), у формат дати dd.mm.yyyy

Спробуйте, накинув на скору руку з сайтів 1 і 2, можливо щось підправити потрібно
Код:
$FDate=45316.79
$Trunc=@Calc Trunc("$FDate")
$Trunc=@DequoteText $Trunc
$d=$Trunc
$y24=$d/365.2422
$years=@Calc Trunc("$y24")+1900
$m24=Frac("$y24")*12
$months=@Calc Trunc("$m24")+1
$days=@Calc Trunc(Frac("$m24")*30)
; hours minutes seconds
$Frac=@Calc Frac("$FDate")
$Frac=@DequoteText $Frac
$t=$Frac
$t24=$t*24
$hours=@Calc Trunc("$t24")
$t24=@Calc Frac("$t24")
$minutes=@Calc Trunc("$t24"*60)
$t24=$t24-$minutes/60
$seconds=@Calc Trunc("$t24"*3600)
@Dialog.Memo Header|$days-$months-$years ($hours:$minutes:$seconds)

P.S. З датою, бачу, проблеми. Потрібно аналізувати місяць (не кожен має 30 днів)

Дякую за допомогу. :wink:
Теж замітив що останні дні місяця рахує невірно. Буду пробувати прив'язувати кількість днів до місяця


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 01 фев 2024 19:07 
Гуру
Гуру
Аватара пользователя

Зарегистрирован:
22 сен 2007 16:09
Сообщения: 382
Откуда: м.Львiв
Руслан Пархуць писал(а):
P.S. З датою, бачу, проблеми. Потрібно аналізувати місяць (не кожен має 30 днів)

Поправив скрипт, рішення знайшов тут
Код:
$FDate=45316.79
; year month day
$Trunc=@Calc Trunc("$FDate")
$Trunc=@DequoteText $Trunc
$d=$Trunc
$l=$d+68569+2415019
$n=@Calc Trunc((4*"$l")/146097)
$l=@Calc "$l"-Trunc((146097*"$n"+3)/4)
$i=@Calc Trunc((4000*("$l"+1))/1461001)
$l=@Calc "$l"-Trunc((1461*"$i")/4)+31
$j=@Calc Trunc((80*"$l")/2447)
$day=@Calc "$l"-Trunc((2447*"$j")/80)
$l=@Calc Trunc("$j"/11)
$month=@Calc "$j"+2-(12*"$l")
$year=100*("$n"-49)+"$i"+"$l"
; hours minutes seconds
$Frac=@Calc Frac("$FDate")
$Frac=@DequoteText $Frac
$t=$Frac
$t24=$t*24
$hours=@Calc Trunc("$t24")
$t24=@Calc Frac("$t24")
$minutes=@Calc Trunc("$t24"*60)
$t24=$t24-$minutes/60
$seconds=@Calc Trunc("$t24"*3600)
; formating
$Len=@StringLength $month
@If $Len=1 Then $month=0$month
$Len=@StringLength $day
@If $Len=1 Then $day=0$day
$Len=@StringLength $hours
@If $Len=1 Then $hours=0$hours
$Len=@StringLength $minutes
@If $Len=1 Then $minutes=0$minutes
$Len=@StringLength $seconds
@If $Len=1 Then $seconds=0$seconds
;
@Dialog.Memo Header|$day-$month-$year ($hours:$minutes:$seconds)

_________________
Більшість хороших програмістів виконують свою роботу не тому, що очікують оплати або визнання, а тому, що отримують задоволення від програмування.


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

Зарегистрирован:
09 дек 2015 12:30
Сообщения: 101
Откуда: Закарпатська область
Руслан Пархуць писал(а):
Руслан Пархуць писал(а):
P.S. З датою, бачу, проблеми. Потрібно аналізувати місяць (не кожен має 30 днів)

Поправив скрипт, рішення знайшов тут

Дякую Вам, саме те що потрібно!!! :D


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

Зарегистрирован:
30 июн 2017 20:52
Сообщения: 64
Откуда: Херсон
Доброго дня. Підкажіть як реалізувати наступну ідею:
Необхідне зробити немодальне окреме вікно у якому буде відображатися зміна площі в реальному часі.
Наприклад я тягну за точку земельної ділянки, а у цьому вікні відображається площа ділянки яка змінюється..


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

Зарегистрирован:
27 июл 2011 08:37
Сообщения: 176
Откуда: м.Рівне
Дедь добрий. Завдання якесь таке: Є якась велика карта, образно сільрада, розбита на квадратики у якомусь шарі. Виділяємо який один квадратик, запускаємо команду Реєстри-центроїди ділянок, далі слідуючий квадратик, знову реєстри і так далі для цілої карти.

Який скрипт зліпив
[i]$SL=@Map.Selected.List
@if $SL<1 then @Break Помітьте об'єкти
@Text[1].Text $SL
$SC=@Text[1].Count
@Map.DeselectAll
$I=0
%START
$I=$I+1
$SO=@Text[1].Line[$I]
$LID=@Map.Object[$SO].LayerID
@if $LID<>13122541 then @Goto %Next
@Map.SelectObject $SO
Вид | Показать помеченные
Реєстри | Центроиды участков
@Map.DeselectAll
@Dialog.Message 123
%Next
@if $I<$SC then @Goto %START[/i]


Цей варіант працює, але якщо забираємо рядок діалог @Dialog.Message, то ділянки загружаються тільки для першого квадратика. Чи можливо якось виправить, бо клацання кнопки ОК трохи заважає робочому процесу.


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 04 май 2025 13:22 
Гуру
Гуру

Зарегистрирован:
27 июл 2011 08:37
Сообщения: 176
Откуда: м.Рівне
Використання @Dialog.InfoBox теж нічого не дає. Покрокове виконання скрипта дає той результат, що треба, повне виконання так само ліпить тільки для першого квадрата. Без використання діалогового вікна той самий результат, тільки покроково функціонує.


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 04 май 2025 20:56 
Гуру
Гуру

Зарегистрирован:
09 дек 2015 12:30
Сообщения: 101
Откуда: Закарпатська область
shyrko писал(а):
Чи можливо якось виправить, бо клацання кнопки ОК трохи заважає робочому процесу.


Спробуйте так додав затримку перед наступним кроком 3 сек. функцією @Wait та відключив надоїдливе вікно

$SL=@Map.Selected.List
@if $SL<1 then @Break Помітьте об'єкти
@Text[1].Text $SL
$SC=@Text[1].Count
@Map.DeselectAll
$I=0
%START
$I=$I+1
$SO=@Text[1].Line[$I]
$LID=@Map.Object[$SO].LayerID
@if $LID<>13122541 then @Goto %Next
@Map.SelectObject $SO
Вид | Показать помеченные
@Wait 3000
Реєстри | Центроиды участков
@Map.DeselectAll
;@Dialog.Message 123
%Next
@if $I<$SC then @Goto %START


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

Зарегистрирован:
27 июл 2011 08:37
Сообщения: 176
Откуда: м.Рівне
Дякую. Це сильно спрощує ситуацію.


Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 1240 ]  На страницу Пред.  1 ... 79, 80, 81, 82, 83

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


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

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


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

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