Функция GetField    

Получает заданное поле из строки, содержащей несколько полей, разделенных запятой.  Эта функция удобна для извлечения данных из 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  )

Hosted by uCoz