Получает заданное поле из строки, содержащей несколько полей, разделенных запятой. Эта функция удобна для извлечения данных из Basic-образных текстовых строк, которые часто используются для обмена данными между различными программами.
GetField ( Stro, Num [, QuoteFlag] )
Stro -
исходная строка
Num - номер
поля в строке
QuoteFlag - признак того, что поля
заключены в кавычки и их надо убрать из
результирующей строки.
Функция возвращает строку, содержащую поле с
заданным номером или пустую строку в случае
ошибки.
Прототип: GetField (String,Short,<Byte>),String
GetField FUNCTION ( Stro, Num,
QuoteFlag )
bpoz SHORT
epoz SHORT
loc:Str STRING( 512 )
CODE
if omitted( 3 )
QuoteFlag = 0
.
bpoz=1
epoz=0
loc:Str = ''
if Num = 1
epoz = instring( ',', Stro, 1 , bpoz )
if epoz = 0
loc:Str = Stro
else
loc:Str = sub( Stro, 1, epoz-bpoz )
.
elsif Num > 1
!--- Цикл поиска начальной точки
loop
epoz = instring( ',', Stro, 1, bpoz )
if epoz = 0
return( '' )
else
bpoz = epoz+1
.
Num -= 1
if Num <= 1
break
.
. ! end loop
epoz = instring( ',', Stro, 1, bpoz )
if epoz = 0
loc:Str = sub( Stro, bpoz, len(Stro) )
else
loc:Str = sub( Stro, bpoz, epoz-bpoz )
.
.
if QuoteFlag ! Если строки в кавычках
loc:Str = sub( loc:str, 2, len(clip(loc:Str))-2 )
.
return( loc:Str )