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

Урок № 25. Стандартные процедуры и функции при работе с файлами

Читайте также:
  1. A. для временного замещения выделительной функции почек
  2. A. Характеристика нагрузки на организм при работе, которая требует мышечных усилий и энергетического обеспечения
  3. File — единственный объект в java.io, который работает непосредственно с дисковыми файлами.
  4. II. Выполнение процедуры
  5. II. Выполнение процедуры
  6. II. Выполнение процедуры
  7. II. Выполнение процедуры
  8. II. Выполнение процедуры.
  9. II. Выполнение процедуры.
  10. II. Выполнение процедуры.
  11. II. Выполнение процедуры.
  12. II. Выполнение процедуры.

Чтение и запись - две самые распространенные операции, выполняемые при работе с файлами. Для их осуществления применяются специальные функции файлового ввода/вывода.

Итак, для выполнения операции чтения или записи необходимо произвести следующие действия:

1. Объявить файловую переменную необходимого типа.

2. При помощи функции AssignFile связать эту переменную с требуемым

файлом.

3. Открыть файл при помощи функций Append, Reset, Rewrite.

4. Выполнить операции чтения или записи. При этом, в зависимости от сложности задачи и структуры данных, может использоваться целый ряд вспомогательных функций.

5. Закрыть файл при помощи функции СloseFile.

Для контроля за текущей позицией в файле применяются две основные функции. Функция EOF(F) возвращает значение True, если достигнут конец файла. Функция EOLN(F) аналогично сигнализирует о достижении конца строки. Естественно, в качестве параметра в функции необходимо передавать файловую переменную.

Процедура Seek(var F; N: Longint); - обеспечивает смещение текущей позиции на N элементов. Размер одного элемента в байтах зависит от типа данных файла (от типизированной переменной).

Erase(f) - удаляет файл

FilePos(f) - возвращает текущую позицию чтения/записи в файл

Flush(f) - сбрасывает кэшированные файловые операции на диск

Rename(f, 'MyNewFileName.txt') - переименование файлов

Truncate(f) - файл обрезается до текущей позиции чтения/записи.

 

Пример 1. Дан текстовый файл с набором символов. Проверить, есть ли в файле сочетание символов «abcdef», входящих в строку.

Program Stroki;

label l1;

Var

t,K:string;

i,l:integer;

f:text;

Begin

assign(f,'c:\str.txt');

reset(f);

readln(f,t);

l:=0;

for i:=1 to length(t) do

begin

k:=copy(t,i,6);

if k='abcdef' then l:=1;

end;

if l=1 then writeln('sochetanie "abcdef" vhodit v stroky')

else write('sochetanie "abcdef" ne vhodit v stroky');

readln;

end.

Пример 2. Имеется файл, содержащий массив из 10 вещественных чисел. Найти и вывести на экран все отрицательные элементы и сумму их квадратов.

program pr1;

var

X:array[1..10] of real;

i:integer;

Summa:real;

f:text;

begin

Summa:=0;

assign(f,'c:\tyh\ins.txt');

reset(f);

i:=1;

while not eof(f) do

begin

readln(f,X[i]);

if x[i]<0 then

begin

Summa:=Summa+X[i]*X[i];

writeln('x[',i:2,']=',' ',X[i]:8:3, ' Summa= ',summa:8:3);

i:=i+1;

end;

end;

readln;

close(f);

end.

 

Пример 3. Дан файл с именем «shisla.txt», содержащий целые числа. Проверить, является ли файл упорядоченным (отсортированным).

program hhh;

var

f:text;

n,i,K:integer;

begin

assign(f,'shisla.txt');

reset(f);

readln(f,N);

K:=N;

while not eof(f) do

begin

readln(f,N);

if K>N then

begin

writeln('file ne uporyadochen');

exit;

end

else

K:=N;

end;

writeln('file uporyadochen');

readln;

close(f);

end.

Пример 4. Дан файл, содержащий данные о сотрудниках: фамилия, год, месяц и день рождения. Выбрать и записать в другой файл данные тех сотрудников, которые родились в год быка, а затем выбрать тех сотрудников, которые родились осенью.

program t2;

label l1;

type

sotryd1=record

fam:string[8];

godrog:integer;

mes:integer;

den:integer;

end;

var

f1,f:text;

sotryd:sotryd1;

i:integer;

begin

assign(f,'a:\ishod.txt');

reset(f);

assign(f1,'a:\vish.txt');

append(f1);

writeln(f1,'Список сотрудников, родившихся в год быка: ');

while not eof(f) do

begin

with sotryd do readln(f,fam,godrog,mes,den);

for i:=1 to 10 do

begin

if sotryd.godrog=1901+i*12 then

begin

writeln(f1,sotryd.fam,sotryd.godrog);

goto l1;

end;

l1: end;

end;

writeln(f1,'Список сотрудников, родившихся осенью');

reset(f);

while not eof(f) do

begin

with sotryd do readln(f,fam,godrog,mes,den);

if (sotryd.mes=9) or (sotryd.mes=10) or (sotryd.mes=11) then

writeln(f1,sotryd.fam,sotryd.mes);

end;

close(f);

close(f1);

end.

Пример 5. Составить программу для создания типизированного файла, содержащего информацию о студенте: имя, возвраст, является ли читателем городской библиотеки, № зачетки, группа.

program F_stud;

type

strud=record

name:string[8];

Age:integer;

Membbibl:boolean;

N_zachetki:integer;

Gruppa:string[4];

end;

var f:file of stud;

student:stud;

begin

AssignFile(f, 'c:\MyFile.rec');

Rewrite(f);

student.Name:= 'Vitaly'; // или readln(student.name);

student.Age:= 17; // или readln(student.Age);

student.Membbibl:= True; // или readln(student.Membbibl);

student.N_zachetki:= 12345; // или readln(student.N_zachetki);

student.gruppa:= ‘2T2’; // или readln(student.gruppa);

Write(f, student);

Closefile(f);

End.

 


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.008 сек.)