19:37 Функції скриптів - Робота з текстом | |
Всі скриптові функції Digitals для зручності можна поділити на категорії, в залежності від того, які операції та над якими об'єктами виконує та чи інша функція. Текстові контейнери Текстова інформація у скриптах найчастіше обробляється у спеціальних текстових блоках (контейнерах), які виглядають як @Text[N]. Текстові контейнери - це вид скриптових функцій для роботи з текстом, особливістю яких є те, що вони обробляють текст структуровано у вигляді рядків та колонок, як у таблицях Ексель. В ці контейнери можна заносити, наприклад, список кадастрових номерів, список землевласників, список файлів, список виділених об'єктів карти, а також звичайний текст. Заносити значення в текстові контейнери можна за допомогою змінних (@Text.Text Value чи @Text.Add Value), читаючи з текстових файлів (@Text.Load Filename), і навіть через буфер обміну (@Text.Paste). В межах одного скрипту можна використовувати до 63-ох текстових контейнерів, які адресуються як Text[1],Text[2] … Text[63]. Якщо ж в скрипті використовується тільки один текстовий контейнер, то його можна адресувати, як @Text.Text, без вказування індексу. Головні складові елементи текстового контейнера - це умовні рядки (Text.Line). Іноді ці рядки ще називають строками. Ті чи інші рядки, як окремі елементи текстових контейнерів, можна легко додавати чи видаляти, посилатися на них, шукати їх по змісту тощо. @Text[N].Text [Value] - записує та зчитує текст текстового контейнера
@Text[N].Save Filename – зберігає текст з контейнера в текстовий файл
@Text[N].Load Filename – завантажує текст у контейнер із текстового файлу
Text[N].Line[N] [Value] - зчитує вказаний рядок тексту з контейнера, або замінює його значення на інше, якщо опісля вказане нове значення, при наявності такого номера рядка в контейнері
@Text[N].Count – зчитує кількість рядків у контейнері @Text[N].Clear – очищує вміст контейнера, кількість рядків стає дорівнювати @Text[N].FolderList Mask FolderName - вносить у контейнер список повних назв усіх файлів із вказаної папки, де Mask - розширення файлів (*-усі), FolderName - назва папки. @Text[N].FolderListTree Mask FolderName - вносить у контейнер список повних назв усіх файлів із вказаної папки, а також з усіх папок, що вкладені в неї.
@Text[N].Copy - копіює текст з контейнера в буфер обміну @Text[N].Paste - вставляє текст з буфера обміну в контейнер @Text[N].IndexOf FindStr - шукає в контейнері N заданий текст і виводить номер рядка, в якому він знаходиться або 0 при його відсутності. @Text[N].Delete N1-N2 - видаляє з контейнера рядки із номерами від N1 до N2 @Text[N].NumericSort [+/-] - сортує рядки у контейнері за порядком (по алфавіту) @Text[N].Columns ColumnIndex1 ColumnIndex2 ... - залишає в текстовому контейнері тільки задані колонки, видаляючи всі решту @Text[N].KeyValue FindStr - шукає значення FindStr в першій колонці таблиці і повертає значення з другої і всіх решти колонок @Text[N].Value Key - повертає значення за ключем Key із списку, який виглядає як Ключ=Значение @Text[N].Prefix Value - додає текст (Value) на початок кожного з рядків @Text[N].Suffix Value - додає текст (Value) в кінець кожного з рядків @Text[N].Trim - видаляє пробіли на початку і в кінці кожного з рядків @Text[N].RemoveChar Char - видаляє символ Char із усіх рядків @Text[N].Reverse - змінює порядок рядків на протилежний @Text[N].Leading Char - доповнює всі рядки контейнера символом Char до заданої довжини, наприклад, роблячи в числах однакову кількість цифр після коми (якщо Char вказано як 0) @Text[N].Clip Char - видаляє в кожному рядку всі символи зліва (починаючи з першого) до символу Char включно (якщо є декілька таких в рядку - до останнього) @Text[N].LengthFilter Condition - видаляє рядки за їх довжиною, наприклад Text[N].Filter <1 видалить всі пусті рядки; доступні значення >,<,=,<> @Text[N].Merge Text[Index] - додає в текстовий контейнер N елементи (рядки) із текстового контейнера Index @Text[N].Append Text[Index] - додає вказані (Index) рядки в кінець текстового контейнера N @Text[N].Assign Text[Index] - присвоює значення текстового контейнера Index текстовому контейнеру N @Text[N].Intersect Text[Index] - видаляє з текстового контейнера N рядки, які відсутні в текстовому контейнері Index @Text[N].Subtract Text[Index] - видаляє з текствого контейнера N рядки, які є в текстовому контейнері Index @Text[N].Trunc Char - видаляє весь текст, починаючи з символу Char @Text[N].Unique [Length] - Обрізає рядки по заданій довжині, залишаючи тільки унікальні @Text[N].Histogram [Start Count] - рахує кількість входжень кожного фрагменту рядка в текстовому контейнері @Text[N].Split LineCount Filename - зберігає частини текстового контейнера в окремі файли по LineCount елементів (рядків) @Text[N].GroupFilter GroupLength - залишає тільки перше значення в кожній групі, що обмежена довжиною GroupLength @Text[N].ExtractCadnumbers Text - знаходить в текстовому контейнері список кадастрових номерів вигляду XXXXXXXXXX:XX:XXX:XXXX @Text[N].LeaveUnusual - залишає незвичайний текст @Text[N].RegExMatches Mask - повертає всі співпадіння тексту з маскою регулярного виразу @Text[N].RemoveEmptyValues - видаляє рядки з пустим значенням вигляду Key= @Text[N].RemoveOldFiles - видаляє із списку однакові файли з однаковою короткою назвою @Text[N].DelimitedText [String] - виклик функції без аргумента повертає вміст контейнера, аналогічно функції @Text[N].Text але розділовий символ умовних рядків за замовчуванням не знак переносу, а кома чи інший заданий наступною функцією (див.нижче). Виклик функції з аргументом змінює вміст контейнера, розбиваючи на рядки по новому розділовому символу та повертає кількість нову кількість рядків в контейнері.
@Text[N].Delimiter [Char] - задає або повертає символ-розділювач в текстовому контейнері @Text[N].Parse - парсить текст в форматі JSON @Text[N].ExplodeLine[N] var1,var2,... -
@Map.Object[N].TableText [NewText] - читає чи записує вміст таблиці (об'єкта N) на карті
Читайте також про використання текстових контейнерів (@Text) для редагування таблиць
Функції @Calc @Calc Length("s") – визначає довжину тексту.
1/0=ReplaceAll означає, що якщо вибрано 1 (@Calc Replace("s","t","v",1,1 ), то будуть замінені всі значення, якщо 0 - то тільки перше 1/0=IgnoreCase означає, що якщо вибрано 1 (@Calc Replace("s","t","v",1,1 ), то замінені будуть всі значення, не залежно від того, ВЕЛИКИМИ літерами вони чи малими, якщо 0 - то тільки у відповідності
@Calc Ascii(s) - протилежна функції @Calc char @Calc trunc - повертає цілочисельну частину числа з плаваючою комою. Тобто, обрізає дробову частину числа.
Інші доступні операції Calc: @DequoteText - видаляє лапки. Застосовується після функцій @Calc, оскільки їх результатом часто є значення в лапках
Об'єднання та роз'єднання @Concat Str - об'єднує частини тексту, які розділені комами в один текст
@StringPart NumberCharString - витягує частину тексту між певними символами
@StringPartCount Char String - повертає кількість частин тексту, розділених символом Char ;рахуємо, скільки частин між комами в даному тексті @StringCopy Index Count String - копіює Count символів тексту String, починаючи з символу Index @StringDelete Index Count String - видаля Count символів з тексту String, починаючи з символу Index @StringInsert SubStr|Index|String - вставляє текст SubStr в позицію Index тексту String @StringLength String - повертає число символів в тексті String @StringPos SubStr|String - повертає позицію частини тексту SubStr в тексті String @StringReplace Old|New|String - замінює частину тексту на новий в тексті String @StringField Number String - витягує частину тексту, що розділений символом табуляції @StringFieldCount String - повертає кількість частин тексту, що розділені символом табуляції Конвертація букв та цифр @Transliterate - виконує транслітерацію кириличного тексту латиницею @UpcaseSurname Surname Name SecondName - переводить першу букву прізвища, імені та по-батькові у великий регістр @ReplaceComma - замінює кому на крапку @ReplaceDot - заміню крапку на кому @ArabicToRoman Number - конвертує арабські цифри в римські @RomanToArabic Number - конвертує римські цифри в арабські @IsUpCase Text - повертає 1, якщо перша буква в даному тексті велика @IsUpperCase Text - повертає 1, якщо всі букви в даному тексті великі @LowerCase Text - робить всі букви тексту малими @UpperCase Text - робить всі букви тексту великими @StringToUTF8 Text - конвертує текстовий рядок ANSI в кодування UTF-8 @UTF8ToString Text - конвертує текстовий рядок з кодування UTF-8 в ANSI @UTF8ToURL Text - конвертує текст UTF-8 у URL Encoding виду %20%D0%97 @RoundTo Number Precision - округляє задане число до заданої точності (вказаного числа знаків після коми) @ReplaceChar OldCharNewCharString - робить заміну символу OldChar на NewChar у символьному рядку чи перемінній String. Всі три параметри подаються вкупі, без пробілів. @Map.ReplaceTableVariables - сканує текст таблиць і замінює змінні їх значеннями @Text[N].DecimalToAngle - перетвоює широту/довготу із десяткового вигляду у кутовий @AngleToDecimal Value [Format] - переводить кутове значення (00°00'00") в десяткове (0.000) @DecimalToAngle Value [Format] - переводить десяткове значення (0.000) в кутове (00°00'00") @Not 0/1 > 1/0 - замінює 0 на 1, а 1 на 0 @AdjustCadastralNumber CadNum - додає двокрапки в кадастровий номер @FromXMLDate yyyy-mm-dd - конвертує дату формату yyyy-mm-dd у дату формату dd.mm.yyyy @ToXMLDate dd.mm.yyyy- конвертує дату формату dd.mm.yyyy у дату формату yyyy-mm-dd @MoneyInWriting MoneyValue - сума прописом Інші маніпуляції @Float Formula - повертає числовий результат виразу @CalculateFormula Formula - виконує математичні обрахунки @Money Formula - виконує математичні обрахунку за формулою з округленням результату до двох знаків @RoundMoney Formula - виконує математичні обрахунки за формулою з округленням кожного значення до двох знаків після коми @IsFloat Text - повертає 1, якщо текст містить тільки цифри і знаки +-,. @IsInteger Text - повертає 1, якщо текст містить тільки цифри і знаки +- @Assign - присвоює змінній значення текстового рядка без спроби вирахувати вирази @StringCalc Text function - виконує текстову функцію, наприклад, Copy Особливі функції @Random [Range] - повертає випадкове число від 0 до Range. Якщо Range не задано - то випадково повертає 0 або 1 @ToDate DateString - повертає числове значення дати по її символьному значенню, або поточну дату @NextPeriodicDate PrevDate NumberOfMonths - вираховує наступну дату періодничного платежу @Map.CreateExplication - створює експлікацію угідь @Map.PrepareForestTable ObjNumber - готує текст таблиці промірів лісного виділу @Map.FromPLG - зберігає інформацію про пікети в польський текстовий формат (PLG, що схожий на DAT-файл) @NGOIndex NGOYear [NowYear] - розраховує коефцієнт індексації нормативної грошової оцінки з року оцінки по поточний @Map.ArrangeFixedValues - ? Приклади
Приклад 1 - заміна римської цифри на арабську @Map.DeselectAll Приклад 2 - Витягуємо код і назву угіддя перед запуском скрипту потрібно виділити XML Угіддя
Приклад 3 - Скрипт, який миттєво знаходить потрібний файл XML в базі з десятки тисяч обмінників Спершу складаємо список всіх обмінників з потрібної папки, записуючи в текстовий файл D:\Baza.txt
Приклад 4 - Скрипт, який додає на карту всі файли DMF із вказаної папки. У рядку @SendChars 123<CR> замість 123 потрібно вказати пароль карт, якщо карти мають паролі.
Примітка: жирним шрифтом (напр.@ActivateMap) виділена назва функції, похилим шрифтом (напр.Number) перемінна функції, у квадратних скобках (напр.[MapNumber]) необов'язкова перемінна, яку можна не вказувати. | |
|
Всього коментарів: 28 | |
| |