Задания для самостоятельной работы
Тема: «ТЕКСТОВЫЕ ФАЙЛЫ».
Под файлом понимается либо именованная область внешней памяти ПК (ЖМД, ГМД и т.п.) либо логическое устройство. Файл служит для хранения информации.
Любой файл имеет три характерные особенности:
- имеет имя;
- содержит компоненты одного типа;
- размер файла ограничивается емкостью устройства внешней памяти.
Файловый тип или переменная файлового типа может быть задана одним из трех типов:
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; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!