Головна » 2016 » Січень » 1 » Функції скриптів - Конвертація/перетворення
21:03
Функції скриптів - Конвертація/перетворення

Всі скриптові функції Digitals для зручності можна поділити на категорії, в залежності від того, які операції та над якими об'єктами виконує та чи інша функція.


Конвертація букв та цифр

@ArabicToRoman Number - конвертує арабські цифри в римські

@RomanToArabic Number - конвертує римські цифри в арабські

@IsUpCase Text - повертає 1, якщо перша буква в даному тексті велика

@IsUpperCase Text - повертає 1, якщо всі букви в даному тексті великі

@LowerCase Text - робить всі букви тексту малими

@UpperCase Text - робить всі букви тексту великими

@Map.ConvertUTFParameters - перетворює значення параметрів із кодування UTF-8

@StringToUTF8 Text - конвертує текстовий рядок ANSI в кодування UTF-8

@UTF8ToString Text - конвертує текстовий рядок з кодування UTF-8 в ANSI

@RoundTo Number Precision - округляє задане число до заданої точності (вказаного числа знаків після коми)

@StringToEscape Text - конвертує текстову стоку в escape-послідовність

@DequoteText - видаляє лапки на початку та в кінці текстової строки

@ReplaceChar OldCharNewCharString - робить заміну символу OldChar на NewChar у символьному рядку чи перемінній String. Всі три параметри подаються вкупі, без пробілів.

Об'єднання та роз'єднання

@Concat Str - об'єднує частини строки, які розділені комами в одну строку

@Concat 1,2,3,4,5,6,7,8,9,0

@StringPart Number String - витягує частину рядка, наприклад, String Part 2 Іван Шевченко -> Шевченко, а StringPart 1, Ділянка паювання, 7 -> Ділянка

;витягуємо з рядка тільки назву нас.пункту, вулицю та будинок
$Text=804,82457,Львівська,Дрогобицький,с.Добрівляни,вул.Шкільна,130,-,25
$P1=@StringPart 5,$Text
$P2=@StringPart 6,$Text
$P3=@StringPart 7,$Text
$Res=$P1,$P2,$P3
@Dialog.Message $Res

;об'єднуємо значення кадастрового номера в рядок без двокрапок
$KN=4621283300:01:001:0001
$KN1=@StringPart 1:$KN
$KN2=@StringPart 2:$KN
$KN3=@StringPart 3:$KN
$KN4=@StringPart 4:$KN
$KN="$KN1$KN2$KN3$KN4"
$KN=@DequoteText $KN
@Dialog.Message $KN

@StringPartCount Char String - повертає число частин рядка, розділених символом

;рахуємо, скільки частин між комами в даному рядку
$Text=804,82457,Львівська,Дрогобицький,с.Добрівляни,вул.Шкільна,130,-,25
$PartCount=@StringPartCount , $Text
@Dialog.Message 
$PartCount

Геометрія об'єктів

@Map.ConvertComplexToLoop ObjIndex - перетворює складний полігон в полігон з петлями

@Map.ConvertLoopToComplex ObjIndex - перетворює полігон з петлями в складний полігон

@Map.RescaleObjectToArea Index NewAreaмасштабує об'єкт з порядковим номером Index для приведення його площі до нового значенням (NewArea). Функція добавлена 28.11.2014.

$I=@Map.NextSelected
@If $I<=0 @Break Виділіть об'єкт для масштабування
$A=@Map.Object[$I].Parameter[0]
$A=@Dialog.Ask Введіть нову площу Default=$A
@If $A= @Break
@Map.Undo.StartOperationGroup
@Map.Undo.SaveObject $I
@Map.RescaleObjectToArea $I $A
@Window.Refresh

Шари та параметри

@Map.ChangeSelectedLayer LayerIndex - змінює шар для усіх виділених об'єктів

@Map.In4ToXML - перетворює шари та параметри із формату In4 в формат XML

Приклади

Скрипт, який конвертує всі обмінники XML у вказаній папці з СК-63 в МСК


Примітка: жирним шрифтом (напр.@ActivateMap) виділена назва функції, похилим шрифтом (напр.Number) перемінна функції, у квадратних скобках (напр.[MapNumber]) необов'язкова перемінна, яку можна не вказувати.

 

Переглядів: 4229 | Додав: Микола | Рейтинг: 0.0/0
Всього коментарів: 3
avatar
1 magvlad55 • 12:31, 23.06.2021 [Матеріал]
Добрый день, функция конвертировать in4 в xml  и (@Map.In4ToXML) это одно и тоже или разные вещи, ...? ещё хотел спросить возможно вы сталкивались с проблемой я прописал в скрипте "Файл | Конвертировать In4 в XML" конвертация занимаем какое-то время, можно как-то через скрипт дать понять что если он сделал конвертацию в xml то продолжить выполнение скрипта. (  в данный момент он будто перескакивает сразу дальше, не успев сообразить и из-за этого рушиться всё остальное.. )
avatar
0
2 Микола • 14:02, 23.06.2021 [Матеріал]
Це різні речі. Функція @Map.In4ToXML просто переводить шари з ін4 в шари для структури XML без заповнення інформації.

Тобто, вам потрібна пауза в роботі скриптів, поки не відбудеться конвертація?
Питання цікаве.
Якось отримати чітку відповідь, що конвертація завершилася не бачу можливості. Хіба що перевіряти, який формат вихідного файлу кожної миті. І якщо формат уже не ін4, а xml - то продовжувати роботу. Тільки це напевне буде дуже навантажувати систему. І конвертація буде відбуватися значно довше. Треба пробувати.

А простий діалог, щоб в ручному режимі потім вибирати "Продовжити" не підходить? - функція @Dialog.WaitBox Text
Можна ще скористатися функцією @Dialog.InfoBox DelayMS Text, яка на заданий час припинить роботу скрипту, вивівши в той час певне модальне повідомлення. Але чи не припинить це саму конвертацію - мабуть, також припинить.

Масова конвертація не підходить? Конвертуйте спершу всі обмінники в xml, а вже потім робіть з ними те, що хочете робити зразу одночасно.
avatar
3 magvlad55 • 09:49, 24.06.2021 [Матеріал]
Дякую за допомогу, скористався функцією @Dialog.WaitBox Text
avatar