Разделы презентаций


Файлы

Содержание

Файлы1 Типы файловФайл - любая именованная область внешней памятиХарактерные особенности: имя; содержит компоненты одного типа; длина файла не оговаривается при создании.Связано ли расширение файла с его содержимым?- НЕТРасширение файла позволяет

Слайды и текст этой презентации

Слайд 1Файлы
Типы файлов
Доступ к файлу
Текстовые файлы
Типизированный файлы
Нетипизированные файлы
Умная Йохансон
Варианты чтения файла

ФайлыТипы файловДоступ к файлуТекстовые файлыТипизированный файлыНетипизированные файлыУмная ЙохансонВарианты чтения файла

Слайд 2Файлы
1 Типы файлов
Файл - любая именованная область внешней памяти
Характерные особенности:

имя;
содержит компоненты одного типа;
длина файла не оговаривается при

создании.

Связано ли расширение файла с его содержимым?

- НЕТ

Расширение файла позволяет операционной системе определить необходимое для его запуска приложение. Без расширения ОС не сможет узнать, что и как именно ему нужно открыть.

Файлы1 Типы файловФайл - любая именованная область внешней памятиХарактерные особенности: имя; содержит компоненты одного типа; длина файла

Слайд 3Файлы
1 Типы файлов
Объявление файловой переменной:
= FILE OF ;

(типизированный)
= TEXT; (текстовый)
= FILE. (нетипизированный)
type
product = record

name: string;
code: word;
price: real;
end;
text80 = file of string[80];
var
f1: file of char;
f2: text;
f3: file;
f4: text80;
f5: file of product;
Файлы1 Типы файловОбъявление файловой переменной: = FILE OF ; 	(типизированный) = TEXT;		(текстовый) = FILE.		(нетипизированный)type product = record

Слайд 4Файлы
Типы файлов
Доступ к файлу
Текстовые файлы
Типизированный файлы
Нетипизированные файлы
Умная Йохансон
Варианты чтения файла




ФайлыТипы файловДоступ к файлуТекстовые файлыТипизированный файлыНетипизированные файлыУмная ЙохансонВарианты чтения файла

Слайд 5Файлы
2 Доступ к файлу
Файловая переменная связывается с именем файла:

ASSIGN (,

);
здесь – файловая переменная (правильный идентификатор объявленный в

программе как переменная файлового типа);
<имя файла> – текстовое выражение, содержащее имя файла.

const
name=’e:\work\try.txt’;
var
f: Text;
begin
assign(f,name);
...

Файлы2 Доступ к файлуФайловая переменная связывается с именем файла:ASSIGN (, );здесь – файловая переменная (правильный идентификатор объявленный

Слайд 6Файлы
2 Доступ к файлу
После связывания файловой переменной с файлом процедура

работы с файлом состоит из следующих этапов:
инициация файла –

указание направление передачи данных;
чтение и/или запись информации; (может повторяться сколько угодно раз)
закрытие файла.

Чтение файла:
RESET(<ф.п.>);

Перезапись файла:
REWRITE(<ф.п.>);

Добавление в файл:
APPEND(<ф.п.>);

Закрытие файла:
CLOSE (<ф.п.>);

Файлы2 Доступ к файлуПосле связывания файловой переменной с файлом процедура работы с файлом состоит из следующих этапов:

Слайд 7Файлы
2 Доступ к файлу
Специальные логические функции:
EOF(): boolean – возвращает TRUE

, если файловый указатель стоит в конце файла.
EOLN(): boolean –

возвращает TRUE , если файловый указатель стоит в конце строки

Чтение из текстового файла:
READ (<ф.п.>, <сп. ввода> )
READLN (<ф.п.>, <сп. ввода> )

Запись в текстовый файл:
WRITE (<ф.п.>, <сп. вывода> )
WRITELN (<ф.п.>, <сп. вывода> )

Файлы2 Доступ к файлуСпециальные логические функции:	EOF(): boolean – возвращает TRUE , если файловый указатель 		стоит в конце

Слайд 8Файлы
Типы файлов
Доступ к файлу
Текстовые файлы
Типизированный файлы
Нетипизированные файлы
Умная Йохансон
Варианты чтения файла




ФайлыТипы файловДоступ к файлуТекстовые файлыТипизированный файлыНетипизированные файлыУмная ЙохансонВарианты чтения файла

Слайд 9Файлы
3 Текстовый файл
var
f: text;
s: string;
begin
assign(f,'myprog.pas');
reset(f);
while not eof(f) do

begin
readln(f,s);
writeln(s);
end;
close(f);
end.
Вывод на экран

исходного текста программы
Файлы3 Текстовый файлvar f: text; s: string;beginassign(f,'myprog.pas');reset(f);while not eof(f) do begin   readln(f,s);   writeln(s);

Слайд 10Файлы
3 Текстовый файл
const N = 5;
var
f: text;
m: array[1..N]

of real;
i: integer;
begin
assign(f,'prog.dat');
rewrite(f);
for i := 1 to N do

begin
m[i] := random * 10;
writeln(m[i]);//вывод на экран
write(f,m[i]);//вывод в файл
end;
close(f);
end.

Запись значений массива в файл

5.34014130259871
0.0751469703741125
9.14481708274447
2.01952238661215
6.81229438949949

На экране

Файлы3 Текстовый файлconst N = 5;var f: text; m: array[1..N] of real; i: integer;beginassign(f,'prog.dat');rewrite(f);for i := 1

Слайд 11Файлы
3 Текстовый файл
Содержимое файла prog.dat (в виде текста)
5.340141302598710.07514697037411259.144817082744472.019522386612156.81229438949949
Содержимое файла prog.dat

в виде бинарного файла
Почему файл занимает 82 байта?
В файле 82

символа по 1 байту на каждый символ
Файлы3 Текстовый файлСодержимое файла prog.dat (в виде текста)5.340141302598710.07514697037411259.144817082744472.019522386612156.81229438949949Содержимое файла prog.dat в виде бинарного файлаПочему файл занимает 82

Слайд 12Файлы
3 Текстовый файл
Изменим вывод в файл, вместо write(f,m[i]) writeln(f,m[i])
4.72753859810882
9.44486666444916
5.96698050665063
6.08366832886062
3.03903472751334
Содержимое файла

prog.dat (в виде текста)
Содержимое файла prog.dat в виде бинарного файла
Почему

файл занимает 90 байта?

Появились символы с 13 и 10
13 - CR (перевод каретки). Курсор перемещается к левому краю поля, не переходя на другую строку.
10 - LF (перевод строки). Курсор перемещается на следующую строку.

Файлы3 Текстовый файлИзменим вывод в файл, вместо write(f,m[i]) writeln(f,m[i])4.727538598108829.444866664449165.966980506650636.083668328860623.03903472751334Содержимое файла prog.dat (в виде текста)Содержимое файла prog.dat в

Слайд 13Файлы
3 Текстовый файл
var
f: text;
s: string;
begin
assign(f,'MyText.txt');
rewrite(f);
repeat
readln(s);
if length(s)>0

then writeln(f,s);
until length(s)=0;
close(f);
end.
Запись текста в текстовый файл

Файлы3 Текстовый файлvar f: text; s: string;beginassign(f,'MyText.txt');rewrite(f);repeat readln(s); if length(s)>0 then writeln(f,s);until length(s)=0;close(f);end.Запись текста в текстовый файл

Слайд 14Файлы
Типы файлов
Доступ к файлу
Текстовые файлы
Типизированный файлы
Нетипизированные файлы
Умная Йохансон
Варианты чтения файла




ФайлыТипы файловДоступ к файлуТекстовые файлыТипизированный файлыНетипизированные файлыУмная ЙохансонВарианты чтения файла

Слайд 15Файлы
4 Типизированный файл
Работа с типизированными файлами несколько отличается от работы

с текстовыми файлами, а именно:

уже существующий файл может быть

инициирован для чтения и записи процедурой RESET.

для чтения и записи используются соответственно процедуры READ и WRITE.

для работы с типизированными файлами могут использоваться процедуры и функции SEEK, FILESIZE, FILEPOS
Файлы4 Типизированный файлРабота с типизированными файлами несколько отличается от работы с текстовыми файлами, а именно: уже существующий

Слайд 16Файлы
4 Типизированный файл
Процедура SEEK. Смещает указатель файла к требуемому компоненту.

Формат обращения:
SEEK(, )
Здесь – выражение типа LONGINT,

указывающее новый номер компонента файла.
Функция FILESIZE. Возвращает значение типа LONGINT, которое содержит количество компонентов файла. Формат обращения:
FILESIZE(<ф.п.>)
Функция FILEPOS. Возвращает значение типа LONGINT, содержащее порядковый номер компонента файла, который будет обрабатываться следующей операцией ввода-вывода. Формат обращения:
FILEPOS(<ф.п.>)
Файлы4 Типизированный файлПроцедура SEEK. Смещает указатель файла к требуемому компоненту. Формат обращения:	SEEK(, )Здесь – выражение типа LONGINT,

Слайд 17Файлы
4 Текстовый файл
Заполнение типизированного файла
type
Person = record

name: string;

year: integer;
end;
var
f: file of Person;
Rec: Person;
yes: integer;
 begin
assign(f,'List.dat');
rewrite(f); {для добавления в файл reset(f); seek(f, filesize(f)); }
repeat
write('Введи фамилию : '); readln(Rec.name);
write('Введи год рождения : '); readln(Rec.year);
  write(f, Rec);
writeln('Добавить ещё одну запись? (1 - да, 0 - нет)'); readln(yes);
until yes<>1;
  close(f);
end.
Файлы4 Текстовый файлЗаполнение типизированного файлаtype Person = record      name: string;

Слайд 18Файлы
4 Типизированный файл
Вывод на экран содержимого типизированного файла
type
Person =

record
name: string;

year: integer;
end;
var
f: file of Person;
Rec: Person;
yes: integer;
 begin
assign(f,'List.dat');
reset(f);
while not eof(f) do
begin
read(f, Rec);
writeln(Rec.name, Rec.year:6);
end;
close(f);
end.
Файлы4 Типизированный файлВывод на экран содержимого типизированного файлаtype Person = record      name:

Слайд 19Файлы
Типы файлов
Доступ к файлу
Текстовые файлы
Типизированный файлы
Нетипизированные файлы
Умная Йохансон
Варианты чтения файла




ФайлыТипы файловДоступ к файлуТекстовые файлыТипизированный файлыНетипизированные файлыУмная ЙохансонВарианты чтения файла

Слайд 20Файлы
5 Нетипизированный файл

Файлы5 Нетипизированный файл

Слайд 21Файлы
5 Нетипизированный файл
//запись в файл 5 чисел типа shortint (1

байт -128..127)

const N = 5;
var
f1 : file;
arr :

array [1..N] of shortint ;
i : byte;
begin
arr[1] := 0;
arr[2] := 127;
arr[3] := -128;
arr[4] := -1;
arr[5] := 1;
assign(f1,'test.dat');
rewrite(f1);
for i := 1 to N do
write(f1,arr[i]);
close(f1);
end.

hex 00 – bin 0000 0000 dec 0
hex 7F – bin 0111 1111 dec 127
hex 80 – bin 1000 0000 dec 128
hex FF – bin 1111 1111 dec 255
hex 01 – bin 0000 0001 dec 1

Файлы5 Нетипизированный файл//запись в файл 5 чисел типа shortint (1 байт -128..127)const N = 5;var f1 :

Слайд 22Файлы
5 Нетипизированный файл
1 байт со знаком:
//опер. в доп. коде
127 +

1 = ?
127 : 0111 1111
1: 0000 0001
+: 1000 0000
обр: 1111 1111
прям: 1000 0000
ответ:

-128
Файлы5 Нетипизированный файл1 байт со знаком://опер. в доп. коде127 + 1 = ?127 :	0111 11111:	0000 0001+:	1000 0000обр:	1111

Слайд 23Файлы
5 Нетипизированный файл
//запись в файл 5 чисел типа smallint(2 байт

-32768..32767)
const N = 4;
var
f1 : file;
arr : array

[1..N] of smallint;
i : byte;
begin
arr[1] := 0;
arr[2] := 32767;
arr[3] := -1;
arr[4] := 16;
assign(f1,'test.dat');
rewrite(f1);
for i := 1 to N do
write(f1,arr[i]);
close(f1);
end.
Файлы5 Нетипизированный файл//запись в файл 5 чисел типа smallint(2 байт -32768..32767)const N = 4;var f1 : file;

Слайд 24Файлы
5 Нетипизированный файл
hex 00 00 – bin 0000 0000

0000 0000 dec 0
hex 7F FF –

bin 0111 1111 1111 1111 dec 32767
hex FF FF – bin 1111 1111 1111 1111 dec 65535
hex 00 10 – bin 0000 0000 0001 0000 dec 16

Младший байт
Старший байт

arr[1] := 0;
arr[2] := 32767;
arr[3] := -1;
arr[4] := 16;

Файлы5 Нетипизированный файл hex 00 00 – bin 0000 0000 0000 0000 dec   0 hex

Слайд 25Файлы
5 Нетипизированный файл
//запись в файл переменных разного типа
var
f1 :

file;
vr1 : single ;
vr2 : integer;
vr3 :

byte;
vr4 : string;
vr5 : boolean;
begin
vr1 := -12.5; vr2 := -56; vr3 := 32;
vr4 := 'абвг123'; vr5 := true;
assign(f1,'test.dat');
rewrite(f1);
write(f1,vr1); write(f1,vr2); write(f1,vr3);
write(f1,vr4); write(f1,vr5);
close(f1);
end.
Файлы5 Нетипизированный файл//запись в файл переменных разного типаvar f1 : file; vr1 : single ; vr2 :

Слайд 26Файлы
5 Нетипизированный файл
Содержимое файла
Single
-12.5
Integer
-56
Byte
32
String
абвг123 (кодировка CP1251)
Boolean
true

Файлы5 Нетипизированный файлСодержимое файлаSingle-12.5Integer-56Byte32Stringабвг123 (кодировка CP1251)Booleantrue

Слайд 27Файлы
5 Нетипизированный файл
Пример: Прочитать ID3(v1-v1.1) теги из mp3 файла

Файлы5 Нетипизированный файлПример: Прочитать ID3(v1-v1.1) теги из mp3 файла

Слайд 28Файлы
5 Нетипизированный файл
Структура программы для чтения метаданных:
открыть файл для

чтения;
отступить на 128 байт с конца файла;
прочитать заголовок;

если заголовок «TAG» - прочитать поля;
закрыть файл.
Файлы5 Нетипизированный файлСтруктура программы для чтения метаданных: открыть файл для чтения; отступить на 128 байт с конца

Слайд 29Файлы
5 Нетипизированный файл
var
f_music : file;
stag : string[3];
sTitle,sArtist,sAlbum

:string[30];
sYear : string[4];sComment :string[28];
fsize : int64; i :integer;
begin

assign(f_music, 'music.mp3'); reset(f_music);
fsize := FileSize(f_music); seek(f_music,fsize-128);
read(f_music,sTag);
writeln('Длина sTag 'length(sTag)); writeln('TAG - ',sTag);
read(f_music,sTitle); read(f_music,sArtist);
read(f_music,sAlbum); read(f_music,sYear);
read(f_music,sComment);
close(f_music);
writeln('Исполнитель - ',sArtist);
writeln('название трека - ',sTitle);
writeln('Альбом - ',sAlbum);
writeln('Год - ',sYear);
writeln('Коментарий - ',sComment);
end.
Файлы5 Нетипизированный файлvar f_music : file; stag : string[3]; sTitle,sArtist,sAlbum :string[30]; sYear : string[4];sComment :string[28]; fsize :

Слайд 30Файлы
5 Нетипизированный файл
Почему длина переменной sTag 84 символа?

Файлы5 Нетипизированный файлПочему длина переменной sTag 84 символа?

Слайд 31Файлы
5 Нетипизированный файл
var
f_music : file;
stag : array [1..3]

of byte;
sTitle, sArtist,sAlbum : array [1..30] of byte;
sYear

: array [1..4] of byte;
sComment : array [1..28] of byte;
fsize : int64; i :integer;
begin
assign(f_music, 'music.mp3');
reset(f_music);
fsize := FileSize(f_music);
seek(f_music,fsize-128);
read(f_music,sTag);
Файлы5 Нетипизированный файлvar f_music : file; stag : array [1..3] of byte; sTitle, sArtist,sAlbum : array [1..30]

Слайд 32Файлы
5 Нетипизированный файл
if Concat(chr(sTag[1]),chr(sTag[2]),chr(sTag[3]))='TAG' then
begin

read(f_music,sTitle); read(f_music,sArtist);
read(f_music,sAlbum); read(f_music,sYear);
read(f_music,sComment);

writeln('Содержимое ID3v1');
write('Исполнитель - ');
for i := 1 to 30 do write(chr(sArtist[i]));
writeln; write('название трека - ');
for i := 1 to 30 do write(chr(sTitle[i])); writeln;
write('Альбом - ');
for i := 1 to 30 do write(chr(sAlbum[i])); writeln;
write('Год - ');
for i := 1 to 4 do write(chr(sYear[i])); writeln;
write('Коментарий - ');
for i := 1 to 28 do write(chr(sComment[i])); writeln;
end
else writeln('ID3v1 не заполнен');
close(f_music);
end.
Файлы5 Нетипизированный файлif Concat(chr(sTag[1]),chr(sTag[2]),chr(sTag[3]))='TAG' then   begin   read(f_music,sTitle); read(f_music,sArtist);   read(f_music,sAlbum); read(f_music,sYear);

Слайд 33Файлы
5 Нетипизированный файл

Файлы5 Нетипизированный файл

Слайд 34Файлы
5 Нетипизированный файл
Пример: Вывести графическом режиме изображение, которое хранится в

файле
Структура файла
0 4 Смещение, с которого начинается само изображение
4 3*N Палитра, хранится три

составляющие цвета R, G, B
3*N+4 M Координаты точечного изображения (x,y)+цвет, 3 байта точку
Файлы5 Нетипизированный файлПример: Вывести графическом режиме изображение, которое хранится в файлеСтруктура файла0		4 	Смещение, с которого начинается само

Слайд 35Файлы
5 Нетипизированный файл
uses graphABC;
type
TColor = record
r,g,b : byte;
end;
TPoint =

record
x,y,c : byte;
end;

var
f: file;
offset: longword;
Color :

array of TColor;
point : array of TPoint;
i,j : longword;
Файлы5 Нетипизированный файлuses graphABC;typeTColor = record r,g,b : byte;end;TPoint = record x,y,c : byte;end;var f: file; offset:

Слайд 36Файлы
5 Нетипизированный файл
begin
assign(f,'pointpict.dat');
reset(f); //открываем для чтения
read(f,offset); // откуда начинается изображение
SetLength(Color,(offset-4)

mod 3+1); // кол-во цветов
for i := 0 to Length(Color)-1

do //заполним палитру
read(f,Color[i]);
i := 0;
while not eof(f) do //читаем точки
begin
SetLength(point,i+1);
read(f,point[i]);
i := i + 1;
end;
close(f);
Файлы5 Нетипизированный файлbeginassign(f,'pointpict.dat');reset(f); //открываем для чтенияread(f,offset); // откуда начинается изображениеSetLength(Color,(offset-4) mod 3+1); // кол-во цветовfor i :=

Слайд 37Файлы
5 Нетипизированный файл
//рисуем изображение
for i := 0 to Length(point)-1 do


begin
j :=

point[i].c;
SetPixel(point[i].x,point[i].y,RGB(color[j].r,color[j].g,color[j].b));
end;
SetWindowSize(30,30);
SaveWindow('wnd.bmp');
end.
Файлы5 Нетипизированный файл//рисуем изображениеfor i := 0 to Length(point)-1 do    begin

Слайд 38Файлы
Типы файлов
Доступ к файлу
Текстовые файлы
Типизированный файлы
Нетипизированные файлы
Умная Йохансон
Варианты чтения файла




ФайлыТипы файловДоступ к файлуТекстовые файлыТипизированный файлыНетипизированные файлыУмная ЙохансонВарианты чтения файла

Слайд 39Файлы
6 Умная Йохансон
- Это не JPEG. Это текстовый файл в

кодировке ASCII.
Выдумка сценаристов?

Файлы6 Умная Йохансон- Это не JPEG. Это текстовый файл в кодировке ASCII.Выдумка сценаристов?

Слайд 40Файлы
6 Умная Йохансон
JPEG файл 1
JPEG файл 2
JPEG файл 3
Что общего

у этих файлов?
- маркеры

Файлы6 Умная ЙохансонJPEG файл 1JPEG файл 2JPEG файл 3Что общего у этих файлов?- маркеры

Слайд 41Файлы
6 Умная Йохансон
Маркеры JPEG файла

Файлы6 Умная ЙохансонМаркеры JPEG файла

Слайд 42Файлы
6 Умная Йохансон
Вывод: по двоичному представлению можно определить это JPEG

или нет.
А является ли он текстовым в кодировке ASCII?
Особенности текстового

файла:
наличие пробелов (dec 32, hex 20)
CR+ LF (перевод каретки dec 13, hex 0D; перевод строки dec 10, hex 0A)
A-Z (hex 41 – 5A), a-z (hex 61 – 7A), 0 – 9 (hex 30 – 39)
Файлы6 Умная ЙохансонВывод: по двоичному представлению можно определить это JPEG или нет.А является ли он текстовым в

Слайд 43Файлы
6 Умная Йохансон

Файлы6 Умная Йохансон

Слайд 44Файлы
Типы файлов
Доступ к файлу
Текстовые файлы
Типизированный файлы
Нетипизированные файлы
Умная Йохансон
Варианты чтения файла




ФайлыТипы файловДоступ к файлуТекстовые файлыТипизированный файлыНетипизированные файлыУмная ЙохансонВарианты чтения файла

Слайд 45Файлы
7 Варианты чтения из файла
Чтение файла размеров 50.4 Мб
var
f

: file;
val : array [1..1] of byte;
begin
assign(f,'file.dat');
reset(f);

while not(eof(f)) do read(f,val);
close(f);
end.
Файлы7 Варианты чтения из файлаЧтение файла размеров 50.4 Мбvar f : file; val : array [1..1] of

Слайд 46Файлы
7 Варианты чтения из файла

Файлы7 Варианты чтения из файла

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика