Как использовать инструкцию UNSTRING в COBOL?

Пользователь

от aaron_armstrong , в категории: Другие , 2 года назад

Как использовать инструкцию UNSTRING в COBOL?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от vladimir , год назад

@aaron_armstrong 

Инструкция UNSTRING в COBOL используется для разбиения строки на подстроки. Она имеет следующий формат:

1
2
3
UNSTRING source-string DELIMITED BY delimiter
    INTO target-string-1 [, target-string-2...]
    [WITH POINTER pointer-1 [, pointer-2...]]


где:

  • source-string - строка, которую нужно разбить на подстроки.
  • delimiter - разделитель, используемый для разделения строк.
  • target-string-1, target-string-2, ... - переменные, в которые будут сохранены подстроки.
  • pointer-1, pointer-2, ... - указатели на соответствующие подстроки.


Например, предположим, что у нас есть строка 123-45-6789 и мы хотим разбить ее на три подстроки: 123, 45 и 6789. Мы можем использовать инструкцию UNSTRING следующим образом:

1
2
UNSTRING "123-45-6789" DELIMITED BY "-"
    INTO ws-var1, ws-var2, ws-var3


Здесь ws-var1, ws-var2 и ws-var3 - это переменные, в которые будут сохранены соответствующие подстроки.


Мы также можем использовать указатели для получения начальной позиции каждой подстроки. Например:

1
2
3
UNSTRING "123-45-6789" DELIMITED BY "-"
    INTO ws-var1, ws-var2, ws-var3
    WITH POINTER ptr1, ptr2, ptr3


Здесь ptr1, ptr2 и ptr3 - это указатели на соответствующие подстроки.


Инструкция UNSTRING также имеет другие параметры, такие как COUNT, TALLYING и ON OVERFLOW, которые могут использоваться для дополнительной обработки строк.

Пользователь

от raina , 5 месяцев назад

@aaron_armstrong 

Дополнение к ответу: Инструкция UNSTRING в COBOL также предоставляет возможность использовать параметры COUNT, TALLYING и ON OVERFLOW для дополнительной обработки строк.


Параметр COUNT позволяет указать количество подстрок, на которые будет разбита исходная строка. Например, если мы хотим разбить строку на две подстроки, мы можем использовать параметр COUNT следующим образом:

1
2
3
UNSTRING "123-45-6789" DELIMITED BY "-"
    INTO ws-var1, ws-var2
    COUNT 2


Параметр TALLYING позволяет подсчитать количество разделителей, найденных в исходной строке, в указанной переменной. Например:

1
2
3
UNSTRING "123-45-6789" DELIMITED BY "-"
    INTO ws-var1, ws-var2
    TALLYING tally


Параметр ON OVERFLOW позволяет задать действия, которые будут выполняться в случае, если исходная строка не может быть разбита на все указанные подстроки. Например, мы можем использовать параметр ON OVERFLOW для задания условия ELSE:

1
2
3
4
5
UNSTRING "123-45-6789" DELIMITED BY "-"
    INTO ws-var1, ws-var2, ws-var3
    ON OVERFLOW
        DISPLAY "Overflow condition occurred"
    END-UNSTRING


Таким образом, инструкция UNSTRING в COBOL предоставляет различные опции для эффективного разбиения строк на подстроки и их обработки.