slide1
Download
Skip this Video
Download Presentation
Файловая переменная

Loading in 2 Seconds...

play fullscreen
1 / 25

Файловая переменная - PowerPoint PPT Presentation


  • 133 Views
  • Uploaded on

Файловая переменная. Файл – совокупность данных, записанная во внешней памяти под определенным именем. Любой файл имеет три характерные особенности: уникальное имя , что дает возможность программе работать одновременно с несколькими файлами;

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Файловая переменная' - krystyn-norb


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide2
Файл– совокупность данных, записанная во внешней памяти под определенным именем.
  • Любой файл имеет три характерные особенности:
    • уникальное имя, что дает возможность программе работать одновременно с несколькими файлами;
    • он содержит компоненты одного типа, кроме файлового;
    • длинавновь создаваемого файла никак не оговаривается при его объявлении и ограничивается только ёмкостью устройств внешней памяти.
slide3
Файл в Турбо - Паскале

представляетсобой последовательность элементоводноготипа.

В отличие от массивадлина файла (кол - во элементов) не задается, место элемента не задается индексом и каждый элемент становится доступным после перебора всех предыдущих элементов (последовательный доступ).

slide4
Файлы и файловые переменные

Входной файл (например, vhod.pas)

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

Программа

Выходной файл

(например, vihod.pas)

slide5
Type<имя_типа>=<тип_компонентов>;

Var <имя_файловой_переменной> : file of <имя_типа>;

Файлы

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

можно рассматривать как последовательность символов, разбитую на строки длиной от 0 до 256 символов

Var F : text;

Типизированные файлы

файлы определенного типа. Чаще всего это файлы, состоящие из записей. Они используются для создания различных баз данных

Type FileRec=record

… end;

Var F:file of FileRec;

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

не имеют строго определенного типа, рассматривается в Паскале как совокупность символов или байтов.

Var F : file;

Описание файлового типа
slide6
Связь файла с файловой переменной

ASSIGN(<файловая переменная>,<имя файла>);

Const

name=‘c:\dir\subdir\out.txt’;

Var f:text;

Begin … assign(f,name);

slide7
Инициацияфайла

Инициировать файл - указать для него направление передачи данных.

Файл можно инициировать для

  • чтения,
  • записи,
  • дозаписи.

Инициация файла для чтения -

RESET(<файл. пер.>);

Инициация файла для записи-

WRITE(<файл. пер.>,<сп. вывода>);

REWRITE(<файл. пер>);

Инициация файла для дозаписи -APPEND(<файл. пер.>); - только текстовый файл!

slide8
Проверка связи с файлом

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

Пример:

Var f:text;

St:String;

BEGIN Write(‘Введите имя файла: ’);

Readln(St);Assign(f,St);

{$I-} {Отключить контроль ввода-вывода}

Reset(f); {Открыть файл}

{$I+} {Включить контроль ввода-вывода }

slide9
If IOResult = 0 then begin

Writeln(‘Файл существует и нормально открыт’);

Close(f); end

Else Writeln(‘Файла с именем’+St+’ на диске нет’);

END.

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

slide10
Закрытиефайла

процедура

Close(<имя_файловой переменной>);

slide11
Текстовый файл
  • Текст делится на строки. При определении длины строки необходимо учитывать формат листа или размер монитора;
  • Текст может содержать много строк;
  • Каждая строка заканчивается символами: #13 –возврат каретки, #10 – перевод строки.
slide13
Создание текстового файла

Задача. Дан текстовый файл f. Используя файловую переменную, записать содержимое этого файла в другой файл.

Решение: program tekct;

uses crt;

var

i:integer;

st: string[20];

g,f:text;

slide14
BEGIN clrscr;

assign(f,‘d:\k11a_2007\in1.txt'); assign(g,'d:\k11a_2007\out.txt');

{$I-} reset(f); rewrite (g){$I+}

if ioresult<>0 then begin

writeln('no file'); halt end;

i:=1;

repeat readln(f,st);

writeln(i,' ',st); writeln(g,st); inc(i) until eof(f); close(f); close(g);

End.

slide15
Задача. Дан текст. Напечатать номер строки с максимальным количеством символов.

program tekct1;

uses crt;

var

k,i,p,max:integer;

st: string[20];

f:text;

label 1;

BEGIN clrscr;

assign(f,'d:\classes\class11x\in1.txt');

slide16
{$I-} reset(f);{$I+}

if ioresult<>0 then begin

writeln('no file'); goto 1 end;

i:=1; p:=0;

repeat readln(f,st);

writeln(i,' ',st); k:=ord(st[0]);

if k>max then begin max:=k;

p:=i end; inc(i) until eof(f) ;

writeln('p=',p); close(f);

1:; end.

slide17
Стандартные файлы ввода/вывода

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

Файловая переменная inputсвязана с клавиатурой, а файловая переменная output– с экраном дисплея.

Эти файлы всегда считаются открытыми.

slide18
{$I-} reset(f);{$I+}

if ioresult<>0 then begin

writeln('no file'); goto 1 end;

i:=1; p:=0;max:=0;

repeat readln(f,st);

writeln(i,' ',st); k:=ord(st[0]);

if k>max then begin max:=k;

p:=i end; inc(i) until eof(f) ;

writeln('p=',p); close(f);

1: end.

slide19
Текстовыефайлы,содержащиечисла
  • Особенностью работы с текстовыми файлами является то, что параметры, значения которых вводятся и выводятся с помощью процедур READили WRITE, могут быть не только типа CHAR или STRING, но и других простых типов:
  • целых, вещественных типов при вводе;
  • целых, вещественных и логических типов при выводе.
  • Эти процедуры могут также работать и с ASCII-строками.
  • Имеется две стандартные файловые переменные для текстовых файлов, которые автоматически открываются при запуске программы и автоматически закрываются после работы:
  • INPUT – по умолчанию связанная с клавиатурой;
  • OUTPUT - по умолчанию связанная с экраном дисплея.
slide20
ПРИМЕРЫ

1.

Считать файл и найти сумму цифр, встречающихся в нём.

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

k:=ORD( c ) - ORD(‘0’);

slide21
Стандартные файловые переменные:

INPUT – для чтения данных с клавиатуры

OUTPUT – для вывода данных на экран

program my_file;

Var

F:text;

Ch:char:

begin assign(input,'d:\programs\in.pas');

{$I-}reset(input); {$I+}

If Ioresult <>0 then

Begin write(‘нет файла’); exit;

while not eof do begin

read(ch);

Write(ch);

end;

close(input);

end.

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

slide22
Пример1.

Дан текстовый файл, содержащий целые числа.

Найти количество чисел в файле.

program prim1;

uses crt;

Var I,k:integer;

begin clrscr;

assign(input,'d:\programs\in.pas');

reset(input);

k:=0;

while not eof do begin

read(i);

inc(k);end;

close(input);

write('k=',k);

readkey

end.

slide23
program prim2;

uses crt;

Vari,j,k:integer;

begin clrscr;

assign(input,'d:\classes\in.pas');

reset(input);k:=0;

repeat

j:=0;

repeat

inc(k);inc(j);

read(i);write(i,' ');

until eoln;

writeln('j=',j)

until eof;

close(input); write('k=',k);

readkeyend.

Пример 2

Дан текстовый файл, содержащий целые числа.

Найти количество чисел в файле и в каждой строке.

slide24
Program prim3;

uses crt;

Varp,k,i,mf,ms:integer;

begin clrscr;

assign(input,'ff1.txt');

reset(input);

mf:=-32768;k:=0;

repeat

ms:=-32768;

repeat

read(i);write(i,' '); inc(k);

if i>ms then ms:=i;

if i>mf then begin mf:=i;p:=k end

until eoln;

writeln('ms=',ms);

until eof;

close(input);

write('mf=',mf,'p=',p); readkey

end.

Пример 3

Дан текстовый файл, содержащий целые числа.

Найти максимальный элемент в файле и его номер в файле, а также максимальный элемент в каждой строке.

ad