Студопедия — Примеры подпрограмм по обработке файлов
Студопедия Главная Случайная страница Обратная связь

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

Примеры подпрограмм по обработке файлов






Unit Unit1;

interface

const

line='-----------------------------------------------------------------------';

type

//струтура записи типизированного файла

tkassa=record

nomer:word;

FIO:string[20];

num:word;

sum:real;

data:string[10];

end;

ttxt=textfile; //тип для текстового файла

ttype=file of tkassa; //тип для типизированного файла из записей

tf=file of integer; //типизированный файл из целых значений

//создание типизированного из текстового

procedure create_tf(var f1:ttxt; var f2:ttype);

//поиск в типизированном файле

procedure search(var f2:ttype;fam:string);

//вставка записи в середину тип. ф.

procedure insert_mid(var f2:ttype; x:tkassa; s1:string);

//вставка перед первой записью procedure insert_first(var f2:ttype; x:tkassa; s1:string);

//вставка в конец файла

procedure insert_end(var f2:ttype; x:tkassa);

//вывод файла

procedure out(var f2:ttype);

//удаление из записи по указанной позиции

procedure delete_pos (var f2:ttype; pos:integer);

implementation

procedure create_tf(var f1:ttxt; var f2:ttype);

var

w: tkassa;

begin

reset(f1);

rewrite(f2);

while not eof(f1) do

begin

readln(f1,w.nomer);

readln(f1,w.FIO);

readln(f1,w.num);

readln(f1,w.sum);

readln(f1,w.data);

write(f2,w);

end;

closefile(f1);

closefile(f2);

end;

procedure insert_first(var f2:ttype; x:tkassa; s1:string);

var

f3:ttype;

i:integer;

begin

assignfile(f3,'tmp.doc');

rewrite(f3);

write(f3,x);

reset(f2);

for i:=1 to filesize(f2) do

begin

read(f2,x);

write(f3,x);

end;

closefile(f2);

closefile(f3);

erase(f2);

rename(f3, s1);

end;

procedure insert_mid(var f2:ttype; x:tkassa; s1:string);

var

f3:ttype;

i:integer;

x1:tkassa;

begin

assignfile(f3,'tmp.doc');

rewrite(f3);

reset(f2);

for i:=1 to filesize(f2)div 2 do

begin

read(f2,x1);

write(f3,x1);

end;

write(f3,x);

for i:=filesize(f2)div 2+1 to filesize(f2) do

begin

read(f2,x);

write(f3,x);

end;

closefile(f2);

closefile(f3);

erase(f2);

rename(f3, s1);

end;

procedure insert_end(var f2:ttype; x:tkassa);

var

f3:ttype;

i:integer;

x1:tkassa;

begin

reset (f2);

seek(f2, filesize(f2));

write(f2, x);

closefile(f2);

end;

procedure out(var f2:ttype);

var

x:tkassa;

i:integer;

begin

reset(f2);

writeln;

shapka;

for i:=1 to filesize(f2) do

begin

read(f2,x);

writeln ('| ', x.nomer:6,' | ',x.FIO:7,' | ',x.num:16,' | ',x.sum:9,' |

',x.data:6,' |');

end;

closefile(f2);

end;

procedure delete_pos (var f2:ttype; pos:integer);

var

i:integer;

x:tkassa;

begin

reset(f2);

if pos<=filesize(f2) then

begin

for i:=pos to filesize (f2)-1 do

begin

seek (f2, i);

read(f2,x);

seek(f2, filepos (f2)-2);

write(f2,x);

end;

seek(f2, filesize(f2)-1);

truncate(f2);

closefile(f2);

end;

end;

procedure writey(var x:tkassa);

var

y:real;

begin

writeln('Vvedite nomer kassi');

readln (x.nomer);

writeln('Vvedite FIO');

readln (x.FIO);

writeln('Vvedite kol-vo');

readln (x.num);

writeln('Vvedite stoimost bileta');

readln (y);

x.sum:=y*x.num;

writeln('Vvedite daty');

readln (x.data);

end;

procedure search(var f2:ttype;fam:string);

var

x:tkassa;

k,i:integer;

begin

reset(f2);

k:=0;

for i:=1 to filesize (f2) do

begin

read(f2, x);

if x.FIO=fam then

begin

if k=0 then

shapka;

k:=k+1;

writeln ('| ', x.nomer:6,' | ',x.FIO:7,' | ',x.num:16,' | ',x.sum:9,' |

',x.data:6,' |');

end;

end;

if k=0 then

writeln ('Takix kassirov net');

end;

procedure vivf(var f:tf);

var i,x:integer;

begin

writeln;

reset(f);

for i:=1 to filesize (f) do

begin

read(f,x);

write(x,' ');

end;

closefile(f);

Reset(f);

end;

end.

Контрольные вопросы

1. Что такое файл? (определение файла на логическом и физическом уровнях)

2. Как устанавливается связь логического и физического файлов?

3. Какие вы знаете способы ввода в программу имени физического файла?

4. Что значит:– открыть файл: - закрыть файл?

5. Для чего используется директива {$I+/-}?

6. Что понимается под текстовым файлом на логическом уровне?

7. Как можно создать текстовый файл?

8. Что является компонентой текстового файла? Чем отделяется одна компонента от другой? Что можно сказать о длине компонент?

9. Какие процедуры осуществляют запись данных в текстовый файл и их особенности?

10. Какие процедуры читают данные из текстового файла и их особенности?

11. Как переопределить буфер обмена для текстового файла? На что влияет размер буфера?

12. Какие операции следует включить в программу для создания текстового файла А.txt на диске D:, в который записываются четыре значения: число, число, символ, строка (причем, три первых на одной строке файла, а третье на другой), предусмотрев все для последующего считывания этих значений. (разработайте программу и отладьте ее)

13. Каково назначение функций EOF, EOLN, SEEKEOF,SEEKEOLN? Процедуры FLUSH?

14. Как организовать добавление новых данных в уже существующий текстовый файл? (Приведите фрагмент программы)

15. Что объясняет эта программа?

Текстовый файл F.txt построчно содержит информацию:

Этот файл содержит 3 строки.

С этой строки вы считали 22 символа. А что стало с остальными?

А это уже третья строка.

{ Это текст программы }

Var f:Filetext;

A:string[22];

name_file: string;

Begin

Repeat

Writeln(‘ВВЕДИТЕ ИМЯ ФАЙЛА’); readln(name_file);

AssignFile(f, name_file);

{$I-}

Reset(f);

{$I+}

if Ioresult<>0 then

begin

writeln(‘Ошибка открытия файла с именем ’, name_file);

writeln(‘Введете заново имя файла? Y/N’);

readln(OK);

if (OK=’N’) or (OK=’n’) then Halt(1);

end;

until Ioresult=0;

Readln(f);

readln(f,a);

writeln(a);

readln(f,a);

write(a);

close(f);

End.

16. Пусть существует файл c.txt, из М (1<=M<=10) строк. Каждая строка содержит данные: год рождения и Фамилию И.О.. Разработайте программу заполнения массива A, определенного следующим образом:

type rec=record уеаr:1800..5000; fio:string[40] end;

var A: array[1..N] of rec;

17. Как описать типизированный файл в программе?

18. Как можно создать типизированный файл? Что является значением компоненты типизированного файла? Что можно сказать о длине всех компонент типизированного файла? Имеются ли в типизированном файле символы разделители компонент?

19. Приведите описания типизированных файлов

· Из компонентов вещественные числа

· Из компонентов символьного типа

· Из записей со структурой rec из вопроса 15.

20. Как определить длину компоненты типизированного файла?

21. Что определяет указатель типизированного файла?

22. Если указатель равен 3, то над какой (по номеру) записью будет выполняться операция ввода – вывода? (при ответе на вопрос изобразите схемой файл из 7 компонент, длина компонента 2 байта)

23. Какие операции можно выполнять над компонентами типизированного файла, если он открыт

· процедурой Reset

· процедурой Rewrite?

24. Какие операции выполняют процедуры SEEK, TRUNCATE? Что является значениями функций FILESIZE, FILEPOS? Что будет результатом выполнения процедур:

Seek(f,0); seek(f,filesize(f)); seek(f,filepos(f)-1); {считать, что filepos(f)>0)

25. Как вводиться в программу файл без типа? Что считается компонентой такого файла? Когда устанавливается размер компоненты для файла без типа?

 


БИБЛИОГРАФИЧЕСКИЙ СПИСОК

 

1. Рапаков Г. Г., Ржеуцкая С. Ю "Turbo Pascal для студентов и школьников.". БХВ-Петербург, 2007. 300 с.

2. Кандзюба С.П. Delphi 7. Базы данных и приложения. Лекции и упражнения / С.П.Кандзюба, В.Н.Громов. – СПб.: ООО «ДиаСофтЮП», 2005. 570 с.

3. Бобровский С. И."Delphi 7. Учебный курс". - Питер, 2007. 735 с.

4. Фаронов В. В."Delphi: программирование на языке высокого уровня." - Питер, 2005. 639 с.

5. Фаронов В.В. Система программирования DELPHI. - Санкт-Петербург: БХВ, 2003. 640 с

6. Альфред В.Ахо и др. Структуры данных и алгоритмы: Пер.с англ.: “Издательский дом “Вильямс, 2001. 384 с.: ил.--Парал. Тит. Англ.

7. Кнут Д. Искусство программирования для ЭВМ т.1 3, М.: Мир, 1976. – 384 с.

8. Криницкий А.Н. Алгоритмы вокруг нас.М.: Наука, 1977 г.

9. Вирт Алгритмы+структуры данных = программы, Пер. с английского - М.: Мир, 1985. 300 с.

10. Климова Л.М. PASCAL 7.0, Практическое программирование. Решение задач, Учебно методическое издание, М.: Кудиц-Образ, 2000 г.

11. В.Н.Пильщиков. Сборник упражнений по языку Паскаль.Учебное пособие для вузов, - М.: Наука, 1989. – 160 с.

 


 


[1] При вводе данных в строковые поля предусмотреть преобразование их к формату: первая буква большая, остальные маленькие)







Дата добавления: 2015-10-01; просмотров: 350. Нарушение авторских прав; Мы поможем в написании вашей работы!



Картограммы и картодиаграммы Картограммы и картодиаграммы применяются для изображения географической характеристики изучаемых явлений...

Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...

Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...

Философские школы эпохи эллинизма (неоплатонизм, эпикуреизм, стоицизм, скептицизм). Эпоха эллинизма со времени походов Александра Македонского, в результате которых была образована гигантская империя от Индии на востоке до Греции и Македонии на западе...

Демографияда "Демографиялық жарылыс" дегеніміз не? Демография (грекше демос — халық) — халықтың құрылымын...

Субъективные признаки контрабанды огнестрельного оружия или его основных частей   Переходя к рассмотрению субъективной стороны контрабанды, остановимся на теоретическом понятии субъективной стороны состава преступления...

ИГРЫ НА ТАКТИЛЬНОЕ ВЗАИМОДЕЙСТВИЕ Методические рекомендации по проведению игр на тактильное взаимодействие...

Реформы П.А.Столыпина Сегодня уже никто не сомневается в том, что экономическая политика П...

Виды нарушений опорно-двигательного аппарата у детей В общеупотребительном значении нарушение опорно-двигательного аппарата (ОДА) идентифицируется с нарушениями двигательных функций и определенными органическими поражениями (дефектами)...

Studopedia.info - Студопедия - 2014-2024 год . (0.013 сек.) русская версия | украинская версия