Скриптовi функцiї

Доброго дня. Некоректно працює функцiя @If … and … then з мiнусовими значеннями

[code]$P1=-5
$P2=-5
@if ($P1=-5) and ($P2=-5) then @goto %Ok
@Dialog.Message False
@Goto %End
%Ok
@Dialog.Message Ok
%End

[/code]FALSE

[code]$P1=5
$P2=5
@if ($P1=5) and ($P2=5) then @goto %Ok
@Dialog.Message False
@Goto %End
%Ok
@Dialog.Message Ok
%End

[/code]TRUE

$P1=-5
$P2=-5
@if ("$P1"="-5") and ("$P2"="-5") then @goto %Ok
@Dialog.Message False
@Goto %End
%Ok
@Dialog.Message Ok
%End

А так? Потрiбна робота з числами, а не текстом.
Хоча бачу, що i з плюсовими так само. Дякую.

$P1=-5.00
$P2=-5.00
@if (“$P1”=“-5”) and (“$P2”=“-5”) then @goto %Ok
@Dialog.Message False
@Goto %End
%Ok
@Dialog.Message Ok
%End

У Вас на сайтi в роздiлi Системнi функцiї значення змiнних i значень не заключенi в лапки. Як правильно?

P.S. працює таким чином:
$P1=-5.00
$P2=-5.00
$P1=@RoundTo $P1 4
$P2=@RoundTo $P2 4
@if ($P1=“-5.0000”) and ($P2=“-5.0000”) then @goto %Ok
@Dialog.Message False
@Goto %End
%Ok
@Dialog.Message Ok
%End

Доброго дня, не працює:

  1. Ф-цiя @Calc Insert(“s”,“t”,“x”) з вставлянням пробiлу (як напряму так i @Calc char(32))
  2. Ф-цiя @Text[N].IndexOf FindStr не враховує регiстр при пошуку тексту (якщо так задумано, тодi прохання додати параметр для “точного” пошуку).
    Дякую.

я дотримуюся принципу - “максимального спрощення”, тобто, якщо працює без лапок, то пишу без лапок, якщо не працює, як у прикладі вище, тоді вказую лапки. Тут нема строгих правил. Є різні варіанти.

@Calc Insert з пробілом дійсно не працює. Перевірив і в себе.

Формування стрiчки:
$A=10.01
$B=Приклад
$Res=$A $B

Результат 10.01 (коли $B=Example, тодi Результат ‘10.01 Example’).

P.S. Варiант $A=“10.01: $B=Приклад” тодi отримуємо потрiбний результат.

Після вчорашнього оновлення перестала працювати скриптова функція @Text[N].FolderList, якщо не задавати конкретне розширення файлу, а формувати список зразу по усіх файлах, поставивши просто *

Наприклад, ось так:

@Text[5].FolderList * D:\Digitals\TD\Doc
$F=@Text[5].Text
@Dialog.Message $F

Раніше функція повертала список усіх файлів у папці, а тепер не бачить жодного файлу.

Виправте, будь-ласка, бо дана функція використовується у скриптах:
Скрипт-модуль “Документація” та Панель інструментів для теодоліта.
Відтак два дані скрипти після оновлення програми просто перестають працювати. Пише, що не знайдено шаблонів.

Повернулись до старого варіанту, спробуйте у новій версії.

Прошу розробників: дайте, будь-ласка, роз’яснення як працює скриптова функція @Map.ParentObject Number [ParentLayer]. Адже вона повинна повертати номер батьківського об’єкта (найменшого полігону - того, що містить об’єкт з номером Number).

Насправді незрозуміло як ця функція працює. Застосована без параметра ParentLayer, вона повертає номер батьківського об’єкта лише тоді, коли об’єкт Number було створено в тому ж шарі, що і батьківський. Інакше, повертається номер не найменшого полігона, що містить об’єкт Number.

Демонстрація проблеми у відео [attachment=0]Map_ParentObject.exe[/attachment]

Доброго дня. При виконанні скрипта з немодальним вікном @Dialog.WaitBox при виклику іншого скрипта зникають змінні (які співпадають, міняються на поточні, інші - витираються). Чи є варіант вирішення, дякую.
Приклад додаю.

Кнопка-1

$X=100
$Y=200
@Dialog.WaitBox X=$X|Y=$Y|Запустіть інший скрипт
@Dialog.Message Результат після виконання|X=$X|Y=$Y

Кнопка-2

$X=5000
@While $X>2000 %Loop
$X=$X-100
;... якась функція
%Loop
@Dialog.Message Скрипт завершено з результатом $X

P.S. Як вихід - використав @Map.TempString для збереження змінних до запуску @Dialog.WaitBox а потім відновив значення цих змінних.