1c намира второто срещане в низа. Нови функции за низове

1c намира второто срещане в низа.  Нови функции за низове
1c намира второто срещане в низа. Нови функции за низове

Специални символи в 1C 8.3 - набор специални символиза низови типове данни.

Нека разгледаме всеки от тях по-подробно.

Специални знаци в 1C: VK, VTab, АЕЦ, PS, PF, Tab

Специалните знаци се извикват с помощта на глобалното свойство „Знаци“, например:

Text = "Текст преди табулатор" + Symbols.Tab + "текст след табулатор";

Вземете 267 1C видео урока безплатно:

  • VC (CR) - връщане на каретка. В старите времена на матрични или ролеви принтери този код на символа се използваше като команда, която връщаше печатащата глава в началото на реда.
  • NSP (NBSp) - неразкъсващ интервал (често срещан в числови низове, например: 1000).
  • PS (LF) - Подаване на ред (LF - подаване на ред) - превъртете барабана един ред надолу, печатащата глава е на същото място.
  • PF (FF) - превод на формат. Листът се изважда от принтера, отпечатването започва от нов лист.
  • Tab (Tab) - знак за раздел. Хоризонтални раздели - начин за позициониране за печат на най-близката колона, кратна на някакво число (например 8, 16, 24 ...).
  • VTab (VTab) - вертикална табулация. Подобно е на хоризонталата, само че сме разположени на линията. Причинява известно превъртане на барабана на принтера (печатащата глава остава в същата позиция (колона)!)

PS + VK е комбинация, която изпълнява две операции: превърта барабана надолу по ред и връща каретката за печат в началото на реда, което съответства на това, което потребителят очаква да получи, като натисне Enter.

Ако започвате да изучавате 1C програмиране, препоръчваме нашия безплатен курс(не забравяй

String е един от примитивните типове данни в системите 1C:Enterprise 8. Променливи с тип линиясъдържат текст.

Тип променливи стойности линияса оградени в двойни кавички. Множество променливи от този типможе да се сгъва.

Per1 = "Дума 1" ;
Per2 = "Дума 2";
Per3 = Per1 + " " + Per2 ;

В крайна сметка Per3ще има значение" Слово 1 Слово 2″.

Освен това системите 1C:Enterprise 8 предоставят функции за работа с низове. Помислете за основните:

Въведете низ (<Строка>, <Подсказка>, <Длина>, <Многострочность>) — функцията е проектирана да показва диалогов прозорец, в който потребителят може да посочи стойността на променлива от тип Линия. Параметър <Строка> е задължителен и съдържа името на променливата, в която ще бъде записан въведеният низ. Параметър <Подсказка> незадължително е заглавието на диалоговия прозорец. Параметър <Длина> незадължително, показва максималната дължина на входния низ. По подразбиране е нула, което означава неограничена дължина. Параметър <Многострочность> по желание. Указва режима на въвеждане на многоредов текст: True — въвеждане на многоредов текст с разделители на редове; False - Въведете прост низ.

Може да се въведе низ и, знаейки кода на знака в Unicode:

символ (<КодСимвола>) — Кодът се въвежда като число.

Буква= Символ(1103 ) ; // аз

Има и обратна функция, която ви позволява да разберете кода на символ.

Символен код(<Строка>, <НомерСимвола>) — Връща Unicode номера на посочения знак като число.

Функции за преобразуване на главни и малки букви на текста:

VReg(<Строка>) - Преобразува всички знаци в низ в главни букви.

HReg(<Строка>) - Преобразува всички знаци в низ в малки букви.

TReg(<Строка>) - преобразува всички символи на низа в главни букви. Това означава, че първите букви във всички думи се преобразуват в главни, а останалите букви се преобразуват в малки.

Функции за търсене и заместване на символи в низ:

Намирам(<Строка>, <ПодстрокаПоиска>) - намира номера на символа на срещането на търсения подниз. Например:

Find ("String" , "eye" ) ; // 4

StrFind(<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) — намира номера на символа на срещането на търсения подниз, номерът на срещане е посочен в съответния параметър. В този случай търсенето започва от знака, чийто номер е посочен в параметъра Начална позиция.Търсенето е възможно от началото или от края на низа. Например:

Number4 Entry= StrFind( "Отбрана", "o" , Посока на търсене. Първо, 1 , 4 ); // 7

StrReplace(<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) Намира всички срещания на търсения подниз в изходния низ и го заменя със заместващия подниз.

StrReplace("String" , "eye" , "" ) ; // Страница

Празен ред(<Строка>) - проверява низа за значими знаци. Ако няма значими знаци или изобщо няма знаци, тогава се връща стойността Вярно. В противен случай - Лъжа.

StrNumberOccurrences(<Строка>, <ПодстрокаПоиска>) – изчислява броя на срещанията на търсения подниз в изходния низ.

StrNumberOccurrences ( „Учи, учи и пак учи“, "проучване" , "" ) ; // 3

StrTemplate(<Строка>, <ЗначениеПодстановки1>…<ЗначениеПодстановкиN> — замества параметрите в низа по число. Низът трябва да съдържа маркери за заместване във формата: "%1..%N". Номерирането на маркерите започва от 1. Ако стойността на параметъра Недефиниран, празният низ се замества.

StrPattern ( "Опция 1 = %1, Опция 2 = %2", "1" , "2" ) ; // Параметър 1= 1, Параметър 2 = 2

Функции за преобразуване на низове:

Лъв(<Строка>, <ЧислоСимволов>) връща първите знаци от низа.

точно(<Строка>, <ЧислоСимволов>) - връща последните знаци от низа.

сряда(<Строка>, <НачальныйНомер>, <ЧислоСимволов>) - връща низ с дължина<ЧислоСимволов>, започвайки със символ<НачальныйНомер>.

съкращение(<Строка>) съкращава незначещите знаци отляво на първия значим знак в низа.

съкращение(<Строка>) - отрязва незначителните символи вдясно от последния значим знак в низа.

Abbrl(<Строка>) - прекъсва незначещите знаци отляво на първия значим знак в низа и отдясно на последния значим знак в низа.

StrGetString(<Строка>, <НомерСтроки>) – получава низа от многоредов низ по номер.

Други функции:

StrLength(<Строка>) - връща броя знаци в низ.

StrNumber of Lines(<Строка>) - връща броя на редовете в многоредов низ. Един ред се счита за нов, ако е отделен от предишния ред със знак за нов ред.

StrCompare(<Строка1>, <Строка2> ) - сравнява два низа без големи и малки букви. Функцията работи като обект Сравняване на стойности. Се завръща:

  • 1 - ако първият ред е по-голям от втория
  • -1 - ако вторият ред е по-голям от първия
  • 0 - ако низовете са равни

StrCompare("Първи ред" , "Втори ред" ) ; // 1

Типът String се среща във всички езици за програмиране. Той е примитивен и в 1C има много функции за работа с него. В тази статия ще разгледаме по-отблизо различни начиниработа с типове низове в 1C 8.3 и 8.2 с примери.

Линия

За да преобразувате променлива от всякакъв тип в низ, съществува функцията "String ()" със същото име. Входният параметър ще бъде самата променлива, чието низово представяне трябва да бъде получено.

String(False) // връща "Не"
String(12345) // връща "12 345"
String(CurrentDate()) //"21.07.2017 11:55:36"

Възможно е да се преобразуват в низ не само примитивни типове, но и други, например елементи от директории и документи.

Съкратено LP, съкратено L, съкратено P

Входните параметри на тези функции са променлива тип низ. Функциите премахват незначителни знаци (интервали, връщане на карета и т.н.): отляво и правилната страна, съответно само от лявата страна и само отдясно.

abbrl("Интервалите от двете страни ще бъдат премахнати") // "Интервалите от двете страни ще бъдат премахнати"
abbr("Интервалите от двете страни ще бъдат премахнати") // "Интервалите отляво ще бъдат премахнати"
abbr(" Интервалите от двете страни ще бъдат премахнати ") // "Интервалите отдясно ще бъдат премахнати"

Лъв, вдясно, в средата

Тези функции ви позволяват да отрежете част от низ. Функцията Lion() ще върне частта от низа от лявата му страна на указаната дължина. Функцията "Right()" е подобна, но изрязването се извършва отдясно. Функцията "Wed()" ви позволява да посочите номера на знака, от който ще бъде избран низът и неговата дължина.

Lion("Променлива на низ", 4) // връща "Stro"
Right("Променлива на низ", 7) // връща "променлива"
avg("Променлива на низ", 2, 5)// връща "troco"

StrLength

Функцията определя броя на символите, които се съдържат в низова променлива.

StrLength("Word") // резултатът от изпълнението ще бъде числото 5

намирам

Функцията дава възможност да се търси част от низ в низова променлива. Върнатата стойност ще бъде число, което показва позицията на началото на намерения низ. Ако не бъдат намерени съвпадения, се връща нула.

Имайте предвид, че търсенето е чувствително към главни и малки букви. Ако има повече от едно срещане на подниза за търсене в оригиналния низ, функцията ще върне началото на първото срещане.

Find("one, two, one, two, three", "two") // функцията ще върне числото 6

Празен ред

Използването на тази функция ви позволява да определите дали даден низ е празен. Незначещите знаци, като интервал, връщане на каретка и други, не се вземат предвид.

EmptyString("Василий Иванович Пюпкин") // функцията ще върне False
EmptyString(" ") // функцията ще върне True

VReg, NReg, TReg

Тези функции са много полезни при сравняване и конвертиране на низови променливи. „Vreg()“ ще върне оригиналния низ с главни букви, „HReg()“ с малки букви, а „TReg()“ ще го форматира така, че първият знак на всяка отделна дума да е с главна буква, а всички следващи знаци са с малки букви.

VReg("ГЕНЕРАЛЕН ДИРЕКТОР") // върната стойност - "ГЕНЕРАЛЕН ДИРЕКТОР"
HReg("ГЕНЕРАЛЕН ДИРЕКТОР") // върната стойност - "ГЛАВЕН ДИРЕКТОР"
TREG("ГЕНЕРАЛЕН ДИРЕКТОР") // върната стойност - "Генерален директор"

StrReplace

Тази функцияе аналог на замяната в текстови редактори. Позволява ви да замените един знак или набор от знаци с друг в низови променливи.

StrReplace("red, white, yellow", ",", ";") // връща "red; бяло; жълт"

StrNumberRows

Функцията ви позволява да определите броя на редовете, разделени с връщане на каретка в текстова променлива.

Цикълът в примера по-долу ще премине през три кръга, защото функцията StrNumberRows ще върне стойността 3:

За ind \u003d 1 от StrNumber of Lines ("Line1" + Symbols.PS + "String2" + Symbols.PS + "Line3") Цикъл
<тело цикла>
EndCycle;

StrGetString

Тази функция работи с многоредов текст по същия начин като предишната. Позволява ви да получите конкретен низ от текстова променлива.

StrGetString("String1" + Symbols.PS + "String2" + Symbols.PS + "String3", 2) // връща "Line2"

StrNumberOccurrences

Функцията отчита броя на срещанията на знак или подниз в търсения низ.

StrNumberInstallations("a;b;c;d; ", ";") // функцията ще върне числото 4

Символ и символен код

Тези функции ви позволяват да получите знак по неговия Unicode код, както и да определите този код по самия символ.

SymbolCode("A") // функцията ще върне числото 1 040
SymbolCode(1040) // функцията ще върне "A"

Чести задачи при работа с низове

Конкатенация на низове

За да свържете множество низове (конкатенация), просто използвайте оператора за добавяне.

"Ред 1" + "Ред 2" //резултатът от добавянето на два реда ще бъде "Ред 1 Ред 2"

Преобразуване на типа

За да преобразувате тип в низ, например препратка към елемент от речника, число и т.н., е достатъчно да използвате функцията "String ()". Функции като "ShortLP()" също ще конвертират променливи в низ, но незабавно с отрязване на незначещите знаци.

String(1000) // ще върне "1000"

Моля, обърнете внимание, че когато преобразувате число в низ, програмата автоматично добавя интервал, разделящ хилядата. За да избегнете това, можете да използвате следните структури:

StrReplace(String(1000),Characters.NPP,"") // връща "1000"

String(Format(1000,"CH=")) // ще върне "1000"

Кавички в низ

Доста често ще трябва да се справяте с необходимостта да поставите кавички в низова променлива. Може да бъде или текст на заявка, написан в конфигуратора, или просто променлива. За да разрешите този проблем, просто трябва да зададете два знака за кавички.

Header = String("Horns and Hooves LLC сме ние!") // връща "Roga and Hooves LLC сме ние!"

Многоредов, прекъсване на ред

За да създадете многоредов текстпросто добавете знаци за прекъсване на ред към него (Symbols.PS).

MultilineText = "Първи ред" + Знаци.PS + "Втори ред"

Как да премахнете интервали

За да премахнете интервалите отдясно или отляво, можете да използвате функцията "Stretch()" (както и "Scrpt()" и "ScreenP()"):

StringWithoutSpaces = ShortLP(" Много букви ") // функцията ще върне стойността "Много букви"

Ако след преобразуване на число в низ трябва да премахнете непрекъсваеми пространства, използвайте следната конструкция:

StringWithoutSpaces = StrReplace(String(99999),Characters.NPP,"") // връща "99999"

Освен това програмистите често използват следната конструкция, която ви позволява да премахнете или замените всички интервали от текстова променлива с друг знак:

StringWithoutSpaces = StrReplace(" hello", " " ,"") // връща "hello"

Сравняване на низове един с друг

Можете да сравнявате термини с обичайния знак за равенство. Сравнението е чувствително към главни и малки букви.

"hello" = "hello" // ще върне false
"Hello" = "Hello" // ще върне True
„Здравей“ = „Довиждане“ // ще върне False

Низовете в 1C 8.3 във вградения език 1c са стойности от примитивен тип Линия. Стойностите от този тип съдържат Unicode низ с произволна дължина. Променливите тип низ са набор от знаци, оградени в кавички.

Пример 1. Нека създадем низова променлива с текст.

StringVariable = "Здравей свят!";

Функции за работа с низове в 1s 8.3

Този раздел ще предостави основните функции, които ви позволяват да променяте редове за 1s или да анализирате информацията, съдържаща се в тях.

StrLength

StrLength(<Строка>) . Връща броя знаци, съдържащи се в низа, предаден в параметъра.

Пример 2. Нека преброим броя на символите в низа "Hello world!".

String = "Здравей свят!"; Брой знаци = StrLength(String); Доклад (Брой знаци);

Резултатът от изпълнението на този код ще покаже броя на символите в низа: 11.

Съкратено

съкращение(<Строка>) . Изрязва незначещите знаци отляво на първия значим знак в низ.
Незначителни герои:

  • пространство;
  • непрекъсваемо пространство;
  • табулиране;
  • връщане на карета;
  • редов превод;
  • превод на формуляра (страница).

Пример 3. Премахнете всички интервали от лявата страна на низа "peace!" и добавете низа "Hello" към него.

Низ = abbr("свят!"); String = "Hi"+String; Уведомяване (низ);

Резултатът от изпълнението на този код ще бъде показването на низа "Hello world!".

Съкращение

съкращение(<Строка>) . Изрязва незначещите знаци отдясно на първия значим знак в низ.

Пример 4. Формуляр от низовете "Hello" и "world!" фраза "Здравей свят!"

Низ = abbr("Hi")+" "+abbr("свят!"); Уведомяване (низ);

Съкратено LP

Abbrl(<Строка>) . Изрязва незначещите знаци отдясно на първия значим знак в низа, също така изрязва незначещите знаци отляво на първия значим знак в низа. Тази функция се използва по-често от предишните две, тъй като е по-гъвкава.

Пример 5. Премахване на незначещите знаци отляво и отдясно в името на контрагента.

Изпълнител = Directories.Contractors.FindBy Details("TIN", "0777121211"); ContractorObject = Contractor.GetObject(); ContractorObject.Description = Съкратено LP(ContractorObject.Description); ContractorObject.Write();

лъв

Лъв(<Строка>, <ЧислоСимволов>) . Получава първите знаци от низ, броят на знаците е посочен в параметъра Брой знаци.

Пример 6. Нека структурата служителсъдържат името, фамилията и бащиното име на служителя. Вземете низ с фамилия и инициали.

InitialName = Lion(Employee.Name, 1); Бащино име = Лео (Служител. Бащино име, 1); Пълно име = Employee.LastName + " " + FirstName Initial + "." + Патроним Инициал + ".";

права

точно(<Строка>, <ЧислоСимволов>) . Получава последните знаци от низ, броят на знаците е посочен в параметъра Брой знаци.Ако зададеният брой знаци надвишава дължината на низа, тогава се връща целият низ.

Пример 7. Нека датата бъде записана в края на низова променлива във формат “yyyymmdd”, вземете низ с дата и го преобразувайте във вид дата.

низ = " Текущата дата: 20170910"; StringDate = Права(String, 8); Дата = Дата(StringDate);

сряда

сряда(<Строка>, <НачальныйНомер>, <ЧислоСимволов>) . Получава подниз от низа, предаден в параметъра Линия, започвайки от знака, чийто номер е посочен в параметъра Начален номери дължината, предадена на параметъра Брой знаци.Номерирането на знаците в низ започва от 1. Ако параметърът Начален номере зададена стойност, по-малка или равна на нула, тогава параметърът приема стойност 1. Ако параметърът Брой знацине е указано, се избират знаци до края на низа.

Пример 8. Нека низовата променлива съдържа регионалния код, започващ от деветата позиция, трябва да го получите и да го запишете на отделен ред.

String = "Регион: 99 Москва"; Регион = ср. (ред, 9, 2);

PageFind

StrFind(<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) . Търси посочения подниз в низ, връща номера на позицията на първия знак от намерения подниз. Помислете за параметрите на тази функция:

  • Линия. Изходен низ;
  • SubstringSearch. Желаният подниз;
  • DirectionSearch. Указва посоката за търсене на подниз в низ. Може да приема стойности:
    • Посока на търсене. От самото начало;
    • Посока на търсене. От края;
  • Начална позиция. Указва позицията в низа, от която да започне търсенето;
  • Входящ номер. Указва броя на срещанията на търсения подниз в изходния низ.

Пример 9. В реда "Hello world!" определяне на позицията на последното появяване на знака "и".

PositionNumber = StrFind("Здравей свят!", "и", SearchDirection.From End); Известяване (номер на позиция);

Резултатът от изпълнението на този код ще бъде показването на номера на последното появяване на символа "и" на екрана: 9.

VReg

VReg(<Строка>) . Преобразува всички знаци на посочения низ в 1s 8 в главни букви.

Пример 10. Преобразувайте низа "hello world!" до главни букви.

StringVreg = Vreg("здравей свят!"); Доклад (StringVreg);

Резултатът от изпълнението на този код ще бъде показването на низа "HELLO WORLD!"

HReg

HReg(<Строка>) . Преобразува всички знаци на посочения низ в 1s 8 в малки букви.

Пример 11. Преобразувайте низа "HELLO WORLD!" до малки букви.

StringNreg = NReg("HELLO WORLD!"); Доклад (StringVreg);

Резултатът от изпълнението на този код ще бъде показването на низа "hello world!"

TReg

TReg(<Строка>) . Преобразува низ по следния начин: първият знак от всяка дума се преобразува в главни букви, останалите знаци от думата се преобразуват в малки букви.

Пример 12. Напишете с главни букви първите букви на думите в низа "hello world!".

StringTreg = TReg("здравей свят!"); Доклад(StringTreg);

Резултатът от изпълнението на този код ще бъде показването на низа "Hello World!"

Символ

символ (<КодСимвола>) . Получава знак по неговия Unicode код.

Пример 13. Добавете ляво и дясно към реда "Hello World!" символ ★

StringWithStars = Знак("9733")+"Здравей свят!"+Знак("9733"); Доклад(StringWithStars);

Резултатът от това изпълнение на кода ще бъде показването на низа "★Hello World!★"

SymbolCode

Символен код(<Строка>, <НомерСимвола>) . Получава кода на символа Unicode от низа, посочен в първия параметър, разположен на позицията, посочена във втория параметър.

Пример 14. Намерете кода на последния знак в низа "Hello World!".

String = "Здравей свят!"; Код на символ =Код на символ (низ, StrLength (низ)); Известяване (Код на символ);

Резултатът от изпълнението на този код ще бъде показването на кода на символа "!" — 33.

Празен ред

Празен ред(<Строка>) . Проверява дали низът се състои само от незначещи знаци, тоест дали е празен.

Пример 15. Проверете дали низът е празен и се състои от три интервала.

Empty = EmptyString(" "); Доклад (празен);

Резултатът от изпълнението на този код ще бъде показването на думата "Да" (низов израз на булева стойност Вярно).

StrReplace

StrReplace(<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) . Намира всички срещания на търсения подниз в изходния низ и го заменя със заместващия подниз.

Пример 16. В реда "Hello World!" заменете думата "Свят" с думата "Приятели".

String = StrReplace("Здравей свят!", "Свят", "Приятели"); Уведомяване (низ);

Резултатът от изпълнението на този код ще бъде показването на низа "Здравейте приятели!"

StrNumberRows

StrNumber of Lines(<Строка>) . Позволява ви да преброите броя на редовете в многоредов низ. За преминаване към нов ред в 1s 8 се използва символът PS(символ за подаване на ред).

Пример 17. Определете броя на редовете в текста:
"Първа линия
Втора линия
Трети ред"

Number = StrNumber of Lines("Първи ред"+Symbols.PS +"Втори ред"+Symbols.PS +"Трети ред"); Доклад (номер);

Резултатът от изпълнението на този код ще бъде показването на броя редове в текста: 3

StrGetString

StrGetString(<Строка>, <НомерСтроки>) . Получава низ в многоредов низ по неговия номер. Номерацията на редовете започва от 1.

Пример 18. Вземете последния ред в текста:
"Първа линия
Втора линия
Трети ред"

Text = "Първи ред"+Знаци.PS +"Втори ред"+Знаци.PS +"Трети ред"; LastLine = StrGetLine(Текст, StrNumber of Lines(Text)); Известяване (последен ред);

Резултатът от изпълнението на този код ще бъде показването на реда "Трети ред".

StrNumberOccurrences

StrNumberOccurrences(<Строка>, <ПодстрокаПоиска>) . Връща броя на срещанията на посочения подниз в низ. Функцията е чувствителна към главни и малки букви.

Пример 19. Определете колко пъти буквата „c“ влиза в реда „Редове в 1s 8.3 и 8.2“, независимо от главния й регистър.

String = "Редове в 1s 8.3 и 8.2"; Брой повторения = StrNumber of Occurrences(Vreg(String), "C"); отчет (брой събития);

Резултатът от изпълнението на този код ще покаже броя на срещанията на екрана: 2.

PageBeginsFrom

StrBeginsFrom(<Строка>, <СтрокаПоиска>) . Проверява дали низът, даден в първия параметър, започва с низа във втория параметър.

Пример 20. Определете дали TIN на избрания контрагент започва с числото 1. Нека променливата контрагент Контрагенти.

TIN = Изпълнител.TIN; StartsCUnits = StrStartsC(TIN, "1"); If StartsFROM1 Then //Вашият код EndIf;

Страницата завършва на

StrEndsOn(<Строка>, <СтрокаПоиска>) . Проверява дали низът, предаден в първия параметър, завършва с низа във втория параметър.

Пример 21. Определете дали TIN на избрания контрагент завършва с числото 2. Нека променливата контрагентвръзката към елемента на директорията се съхранява Контрагенти.

TIN = Изпълнител.TIN; Завършва с две = Str Завършва с (TIN, "2"); Ако завършва с две, тогава //Вашият код EndIf;

PageSplit

StrDivide(<Строка>, <Разделитель>, <ВключатьПустые>) . Разделя низ на части по посочените разделителни знаци и записва получените низове в масив. Първият параметър съхранява оригинален низ, във втория низ, съдържащ разделител, в третия се посочва дали е необходимо да се записва в масив празни редове(по подразбиране Вярно).

Пример 22. Да предположим, че имаме низ, съдържащ числа, разделени със символа ";", вземете масив от числа от низа.

Низ = "1; 2; 3"; Array = StrSplit(String, ";"); For Count = 0 Чрез Array.Quantity() - 1 опит за цикъл Array[Count] = Number(Ablp(Array[Count])); Изключение Array[W] = 0; EndTry EndCycle;

В резултат на изпълнението ще се получи масив с числа от 1 до 3.

StrConnect

StrConnect(<Строки>, <Разделитель>) . Преобразува масив от низове от първия параметър в низ, съдържащ всички елементи на масива, като използва разделителя, посочен във втория параметър.

Пример 23. Използвайки масива от числа от предишния пример, вземете оригиналния низ.

For Count = 0 Чрез Array.Quantity() - 1 цикъл Array[Count] = String(Array[Count]); EndCycle; String = StrConnect(Array, "; ");

Внедрено във версия 8.3.6.1977.

Разширихме набора от функции за работа с низове. Направихме това, за да ви предоставим по-усъвършенствани инструменти за анализиране на низови данни. Новите функции ще бъдат удобни и полезни при технологични задачи за анализ на текст. В задачи, свързани с парсване на текст, който съдържа данни във форматиран вид. Това може да бъде анализ на някои файлове, получени от оборудването, или например анализ на технологичен дневник.

Всички действия, които новите функции изпълняват, можехте да извършвате преди. С помощта на повече или по-малко сложни алгоритми, написани на вграден език. Следователно новите функции не ви дават принципно нови възможности. Те обаче ви позволяват да намалите количеството код, да направите кода по-прост и по-разбираем. В допълнение, те ви позволяват да ускорите изпълнението на действията. Тъй като функциите, внедрени в платформата, работят, разбира се, по-бързо от подобен алгоритъм, написан на вградения език.

Функция за форматиране StrTemplate()

Тази функция замества параметри в низ. Необходимостта от такова преобразуване често възниква, например, когато се показват предупредителни съобщения. Синтаксисът за тази функция е както следва:

StrTemplate(<Шаблон>, <Значение1-Значение10>)

<Шаблон>е низът, в който да се заменят представянията на параметрите.

<Значение1> , ... <Значение10>- това са параметрите (максимум - десет), чиито представяния трябва да бъдат заменени в низа.

За да посочите конкретно място в шаблона, на което искате да извършите заместването, трябва да използвате маркери във формата %1, ... %10. Броят на маркерите, включени в шаблона, и броят на параметрите, съдържащи стойности, трябва да съвпадат.

Например резултатът от изпълнението на такъв оператор:

ще има ред:

Грешка в данните на ред 2 (изисква тип дата)

Низова функция StrCompare()

Тази функция сравнява два низа без значение за главни и малки букви. Например така:

Можете да извършите същото действие, преди да използвате обекта ValueComparison:

Използването на новата функция обаче изглежда по-просто. Освен това функцията, за разлика от обекта Value Compare, работи както в тънкия клиент, така и в уеб клиента.

Функции за низове StrBeginsC(), StrEndsTo()

Тези функции определят дали даден низ започва с определен подниз или дали низът завършва с определен подниз. Алгоритъмът на тези функции не е труден за изпълнение на вграден език, но тяхното присъствие ви позволява да пишете по-чист и разбираем код. И работят по-бързо.

Например, те са удобни за използване в израза If:

Функции за работа с низове StrSplit(), StrJoin()

Тези функции разделят низа на части според зададения разделител. Или обратното, те комбинират няколко реда в един, като вмъкват избрания разделител между тях. Те са удобни за създаване или анализ на дневници, технологичен дневник. Например, можете лесно да разглобите запис в технологичен дневник на части, подходящи за допълнителен анализ:

Функция за работа с низове StrFind()

Вместо старата функция Find(), внедрихме нова функция, който има допълнителни функции:

  • Търсене в различни посоки (от началото, от края);
  • Търсене от посочената позиция;
  • Търсене на събитие с посочен номер(втори, трети и т.н.).

Всъщност тя дублира възможностите на старата функция. Това се прави, за да се поддържа съвместимост с модули, компилирани в по-стари версии. Препоръчва се старата функция Find() да не се използва повече.

По-долу е даден пример за използване на новите възможности за търсене. Търсенето назад е полезно, когато имате нужда от последния фрагмент от формализиран низ, например, пълно имефайл в URL. И търсенето от определена позиция помага в случаите, когато трябва да търсите в известен фрагмент, а не в целия низ.