Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции ТП.docx
Скачиваний:
9
Добавлен:
19.04.2015
Размер:
47.01 Кб
Скачать

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

Текстовый файл – в паскале как совокупность строк переменной длины

Доступ к каждой строке возможен только последовательно, начиная с первой

Служебные символы:

  1. #13 – cr(carragereturn)write(#13); {Переход на начало строки}

  2. #10 – lf(linefit)write(#10) {переход на новую стоку}

  3. #9 –Ht {Горизонтальная табуляция}

  4. #26– EOF (end of line)

  5. #32 –SP {Пробел}

Процедуры и функции для текстовых файлов

  1. Procedure reset(var f) {ОТкрывает}

  2. Procedure rewrite (var f) {пЕрезапись}

  3. Procedure append (var f)

Var f:text;

Begin

Assigfile(f,’1.txt’);

Append(f);

Write(f,’.’);

Closedile(f);

End.

  1. Procedure settextbuf (var f:text; var buf; [size:word {необязательно}]); {Позволяет установить буфер ввода вывода для текстового файла}

Var buffer:array[1..4096] of char;

F:text;

Filename:string;

Assignfile(f,filename);

Settextbuf(f,buffer,4096);

Reset(f);

{Использывать только тогда, когда фаил закрыт}

  1. Procedure read(var f,v1);

    1. Параметры считывания не могут быть переменные типа BooleanИ перечислемого типа

    2. Если параметрами считывания являются символы, то при вызове процедуры readвыполняется чтение одного символа, и значение символа присваиваетсяv{}. Если указатель файла достиг конца очередной строки то результатом чтения будет символ с кодом 13, а если указатель достигнет конца файла то результатом чтения будет символ с кодом 26

    3. Если считывание осуществляется с readln, то после считывания одного символа указатель переставляется за символEOL, тоесть на начало другой строки

    4. При считывание переменных типа string[N] с позиции курсора считывается строка длинойN. При использовании процедурыread, признакEOLне позволит проитать дальше. Обязательно использование процедурыreadln;

Var f:text; str:string;

Begin

Assignfile(f,’1.txt’);

Reset(f);

While not eof(f) do begin

Read(f,str);{readln} writeln(str);

End;

Close(f);

End.

    1. При считывании числовых данных, процедура readвыделяет подстроку которая может быть преобразована в число, вырезая из нее пробелы, символы табуляции, и тому подобное. Если при пропуске пробелов встретится символeof, то переменная получает значения ноль.

{Считывания массива данных. }

Const n=100;

Var f:text; I:integer;

Mas:array[1..n] of real;

Begin

Assignfile(f,1.txt,);

Reset(f); i:=1;

While not eof (f) and(i<=n) do begin

Read(f,mas[i]); inc(i);

End;

Closefile(f);

End.

  1. Procedure write (var f, v1);

Var f:text; ch:char; st:string;

X:integer; r:real;

……………………………………..

Write(f,ch:10);

Write(f,st:100);

Write(f,x:5); write(f,r::8:2);

  1. FunctionEOLN(varf:text):Boolean; {Возвращает ТРУ если указатель стоит на признаке конец строки}

  2. FunctionseekEOF(varf:text):boolean; {Возвращает значение ТРУ если можно достичь конца файла минуя пробелы табуляции и признаки конца строки}

  3. FunctionseekEOLN(varf:text):Boolean; {Возвращает тру если можно достичь конца строки минуя лишь пробелы и символы табуляции}

Способы считывания

Var f:text; n:integer;

Begin

Assignfile(f,’text.txt’);

Rewrite(f);

Writeln(f,’ 11 22 33 44 ‘);

Writeln(f,’ 55 66 77 88 ‘);

Close(f);

Способы:

  1. способ

Reset(f);

While not eof(f) do begin

Read(f,n); write(n:4);

End;

  1. Способ

While not seekEOF(f) do begin

Read(f,n); write(n:4);

End;

Writeln;

Close(f);

  1. Способ

Reset(f);

While not eoln(f) do begin

Read(f,n); write(n:4);

End;

Writeln;

Closefile(f);

Reset(f);

While not seekeoln(f) do begin

Read(f,n); write(n:4);

Writeln;

Closefile;

  1. Способ

Reset(f);

While not eof do begin

While not eoln(f) do begin

Read(f,n); write(n:4);

End;

End;

Closefile(f);

  1. Способ

Reset(f);

While not seekeof do begin

While not seekeoln(f) do begin

Read(f,n); write(n:4);

End;

Writeln;

End;

Closefile(f);

Пример: какой то там пример я нифига не запсиал ибо у меян шаблоны сбились.