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


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

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






Порядок расширения файла за счет внесения новых компонент





 

1. Связать файловую переменную с именем файла (Assign).

2. Открыть существующий файл (Reset)

3. Установить указатель файла за последним компонентом файла

Seek(файловая_переменная,FileSize(файловая_переменная))

4. Записать компонент в файл (Write)

5. Закрыть файл (Close).

 

Порядок замены содержимого записи

 

1. Связать файловую переменную с именем файла (Assign).

2. Открыть существующий файл (Reset)

3. Установить указатель файла перед компонентом с нужным номером Seek(файловая_переменная, номер_компоненты)

4. Прочитать компоненту из файла (Read)

5. Установить указатель файла перед компонентом с нужным номером Seek(файловая_переменная, номер_компоненты)

6. Записать компонент в файл (Write)

7. Закрыть файл (Close).

 

Пример. Создать файл записей, содержащих сведения о сдаче студентами сессии. Структура записи: фамилии студента, номер группы, результаты сдачи трех экзаменов. Распечатать список студентов, получающих стипендию. Условие получения стипендии – средний балл больше 5. Предусмотреть все виды корректировки файла.

Program Zapisi;

Uses Crt;

Const

FileName: String [10]=’Stud.dat’; {имя Файла}

Type Sved= record

Fio: String [50]; {Фамилия}

Nom: String [10]; {Номер группы}

b1,b2,b3:0..10; {Результаты сдачи экзаменов}

sb:Real; {Средний балл}

end;

Var

Fv,Fv1: File of Sved;

Rv: Sved;

i,N:Byte;

{Создание файла записей}

Procedure Vvod;

Begin

Assign (Fv,FileName);

Rewrite(Fv);

While True do

With Rv do

Begin

Clrscr;

Write ('ФИО (признак окончания ввод ***)-->');

ReadLn(Fio);

If Fio=’***’ then

Begin

Close(Fv);

Exit;

end;

Write ('Группа -->');

ReadLn(Nom);

Write ('Оценки -->');

ReadLn(b1,b2,b3);

sb:=(b1+b2+b3)/3;

Write(Fv,Rv);

End

end;

{Вывод исходного файла записей}

Procedure Vivod;

Begin

clrscr;

WriteLn ('Сведения о студентах:');

WriteLn ('Фамилия Группа Оценки Средний балл');

Assign (Fv,FileName);

Reset(Fv);

While not EOF(Fv) do

With Rv do

Begin

Read(Fv,Rv);

WriteLn (Fio:10,Nom:10,b1:2,b2:2,b3:2,sb:5:1);

end;

Close (Fv);

Repeat Until KeyPressed;

end;

{Вывод списка студентов, получающих стипендию}

Procedure Obr;

Begin

clrscr;

WriteLn ('Сведения о студентах:');

WriteLn ('Фамилия Группа Оценки Средний балл');

Assign (Fv,FileName);

Reset(Fv);

While not EOF(Fv) do

With Rv do

Begin

Read(Fv,Rv);

If sb>5 then

WriteLn(Fio:10,Nom:10,b1:2,b2:2,b3:2,sb:5:1);

end;

Close (Fv);

Repeat Until KeyPressed;

end;

{Расширение файла за счет внесения новых компонент}

Procedure Rasch;

Begin

Assign (Fv,FileName);

Reset(Fv);

Seek(Fv,FileSize(Fv));

While True do

With Rv do

Begin

Clrscr;

Write ('ФИО (признак окончания ввод ***)-->');

ReadLn(Fio);

If Fio=’***’ then

Begin

Close(Fv);

Exit;

end;

Write ('Группа -->');

ReadLn(Nom);

Write ('Оценки -->');

ReadLn(b1,b2,b3);

sb:=(b1+b2+b3)/3;

Write(Fv,Rv);

End

end;

{Замена содержимого записи}

Procedure Zam_zapisi;

Begin

Clrscr;

Assign (Fv,FileName);

Reset(Fv);

Write (’Введите номер заменяемой записи N=’);

ReadLn (N);

Seek(Fv,N-1);

Read(Fv,Rv);

Write ('ФИО: ',Fio,'-->');

ReadLn(Fio);

Write ('Группа: ',Nom,' -->');

ReadLn(Nom);

Write ('Оценки: ',b1:2,b2:2,b3:2,' -->');

ReadLn(b1,b2,b3);

sb:=(b1+b2+b3)/3;

Seek(Fv,N-1);

Write(Fv,Rv);

Close(Fv);

end;

{Удаление записи из файла}

Procedure Udal_zapisi;

Begin

Clrscr;

Assign (Fv,FileName);

Reset(Fv);

Write (’Введите номер удаляемой записи N=’);

ReadLn (N);

Assign (Fv1,’Temp.dat’); {создаем промежуточный файл}

Rewrite(Fv1); {открываем его для записи}

 

For i:=1 to N-1 do {считываем из исходного файла и записываем в промежуточный файл все компоненты до удаляемой}

Begin

Read(Fv,Rv);

Write(Fv1,Rv);

end;

Read(Fv,Rv); {считываем удаляемую компоненту}

{ но не записываем}

While not EOF(Fv) do {считываем все остальные}

{компоненты до конца файла}

Begin

Read(Fv,Rv);

Write(Fv1,Rv);

end;

Close(Fv);

Close(Fv1);

{переписываем данные из промежуточного файла в исходный}

Assign (Fv,FileName);

Rewrite(Fv);

Assign (Fv1,’Temp.dat’);

Reset(Fv1);

While not EOF(Fv1) do

Begin

Read(Fv1,Rv);

Write(Fv,Rv);

end;

Close(Fv);

Close(Fv1);

end;

{Основная программа}

Begin

Vvod;

Vivod;

Obr;

Rasch;

Zam_zapisi;

Udal_zapisi;

End.

Date: 2015-10-19; view: 251; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.007 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию