Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

While true do




End.

Begin while true do

With recbooks do

While true do

Begin writeln('укажите ключ обрабатываемой записи'); readln(k);

if k=9999 then Begin close(booksfile); exit; end;

seek(booksfile,k-1);

with recbooks do Begin read(booksfile,recbooks);

writeln(nomer:5,avtor:16,nazv:15,index:4);

end; end; end;

Написать процедуру корректировки файла произвольного доступа в которой будут предусмотрены режимы корректировки:

1. Замена всех полей компоненты.

2. Расширение файла в пределах отформатированного пространства.

все это делает процедура Кооr, записанная в c:\turbo\koor.pas.

Procedure Koor;

Var nevavtor:string[16]; nevnazv:string[30]; nevindex:integer;

Begin writeln('дайте имя файла'); readln(filname);

assign(booksfile,filname); reset(booksfile);

Begin writeln('сколько записей будете корректировать?'); readln(k);

for i:=1 to k do

Begin writeln('дайте номер корректируемой записи'); readln(k1);

nevavtor:=' '; nevnazv:=' '; nevindex:=0;

writeln('введите имя автора'); readln(nevavtor);

writeln('введите название книги'); readln(nevnazv);

writeln('введите индекс'); readln(nevindex);

avtor:=nevavtor; nazv:=nevnazv; index:=nevindex;

seek(booksfile,k1-1); write(booksfile,recbooks);

end; end; close(booksfile); end;

В программе Prim 50, с помощью меню рассматриваются работа с файлами произвольного доступа во всех режимах; форматирование файла, его загрузка, обработка, корректировка. Здесь следует заметить, что программа универсальна в том смысле, что может работать с различными файлами.

Program Prim50;

Type books=record

nomer:integer; avtor:string[16];

nazv:string[30]; index:integer; end;

Var booksfile:file of books;

recbooks:books; razmer,k,k1,i,reg:integer;

filname:string[12];

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

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

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

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

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

writeln('1: форматизация');

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;

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);

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);




Поделиться с друзьями:


Дата добавления: 2014-12-17; Просмотров: 384; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.007 сек.