Основы программирования на языке Паскаль

Методическое пособие - Компьютеры, программирование

Другие методички по предмету Компьютеры, программирование

writeln(2: загрузка по ключу);

writeln(3: обработка по ключу);

writeln(4: корректировка);

writeln(5: выход из программы);

readln(reg);

case reg of 1:form; 2:zagruz; 3:obrab; 4:koor; 5:halt;

end;

end;

end.

10.6. Текстовые файлы

 

Компонентами текстовых файлов являются строки. Длина строки 0-255 символов. Каждая строка завершается маркером строки, а файл маркером конца файла. Для описания файловых переменных текстового типа используется зарезервированное слово text.

Var instrl, instr2: text;

dokulnent: text;

Для работы с текстовыми файлами используются упомянутые выше функции и процедуры assign, rewrite, reset, close, read, readln, write, writeln, seekeof, однако имеются и специфические функции и процедуры:

Append (fv) открыть текстовый файл и установить указатель на маркер конца файла.

Eoln (fv) возвратить true, если указатель файла достиг маркера конца строки, в противном случае, возвратить значения false.

Seekeoln(fv) функция, аналогичная предыдущей, но указатель проходит все пробелы и знаки табуляции. возвращает true при достижении маркера конца строки.

Seekeof(fv) возвращает true, если указатель файла находится на маркере конца файла.

Организация текстового файла производится по схеме:

1) объявляется файловая переменная текстового типа;

2) присваивается файлу имя (assign);

3) открывается файл (rewrite);

4) подготавливается строка - компонента для записи в файл;

5) записывается строка - компонента в файл (writeln);

6) повторяются п. 4, 5 столько раз, сколько нужно;

7) закрывается файл.

Доступ к компонентам текстового файла:

1) присвоить файлу имя (assign);

2) открыть файл для чтения (reset);

3) прочитать компоненту-строку (readln);

4) обработать компоненту-строку (например вывести на экран);

5) повторить п. 3, 4 столько раз, сколько нужно.

6) закрыть файл (close);

Расширение текстового файла производится путем добавления в конец файла компонент-строк:

1) присвоить имя файлу (assign);

2) установить маркер на конец файла (append);

3) подготовить строку для записи;

4) записать строку (writeln);

5) повторить нужное количество раз п. 3, 4.

6) закрыть файл (close).

Замечание. При записи файлов прямого и последовательного доступа, созданных пользователем, содержимое компонент упаковывается, и поэтому посмотреть их в vc или nc по f3 или f4 нельзя, а текстовый файл не упаковывается, и его можно просмотреть.

procedure sozdt;

Begin writeln(дайте имя создаваемому текстовому файлу);

readln(filename);

assign(stro,filename); rewrite(stro);

while true do

Begin writeln(напишите содержимое строки);

readln(s); if s=zzz then {zzz признак окончания ввода }

Begin close(stro); exit; end;

writeln(stro,s); end;end;

procedure obrt;

Begin writeln(дайте имя обрабатываемого файла);

; readln(filename);

assign(stro,filename); reset(stro);

repeat readln(stro,s); writeln(s);

until seekeof(stro); close(stro); exit; end;

procedure rasht;

Begin writeln(укажите имя корректируемого файла); readln(filename);

assign(stro,filename); append(stro);

while true do

Begin writeln(введите строку); readln(s);

if s=zzz then Begin close(stro); exit; end;

writeln(stro,s); end; end;

Program Prim51;

Type dlina=string[60];

Var stro:text; s:dlina; reg:char; filename:string[12];

{$i c:\turbo\sozdt.pas}

{$i c:\turbo\obrt.pas}

{$i c:\turbo\rasht.pas}

Begin while true do

Begin writeln(укажите режим);

writeln(1: создание, 2: вывод на экран, 3: расширение, 4: выход);

readln(reg);

case reg of 1: sozdt;

2: obrt;

3: rasht;

4: halt else writeln(повторите номер режима);

end;end;end.

11. Использование библиотеки CRT

 

Разработчики Турбо-Паскаля предусмотрели несколько подпрограмм, существенно увеличивающих возможности текстового ввода-вывода. Эти подпрограммы сосредоточены в библиотеке (модуле) CRT, входящей в комплект поставки Турбо-Паскаля. В модуль включены также процедуры sound, no sound, delay, позволяющие программировать звуковой генератор компьютера.

 

11.1. Программирование клавиатуры

 

Дополнительные возможности управления клавиатурой реализуются двумя функциями: keypressed и ReadKey.

Функция keypressed возвращает значение типа boolean, указывающее состояние буфера клавиатуры: false означает, что буфер пуст, а true что в буфере есть хотя бы один символ, еще не прочитанный программой.

В реализуется так называемый асинхронный буферизованный ввод с клавиатуры. По мере нажатия на клавиши соответствующие коды помещаются в особый буфер, откуда они могут быть затем прочитаны программой. Стандартная длина буфера рассчитана на хранение до 16 кодов символов. Если программа достаточно долго не обращается к клавиатуре, а пользователь нажимает клавиши, буфер может оказаться переполненным. В этот момент раздается звуковой сигнал и лишние коды теряются. Чтение из буфера обеспечивается процедурами read/rеadln и функцией ReadKey. обращение к функции keypressed не задерживает исполнения программы: функция немедленно анализирует буфер и возвращает то и