PosEx: различия между версиями

Материал из UoPilot
Перейти к навигации Перейти к поиску
(Новая страница: « == Описание == Возврат позиции подстроки в строке. == Синтаксис == set <имя_переменной> PosEx(&l...»)
 
 
Строка 4: Строка 4:
  
 
== Синтаксис ==
 
== Синтаксис ==
  set &lt;имя_переменной> PosEx(&lt;подстрока> &lt;строка> [стартовая_позиция_поиска])
+
  set <имя_переменной> PosEx(<подстрока> <строка> [стартовая_позиция_поиска])
 
   
 
   
&lt;имя_переменной> - имя переменной в которую будет помещён результат.  
+
<имя_переменной> - имя переменной в которую будет помещён результат.  
&lt;br>&lt;подстрока> - искомая строка.
+
<br><подстрока> - искомая строка.
&lt;br>&lt;строка> - строка, в которой происходит поиск.
+
<br><строка> - строка, в которой происходит поиск.
&lt;br>[стартовая_позиция_поиска] - порядковый номер символа с которого начнется поиск (по умолчанию 1). Необязательный параметр.
+
<br>[стартовая_позиция_поиска] - порядковый номер символа с которого начнется поиск (по умолчанию 1). Необязательный параметр.
&lt;br>&lt;br>Если искомая подстрока не найдена, то результат будет равен 0
+
<br><br>Если искомая подстрока не найдена, то результат будет равен 0
  
 
== Примеры ==
 
== Примеры ==
Строка 56: Строка 56:
  
 
[[Get word]]
 
[[Get word]]
&lt;br>[[Get number]]
+
<br>[[Get number]]
&lt;br>[[Copy]]
+
<br>[[Copy]]
&lt;br>[[Delete]]
+
<br>[[Delete]]
&lt;br>[[Insert]]
+
<br>[[Insert]]
  
 
== История развития ==
 
== История развития ==
  
 
'''2.23'''
 
'''2.23'''
&lt;br>Добавил функции для работы со строками:
+
<br>Добавил функции для работы со строками:
 
  'PosEx(SubStr String [Offset=1])'
 
  'PosEx(SubStr String [Offset=1])'
Возвращает позицию подстроки &lt;SubStr> в строке &lt;String>, начиная поиск с позиции [Offset] (по умолчанию Offset=1).
+
Возвращает позицию подстроки <SubStr> в строке <String>, начиная поиск с позиции [Offset] (по умолчанию Offset=1).
  
 
[[Категория:Текст]]
 
[[Категория:Текст]]

Текущая версия на 11:02, 28 августа 2019

Описание

Возврат позиции подстроки в строке.

Синтаксис

set <имя_переменной> PosEx(<подстрока> <строка> [стартовая_позиция_поиска])

<имя_переменной> - имя переменной в которую будет помещён результат.
<подстрока> - искомая строка.
<строка> - строка, в которой происходит поиск.
[стартовая_позиция_поиска] - порядковый номер символа с которого начнется поиск (по умолчанию 1). Необязательный параметр.

Если искомая подстрока не найдена, то результат будет равен 0

Примеры

// Пример 1
set $s абвгдеёж
set #n posex(в $s) // #n = 3
set #n posex(я $s) // #n = 0
// Пример 2
set #m posex(ин машина) // #m = 4
// Пример 3
set #m1 posex(а машина) // #m1 = 2
set #m2 posex(а машина 3) // #m2 = 6
// Пример 4
set $a "мама мыла раму"
set $b "мыла"
set #pos PosEx($b $a 2) // #pos = 6. Слово Offset не пишите - оно игнорируется вместе с тем, что после него
msg #pos
// Пример 5
set $s Недавно Вася съел 15 яблок, обжора... // фраза в которой будем искать число яблок
set #еще_яблоки 3 // никто не знал об этих яблоках...
set $ws съел // левое от числа слово
set #wlen size ( $ws ) // длина левого_слова
set $w2 яблок // правое от числа слово

set #n1 posex($ws $s) // позиция в строке с которой начинается левое_слово
set #n2 posex($w2 $s) // позиция в строке с которой начинается правое_слово

if ( #n1 > 0) and ( #n2 > 0 ) // если оба слова были найдены, то будем доставать число...
    set #pos #n1 + #wlen // позиция в строке с которой начинается число
    set #len #n2 - #pos // длина числа в символах
    set $res copy($s #pos #len) // получаем из строки нужную нам подстроку с числом яблок
    set #всего_яблок $res + #еще_яблоки // считаем сколько всего слопано 
 
    msg Дятел: А ВАСЯ СЪЕЛ #всего_яблок ЯБЛОК!!! // бдительность- залог успеха
else
    msg Яблок никто не ел! // неправильные исходные данные часто спасают преступников )
end_if 
end_script

Смотрите также

Get word
Get number
Copy
Delete
Insert

История развития

2.23
Добавил функции для работы со строками:

'PosEx(SubStr String [Offset=1])'

Возвращает позицию подстроки <SubStr> в строке <String>, начиная поиск с позиции [Offset] (по умолчанию Offset=1).