Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Главная программа






 

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;

 


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

mylektsii.su - Мои Лекции - 2015-2024 год. (0.007 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал