Справочное руководство по языку Ада-83


Пример пакета обработки текстов - часть 2


procedure SET (OBJECT ; in out TEXT; VALUE : In TEXT); procedure SET (OBJECT : In out TEXT; VALUE : In STRING); procedure SET (OBJECT : In out TEXT; VALUE : in CHARACTER);

procedure APPEND (TAIL : In TEXT; TO In out TEXT); procedure APPEND (TAIL : in STRING; TO In out TEXT); procedure APPEND (TAIL : In CHARACTER; TO in out TEXT);

procedure AMEND (OBJECT in out TEXT; BY In TEXT; POSITION : In INDEX); procedure AMEND (OBJECT in out TEXT; BY In STRING; POSITION : In INDEX); procedure AMEND (OBJECT In out TEXT; BY In CHARACTER; POSITION : In INDEX);

-— заменяет часть объекта с заданной позиции на данный -— текст, строку или символ

function LOCATE (FRAGMENT : TEXT; WITHIN : TEXT) return INDEX; function LOCATE (FRAGMENT : STRING; WITHIN : TEXT) return INDEX; function LOCATE (FRAGMENT : CHARACTER; WITHIN : TEXT) return INDEX;

—- возвращают значение О, если фрагмент не размещается

private

type TEXT(MAXIMUM_LENGTH : INDEX) is record

POS : INDEX := 0; VALUE : STRING(1 .. MAXIMUM_LENGTH); end record;

end TEXT-HANDLER;

Пример использования пакета обработки текста:

Программа открывает файл вывода, имя которого дается строкой NAME. Эта строка имеет вид

[УСТРОЙСТВО :] [ИМЯ ТИПА [.РАСШИРЕНИЕ]]

Для устройства, имени файла и расширения существуют стандартные значения по умолчанию. Названное пользователем имя передается через параметр функции EXPAND_FILE_NAME, ее результатом является расширенная версия с необходимыми добавлениями по умолчанию.

function EXPAND_FILE_NAME (NAME : STRING) return STRING is use TEXT_HANDLER;

DEFAULT_DEVICE : constant STRING = "SY:"; DEFAULT_FILE_NAME : constant STRING = "RESULTS"; DEFAULT_EXTENSION : constant STRING = ".DAT";

MAXIMUM_FILE_NAME_LENGTH : constant INDEX := SOME_APPROPRIATE_VALUE: FILE_NAME : TEXT(MAXIMUM_FILE_NAME_LENGTH);

begin

SET(FILE_NAME, NAME); if EMPTY(FILE_NAME) then

SET(FILE_NAME, DEFAULT_FILE_NAME); end if;

if LOCATEC:', FILE_NAME) = 0 then

SET(FILE_NAME, DEFAULT_DEVICE & FILE_NAME); end if;

if LOCATE('.', FILE_NAME) = 0 then

APPEND(DEFAULT_EXTENSION, TO => FILE_NAME); end if;

return VALUE(FILE_NAME);

end EXPAND_FILE_NAME;

Пред. 

Уровень выше  След.

7.5. ПРИМЕР ПАКЕТА РАБОТЫ С ТАБЛИЦАМИ

 

Начало  Глава 8. ПРАВИЛА ВИДИМОСТИ




Начало  Назад  Вперед



Книжный магазин