![]() Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 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: 309; Нарушение авторских прав |