Выцепить данные из строки

Dragon108

Well-known member
19.01.2010
265
0
#1
Есть поле в документе, в нем хранятся данные в виде:

... | UNID | строка 1 | строка 2 | ...

и так далее, таким образом получается большая строка, в которой данные разделены разделителями (|).
Далее, грубо говоря, передается Unid и по нему необходимо найти в этой строке цепочку данных, относящуюся именно к этому UNIDу, т.е. обрезать все лишнее. (необходимый кускок с данными, находится правее UNIDа, до следущего UNIDа)
Как можно вырезать данную строку из всей этой строки с данными?
Спасибо
 
J

Jansar

#2
Получить Split-ом массив, далее перебрать его в цикле.
а если нужно получить определенный UNID то можно с помошью ArrayGetIndex получить его индекс в массиве. и т.д
 

nvyush

Lotus team
22.04.2009
2 317
0
#3
Код:
tmp = StrRight (stroka, unid + "|")
tmp2 = Split(tmp, "|")
for i = 0 to skoka_parametrov
print tmp2(i)
next
 

alik86

Lotus team
20.11.2008
465
1
#4
Почитайте в хелпе про всякие Left, Right, StrLeftBack, StrRight functions и выбирайте, что Вам наиболее подходит.
 

VladSh

начинающий
Lotus team
11.12.2009
1 262
6
#6
А как вы собрались отличать UNID от неUNID'а, если количество символов будет совпадать?
Поменяйте лучше формат хранения.
 

Dragon108

Well-known member
19.01.2010
265
0
#7
А как вы собрались отличать UNID от неUNID'а, если количество символов будет совпадать?
Поменяйте лучше формат хранения.

В смысле "отличать UNID от неUNID'а"? Передается UNID и по нему ищется аналогичный в этой строке.
 
D

Darker

#8
В смысле "отличать UNID от неUNID'а"? Передается UNID и по нему ищется аналогичный в этой строке.
Искать до какого условия? Как ты узнаешь, что все, вот до сюда мне надо?
Храни хотя бы так

...%%UNID1 | строка1 | строка2 | строка3 %%UNID2 | строка1 | строка2
 

nvyush

Lotus team
22.04.2009
2 317
0
#9
Искать до какого условия? Как ты узнаешь, что все, вот до сюда мне надо?
Если количество параметров для каждого UNID'а одинаковое, то не критично, а если разное, то для разделения блоков информации, относящихся к одному UNID'у разумеется, следует использовать другой разделитель.
 

VladSh

начинающий
Lotus team
11.12.2009
1 262
6
#10
Всё равно это какой-то отстой...
Разве нельзя разнести данные по разным айтемам с MultyValue, потом искать по айтему с UNID'ами (arrayGetIndex) и спокойно брать все нужные значения по индексу?