![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Главная программа
program gorod; uses crt; type stadt=record key: Integer; Объявляется набор имен и типов полей записей (например, код города) name: string[20]; название города ein: longint; число жителей kfz: longit; число автомобилей end; file_typ = file of stadt; объявление файловой переменной file_typ типа stadt var kop, f: file_typ; объявление переменных kop, f файлового типа file_typ n: string[20]; имя файла данных quit: boolean; нужна для организации меню Ввод в программу значений полей очередной записи файла procedure lesen(var s: stadt); begin ввод в программу значений полей очередной записи файла: clrscr; код, название, число жителей и автомобилей. writeln('Конец ввода: код = 0'); write('Код: '); readln(s.key); if s.key < > 0 then признаком окончания ввода является ввод нуля begin write('Название: '); readln(s.name); write('Жителей: '); readln(s.ein); write('Автомобилей: '); readln(s.kfz); end; end; Отображение на экране значений полей записи procedure s_geben(s: stadt); begin процедура отображения на экране значений полей записи, предварительно writeln(s.key: 4, s.name: 22, s.ein: 9, s.kfz: 5); считанной из файла или записываемой в файл end; Удаление записи procedure delete(var f: file_typ); var s: stadt; k: integer; код города удаляемой записи c: char; found: boolean; begin writeln('Какую запись удалить? '); Удаление записи путем перепи- writeln('Задайте код: '); сывания всех записей кроме удаляемой в readln(k); другой файл и переименованием последнего reset(f); открытие существующего основного файла rewrite(kop); открытие нового вспомогательного файла found: =false; while not eof(f) do begin read(f, s); if s.key < > k then write(kop, s) else begin found: =true; s_geben(s); write('Именно эту запись'); writeln(' удалить? Д/Н'); readln(c); case c of 'Д', 'д', 'L', 'l': else write(kop, s) end; end; end; close(f); close(kop); if not found then begin write('Город с кодом ', k: 4); п write(' не найден.'); erase(kop); удаление последнего закрытого файла writeln('< Enter> '); read(c); end else begin erase(f); удаление основного файла rename(kop, n); переименование предварительно закрытого файла assign(kop, 'temp.cop'); кор в n. Устанавливается связь end; логического файла kop с именем физического файла temp.cop end; Добавление записи procedure append(var f: file_typ); var s: stadt; c: char; begin reset(f); открытие существующего файла.Добавлять можно только в seek(f, filesize(f)); конец файла. Позиционирование указателя lesen(s); в конец файла. Ввод значений полей добавляемой записи. writeln; вывод на экран пустой строки s_geben(s); выводим их writeln('Все правильно? Д/Н'); readln(c); case c of 'Д', 'д', 'L', 'l': write(f, s) пишем в файл если Да end; close(f); end;
|