Задания для самостоятельной работы

Тема: «ТЕКСТОВЫЕ ФАЙЛЫ».

Под файлом понимается либо именованная область внешней памяти ПК (ЖМД, ГМД и т.п.) либо логическое устройство. Файл служит для хранения информации.

Любой файл имеет три характерные особенности:

- имеет имя;

- содержит компоненты одного типа;

- размер файла ограничивается емкостью устройства внешней памяти.

Файловый тип или переменная файлового типа может быть задана одним из трех типов:

type <имя>=text <имя>=file of <тип> <имя>=file   var <имя>:text <имя>:file of <тип> <имя>:file     - текстовый файл; - типизированный файл; - не типизированный (или бинарный) файл.

 

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

С файловой переменной текстового файла необходимо совершить следующие действия:

А) она должна быть объявлена:

Var  <имя файловой переменной>: text;

Б) связана с именем физического файла процедурой ASSIGN: ASSIGN(<файловая переменная>,<дисковое имя файла>);

В) открыть файл для чтения процедурой RESET(<файловая переменная>) или для записи REWRITE (<файловая переменная>) или до записи в конец файла APPEND (<файловая переменная>).

С каждым файлом в конкретный момент времени можно работать или в режиме чтения или в режиме записи!!!!!!!!!!

Г) закрыть файл после завершения с ним работы процедурой CLOSE(<файловая переменная>);

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

В текстовом файле в конце строки ставится специальный признак конца строки EOLN (последовательность кодов ASCII 13 (CR) и 10 (LF)), а в конце файла признак его конца EOF (код ASCII 26).

Функция Eof(<файловая переменная>);возвращает значение True, если достигнут конец файла и False в противном случае.

EOLN(<файловая переменная>). Логическая функция, тестирующая конец строки. Возвращает TRUE, если маркер достиг конца строки.

 

Процедуры чтения информации из текстового файла:

 

READ(<файловая переменная>,<список ввода>),где " список ввода" – последовательность из одной или более переменных символьного, строкового типа или любого целого или вещественного типа. Кроме того, эту процедуру можно вызвать без параметра "список ввода", что приведет к пропуску текущего символа строки.

READLN(<файловая переменная>,<список ввода>),обеспечивает ввод символов, строк и чисел. Она идентична процедуре READ за исключением того, что после считывания последней переменной оставшаяся часть строки до маркера EOLN пропускается, поэтому следующее обращение к READLN или READ начинается с первого символа новой строки. Кроме того, эту процедуру можно вызвать без параметра "список ввода", что приведет к пропуску всех символов текущей строки.

 

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

 

WRITE(<файловая переменная>,<список вывода>),где " список вывода" – последовательность из одной или более переменных типа символьного, строкового или любого целого или вещественного типа.

WRITELN(<файловая переменная>,<список вывода>). Эта процедура полностью идентична процедуре WRITE за исключением того, что выводимая строка символов завершается маркером конца строки EOLN. При вызове этой процедуры можно опустит параметр " список вывода", то в этом случае в файл передается только маркер конца строки EOLN, а при выводе на экран приведет к переводу курсора в начало следующей строки.

 

Другие функции и процедуры работы с файлами.

 

    Процедура уничтожение файла:

ERASE(<файловая переменная>).Перед выполнением процедуры файл должен быть закрыт процедурой CLOSE.

    Логическая функция SEEKEOLN(<файловая переменная>). Пропускает все пробелы и знаки табуляции до маркера конца строки EOLN или до первого значащего символа и возвращает значение TRUE если маркер обнаружен.

Логическая функция SEEKEOF(<файловая переменная>). Пропускает все пробелы, знаки табуляции и маркеры конца строки EOLN или до маркера конца файла EOF или до первого значащего символа и возвращает значение TRUE если маркер конца файла обнаружен.

 

Пример оформления работы с текстовым файлом:

 

Const NameFile1=´Input.txt´;

    NameFile2=´Output.txt´;

Var input,output : text;

    …

Begin

    Assign(input,NameFile1);

    Reset(input);

    Assign(output,NameFile2);

    Rewrite(output);

    …

    Close(input);

    Close(output);

End.

 

Пример чтения данных (в виде строк) из файла и запись их в другой файл:

 

Const NameFile1=´Input.txt´;

    NameFile2=´Output.txt´;

Var input,output : text;

    S                : string;…

Begin

    Assign(input,NameFile1);

    Reset(input);

    Assign(output,NameFile2);

    Rewrite(output);

While (not Eof(input)) do

Begin

              ReadLn (input,S);

              Writeln (output,S);

End;

    Close(input);

    Close(output);

End.

 

Пример чтения данных посимвольно из файла и запись их в другой файл:

 

Const NameFile1=´Input.txt´;

    NameFile2=´Output.txt´;

Var input,output : text;

    C                : char;…

Begin

    Assign (input,NameFile1);

    Reset (input);

    Assign (output,NameFile2);

    Rewrite (output);

While (not Eof(input)) do

Begin

              ReadLn (input,C);

              WriteLn (output,C);

End;

    Close (input);

    Close (output);

End.

 

Пример чтения числовых данных целого типа из файла в массив:

 

Const NameFile1=´Input.txt´;

    Nmax=100;

Type Mas=array[1..Nmax] of integer;

Var input : text;

    A   : Mas;

N,I   : integer;

Begin

    Assign (input,NameFile1);

    Reset (input);

    N:=0;

While (not Eof(input)) do

Begin

              N:=N+1;

              Read (input,A[N]);

End;

    Close (input);

    For I:=1 to N do Write(A[I],´ ´);

End.

 

 

Задания для самостоятельной работы.

 

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

 

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

 

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

 

4. Дан текстовый файл, содержащий целые числа. Найдите разность между максимальным и минимальным элементами для каждой строки и для всего файла.

 

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

 

6. Дан текстовый файл, содержащий целые числа. Найдите порядковый номер максимального элемента в файле.

 

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

 

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

 

9. Дан текстовый файл, содержащий строки. Найдите количество строк, начинающихся с заглавных латинских букв.

 

10. Дан текстовый файл, содержащий строки. Найдите количество строк, начинающиеся и заканчивающиеся одинаковыми символами.

 

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

 

12. Дан текстовый файл, содержащий строки. Найдите симметричные строки (палиндромы).

 

13. Дан текстовый файл. Вставьте в начало каждой строки ее номер и запишите преобразованные строки в новый файл.

 

14. Дан текстовый файл, содержащий слова (наборы латинских символов) отделяемые пробелом. Исключите из текстового файла следующие слова: Begin, end, Do.


Дата добавления: 2018-04-04; просмотров: 219; Мы поможем в написании вашей работы!

Поделиться с друзьями:




Мы поможем в написании ваших работ!