Chief-NET

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Chief-NET » Паскаль в среде Borland Delphi » Возвращение


Возвращение

Сообщений 1 страница 3 из 3

1

Напишу, как я представляю алгоритм возвращения извлеченного (и переведенного) блока текста в РОМ с использованием поинтеров.

Итак на входе мы имеем скрипт, представляющий собой простой текстовый файл, строки в котором соответствуют отдельным сообщениям (на каждую строку по одному поинтеру), а так же адрес начала таблицы поинтеров.
Оговорим сразу: порядок строк соответствует порядку поинтеров исходного текста (чтобы персонажи не менялись репликами).
Программа подсчитывает количество строк в файле, умножает его на два (при двухбайтовых поинтерах) и, прибавив полученное число к адресу начала таблицы поинтеров, вычистляет адрес начала текста (в случае, когда поинтеры идут непосредственно перед текстом).
Далее в первую ячейку таблицы заносится поинтер на вычисленный адрес и происходит заполнение массива текста по одному символу. При этом ведется учет текущего адреса специальной переменной, при достижении конца строки программа записывает символ окончания строки в массив, вычисляет адрес начала следующей строки (путем прибавления к адресу конца строки 1), поинтер на новый адрес записывается в следующую ячейку таблицы поинтеров, а далее все повторяется до окончания текста.

2

Как я понимаю, таблиц поинтеров может быть сразу несколько?

3

Конечно может, если несколько блоков текста, то и таблиц поинтеров будет столько же.


Вы здесь » Chief-NET » Паскаль в среде Borland Delphi » Возвращение