Процедуры для работы с файлами

Процедуры для работы с файлами

Read(f,x);

write(f,’ ‘);

assign(f,’input.txt’);

reset(f) –для чтения

rewrite(f) –для записи

close(f);

rename(f,’output.txt’);

Erase(f) – delete

EOF –конец строчки

Текстовые файлы

Дадим определение текстового файла. Текстовый файл – это файл в каком:

1) информация представляеться ASCIIкодами

2) порции инфы могут делить на строчки

3) признаком конца строчки CR(#13)который может быть добавлен эмблемой Процедуры для работы с файлами LF(#10)

4) конец файла ^z(#26)

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

Append(var f:text) –она приминима к имеющимся текстовым файлам тоесть этот файл не стираеться, как при выполнение Rewrite а открыаветься для Процедуры для работы с файлами дозаписи элемента в конец файла.

EOLn(var f:text) –воспринимает значение правда если текущая позиция конец строчки либо конец файла.

Program//выводит саму себя

Var

s:string;

f:text;

Begin

assign(f,’ex_27.pas’);

reset(f);

While not EOF(f) do

Begin

readln(f,s);

writeln(s);

end;

close(f);

end;

Типизированные Процедуры для работы с файлами файлы

File of <тип компонент> –т.е хоть какой тип, не считая типа файл. При работе с файлом есть два шага: создание и внедрение файла. Эти два шага могут быть реализованы, как в различных программка так и в одной

Program ex_28;//сделать файл целых чисел из диапозона m n

Var

i,m,n:integer Процедуры для работы с файлами;

f:file of integer;

Begin

assign(f,’Int.dat’);

rewrite(f);

write(‘M=’);readln(m);

write(‘N=’);readln(n);

for i:=m to n do

write(f,i);

close(f);

End.

IOResult –возварщаетусловный признак последней операции ввода вывода. Если опреация закончилась удачно то выдаст 0. Функйия IOResultдоступна только при отключонном контроле Процедуры для работы с файлами ошибок ввода вывода {$I – } – off {$I+} – onавтоконтроль. Если автоконтроль отключен, а операция ввода – вывода привела к ошибке, устанавливаеться флаг ошибки и следующие обрашения к вводу выводу блокируються пока не будет вызвана функция IOResult.

Program ex_29;//по значениям целых чисел из файла int.dat получить вещественный файл //Re.dat удваивая каждую компоненту

Var

k:integer Процедуры для работы с файлами;

x:real;

f:file of integer;

g:file of real;

Begin

assign(f,’Int.dat’);

{$I – }

reset(f);

{$I+}

if IOResult=0 then

Begin

assign(g,’re.dat’);

rewrite(g);

While notEOF(f) do

Begin

read(f,k);

x:=k*2.;

write(g,x);

end;

close(f);

close(g);

reset(g);

While notEOF(g) do

Begin

read(g Процедуры для работы с файлами,x);

write(x:6:1);

end;

writeln();

End

Else

Begin

writeln(‘Error:’,IOResult);

end;

End.

Некие коды ошибок ввода – вывода:

2 – файл 404

3 – путь 404

4 – очень много открытых файл

100 – ошибка чтения диска, поптыка чтения из вполне прочитанного файла.

101 – ошибка записи на диск

102 – файлу не присвоено имя

103 – файл не открыт

Безтиповые файлы, операции ввода – вывода

Эталон паскаля, вводит особенный файловый тип являеться на Процедуры для работы с файлами самом деле, обобщенным файловым типом, который будем именовать безтиповым файлом.

Var

f:file;

Безтиповый файл – это массивное средство обработки, потому что позволяет манипулировать данными незадумываясь об их типе. С его помощью можно записывать на диск произвольные участки оперативки и считываться их с диска. Можно так – же преобразовывать данные безтипового Процедуры для работы с файлами файла в хоть какой формат посредствам приведения типов. Ввод – вывод для безтиповых файлов осуществляеться особыми процедурами: BlockRead and BlockWrite.Не считая этого расширяеться синтаксис процедур:

ReSet(var f:file; BufSize:word);

ReWrite(var f:file; BufSize:word);

BufSize – задает число байтов, обрабатываемых за одно воззвания, чем больше тем лучше. Малый блок Процедуры для работы с файлами который может быть записан либо прочитан 1 б. Наибольший размер 64к.

Поочередный и прямой доступ к файлу.

Естественный доступом к компонентам файла, являеться поочередный. Короче как массив. Но реализован и прямой доступ, который дает возможность пазиционирования на требуемую запись.

херачим ресунок

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

FileSize(var f:file):LongInt;//возврашает числа записей либо блоков в файле f.

FilePos(var f:file):LongInt;//возврашает номер записи в открытом Процедуры для работы с файлами файле f, предшествуюшей той, которая будет считана либо записана следующей операцией ввода – вывода.

Seek(var f:file;n:LongInt);// устанавливает текушей записью в файле f компоненту с номер N

Truncate(var f:file);//отсекает часть файла начиая с той позиции, которая была бы считанна следующей операцией.

Эти процедуры не применимы к текстовым Процедуры для работы с файлами файлам.

Пример.

Дан файл целых чисел, удалить компненту с данным номером. Воткнуть новый элемент в конец файла

Program std;

Type

TEL=integer;

TFile=file of TEL;

Var

l:integer;

f:Tfile;

Procedure Out_File(var g:TFile);

Var

x:TEL;

Begin

reset(g);

While not EOF(g) do

Begin

read(g,x);

write(x Процедуры для работы с файлами:3);

end;

writeln();

end;

Procedure Ins_Field(var g:TFile; R:TEL);

Begin

Seek(g,FileSize(g));

write(g,R);

end;

Procedure DelField(var g:TFile; k:integer);

Var

N,i:Integer;

x:TEL;

Begin

N:=FileSize(g);

if k<=N then

Begin

for i:=k to N – 1 do

Begin

seek(g,i); read(g,x);

seek(g,i Процедуры для работы с файлами – 1); write(g,x);

end;

truncate(g);

end;

end;

procedure MakeFile(var f:TFile);

Begin

rewrite(f);

write(f,1,2,3,4,5);

close(f);

end;

Begin

assign(f,'in.txt');

MakeFile(f);

reset(f);

Out_File(f);

DelField(f,2);

Out_File(f);

close(f);

End.

Модули

Модуль Unitв турбопаскале – это особым образом оформленная библиотека определений Процедуры для работы с файлами, типов, констант, переменных, а так – же процедур и функций. Модули в отличии от программки не может быть запущен на выполнение без помощи других он может только принимать участие для построения программки либо другого модуля. В отличии от фрагментов текстов программ подключаемых к программке при компиляции дерективы {$I имя файла} модуль Процедуры для работы с файлами за ранее компилируться независимо от программки.

Итог компиляции модуля являеться файл с расширением .TPV. Для подключения модуля к программке его имя нужно указать в дерективе Uses.

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

Общая структура модуля:

Unit имя модуля

Interface {начало раздела объявлений}

Uses …//раздел поключений других модулей

Сonst

Type

Var


procedura-opredeleniya-pobeditelej-konkursa.html
procedura-otbora-proektov-dlya-sponsorstva.html
procedura-podachi-zayavki-na-publikaciyu.html