Similar presentations:
Файл - именованная область внешней памяти ЭВМ
1.
Файлы2.
Файл- именованная область
внешней памяти ЭВМ,
хранящая
совокупность данных.
3.
Особенности файлов➢ Файл имеет имя (до 8 лат. букв, цифр
или символов !, @, #, $, %, ^, &, (, ), `, ~, -, _ и
после точки – расширение до 3 символов.
Перед именем можно указать путь к файлу)
➢ Файл содержит компоненты
одного типа
➢ Длина создаваемого файла не
оговаривается при его объявлении, а
ограничивается только ёмкостью
устройств внешней памяти ЭВМ
4.
Файл можно представить какпотенциально бесконечный список
значений одного типа.
элемент1 элемент2 элемент3
…
Текущий указатель
В любой момент времени
программе доступен только один
элемент файла, на который
ссылается текущий указатель.
5.
По способу доступа кэлементам различают
➢ Файлы последовательного
доступа (к элементам обеспечивается
доступ в той же последовательности, в
которой они записывались)
➢ Файлы прямого доступа (доступ к
элементам осуществляется по адресу
элемента)
6.
Обмен данными с файломосуществляется с помощью
переменных файлового типа.
Типы файлов (файловых
переменных)
➢ Текстовые
➢ Типизированные
➢ Нетипизированные
7.
Формат описания файловvar <имя ф. пер.>: text ;
{текстовый файл}
var <имя ф. пер.>: file of <тип>;
{типизированный файл}
var <имя ф. пер.>: file ;
{нетипизированный файл}
8.
Примерыvar
f1 : text;
f2 : file of integer;
f3 : file;
9.
Процедуры ифункции для
работы с
файлами
10.
1. Процедура, связывающаяфайловую переменную с
конкретным файлом.
assign(f ,<имя файла>);
Пример
assign(f1,‘c:\tp\10b\file.dat’);
11.
2. Процедура, открывающаясуществующий файл для
чтения.
reset(f);
12.
3. Процедура, создающая иоткрывающая новый файл
для записи. (Если файл ранее
содержал данные, то они
уничтожаются).
rewrite(f);
13.
4. Процедура, открывающаясуществующий файл для
добавления. (Только для
текстовых файлов).
append(f);
14.
5. Процедура, закрывающаяфайл с сохранением в нем
данных.
close(f);
15.
6. Процедура,переименовывающая
неоткрытый файл.
rename(f ,<новое имя файла>);
16.
7. Процедура, удаляющаянеоткрытый файл.
erase(f);
17.
8. Функция, возвращающаяTrue, если получен признак
конца файла, иначе – False.
eof(f)
18.
9. Функция, возвращающая0, если открытый файл
существует, иначе – др.
целое число.
(Работает с директивой
отключения стандартной
проверки {$I-}).
ioresult
19.
Текстовые файлыМогут содержать строки,
символы и числа любого типа.
Перед записью в файл
внутреннее представление
переменных преобразуется в
последовательность символов,
т. е. текст.
20.
Процедуры ифункции для
работы с
текстовыми
файлами
21.
1. Процедуры вводазначений переменных из
файла.
read(f,<список переменных>);
readln(f,<список переменных>);
22.
2. Процедуры выводазначений выражений в
файл.
write(f,<список выражений>);
writeln(f,<список выражений>);
23.
3. Функция, возвращающаяTrue, если получен признак
конца строки, иначе – False.
eoln(f);
24.
Типизированные файлыПозволяют организовать
прямой доступ к компоненту по
его порядковому номеру.
Перед первым обращением к
процедурам ввода-вывода
указатель файла стоит в его
начале и указывает на первый
компонент с номером нуль.
25.
Типизированные файлытакже используют процедуры
read(f,<список пер.>) и
write(f,<список выр.>).
Переменные и выражения в
списках ввода-вывода должны
иметь тот же тип, что и
компоненты файла.
26.
Процедуры ифункции для
работы с
типизированными
файлами
27.
1. Процедура, смещающаяуказатель на компонент с
номером N (выражение типа
longint).
seek(f, N);
28.
2. Процедура, удаляющаячасть файла с текущей
позиции до его конца.
truncate(f);
29.
3. Функция, возвращающаяколичество компонентов
файла (типа longint).
filesize(f);
30.
4. Функция, возвращающаяномер текущего элемента
(типа longint).
filepos(f);
31.
Нетипизированные файлыПозволяют организовать
высокоскоростной обмен данными.
Вместо процедур read и write
используются процедуры
blockread и blockwrite,
позволяющие определять
параметры буферов,
использующихся при обмене
данными.
32.
Примеры работы с файлами33.
Пример записи в файл чисел от 1 до 10:program zapisy_v_file;
var i: integer;
var f: file of integer;
begin
assign (f,'c:\proba.dat');
rewrite (f);
for i:=1 to 10 do
write (f, i);
close(f);
end.
34.
Пример чтения из файла:program chtenie_iz_fila;
var i,a: integer;
var f: file of integer;
begin
assign (f,'c:\proba.dat');
reset (f);
for i:=1 to 10 do
begin
read (f, a);
writeln(a);
end;
close(f);
end.
35.
Работа с текстовыми файлами:Пример записи в файл 3-х строк, введенных пользователем:
program zapisy_v_file;
var i: integer;
var a: string;
var f: text;
begin
assign (f,'c:\proba.txt');
rewrite (f);
for i:=1 to 3 do
begin
readln(a);
writeln(f, a);
end;
close(f);
end.
36.
Чтение данных из файла неизвестной длины:Применяется метка определения окончания
файла EOF(<файл>).
NOT EOF(f)
program chtenie_iz_fila;
var a: integer;
var f: file of integer;
begin
assign (f,'c:\proba.dat');
reset (f);
while NOT EOF (f) do
begin
read (f, a);
writeln(a);
end;
close(f);
end.
В текстовом файле в ABC-Pascal каждая строка
имеет метку окончания EOLN(<файл>),.
program chtenie_iz_fila;
var i: integer;
var a: string;
var f: text;
begin
assign (f,'c:\proba.txt');
reset (f);
while NOT EOLN(f) do
begin
readln(f, a);
writeln(a);
end;
close(f);
end.
37.
1.Выведите в файл “c:\kvadrat.dat” квадраты чиселзаданного диапазона.
2.Считайте данные из файла “c:\kvadrat.dat” и
выведите на экран.
3.Организуйте ввод данных об учащихся с клавиатуры
с сохранением в единый файл. Количество учащихся
задается в программе. Данные: фамилия, имя, класс.
4.Организуйте вывод данных об учащихся из файла в
другой программе.
5.Измените программу так, чтобы при повторном
запуске программы данные могли добавляться к уже
имеющимся.
38.
Чтение строк из файлаСлово или строку файла можно представить как
одномерный массив символов, тогда каждый символ можно
представить как элемент массива
информатика
A [1] :=и;
A[3] :=ф;
Используя условный оператор можно читать из файла
заданные строки (например слова на заданные буквы)
39.
Создать программу которая выбирает изфайла слова на заданную букву
40.
var i,s,v: integer;a,b,c:string;
var f: text;
begin
Writeln ('Покажи слова на букву');
assign (f,'слова.txt');
Reset(f);
read(b);
while NOT EOLN(f) do
begin
readln(f,a);
if a[1]= b then
writeln(a);
end;
close(f);
end.
41.
Создать программу которая выводитв файл данные по образцу.