Файловый тип данных
Зачем нужен файловый тип данных?
Описание файлов
Обработка файлов
Чтение из файла
Запись в файл
Закрытие файла
Признак конца файла
Текстовые файлы
Пример.
Решение
72.50K
Category: programmingprogramming

Решение задач с использованием ввода-вывода из файлов

1. Файловый тип данных

Файл – это область памяти на внешнем
носителе, в которой хранится некоторая
информация.
В языке Паскаль файл представляет собой
последовательность элементов одного типа. Все
компоненты файла имеют общее имя. Они
становятся доступными нам лишь после того, как
мы последовательно пройдем все предыдущие
значения.

2. Зачем нужен файловый тип данных?

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

3. Описание файлов

Обработка файлов
В Паскале файл является некоторой переменной, поэтому
ему можно присвоить имя. С другой стороны существует
операционная система, которая в свою очередь использует
имена файлов. Поэтому необходимо установить связь между
переменной-файлом в Паскале и именем файла,
присвоенного операционной системой.
Assign(<имя переменной-файла>,’<имя внешнего файла>’);
Процедура устанавливает соответствие между файловой
переменной и внешним файлом: Например,
Assign(F1,’А:init.dat’);
Такое соответствие обозначает, что все операции, выполняемые над
переменной F1, будут выполняться над файлом, хранящимся на диске А: и
имеющим имя ’init.dat’

4.

Чтение из файла
- ввод данных из внешнего файла, находящегося на
диске, в оперативную память машины.
1. Открыть файл для чтения – процедура:
ReSet(<имя-переменной файла>);
2. Прочитать данные файла в программу,
последовательно читая элементы – процедура:
Read(<имя-переменной_ файла>,<элемент>);
Элемент должен быть того же типа, что и
компоненты файла.

5. Обработка файлов

Запись в файл
Вывод результатов программы из оперативной
памяти ЭВМ на диск, т.е. создание нового файла
на внешнем устройстве.
1. Открыть файл для записи – процедура:
ReWrite(<имя-переменной файла>);
2. Записать данные в файл, при этом запись идет
поэлементно – процедура:
Write(<имя-переменной_ файла>,<элемент>);
Элемент должен быть того же типа, что и
компоненты файла.
-

6. Чтение из файла

Закрытие файла
Процедура:
Close(<имя-переменной файла>);
Общая форма чтения файла имеет вид:
ReSet(<имя-переменной файла>);

Read(<имя-переменной_ файла>,<элемент>);

Close(<имя-переменной файла>);
Общая форма записи в файл имеет вид:
ReWrite(<имя-переменной файла>);

Write(<имя-переменной_ файла>,<элемент>);

Close(<имя-переменной файла>);
(Многоточием отмечено наличие других операторов в программе)

7. Запись в файл

Признак конца файла
Так как , по определению, число элементов
файла не задается заранее, то в языке
Паскаль введен признак конца файла. Это
логическая функция:
Eof(<имя-переменной файла>);
Если конец файла достигнут, она принимает
истинное значение (TRUE), и ложное
значение (FALSE) – в противном случае.
While Not EOF(<имя-переменной файла>) Do
…;

8. Закрытие файла

Текстовые файлы
- это файлы, содержащие символы,
разделенные на строки. Причем в конце
каждой строки стоит признак конца строки.
Описание:
Var A: Text;
Особенность текстовых файлов:
1. Элементами этих переменных являются
символы, и они имеют текстовую структуру.
2. При чтении и записи числа преобразуются
автоматически.

9. Признак конца файла

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

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

Решение
Пусть в файле содержится следующая информация:
-32 16 0 8 7
4 5 9 13 11 -5 -8
6 -8 0 -12
1 2
-1 -2 -4
-1 -2 4
Этот файл можно создать в среде Turbo Pascal:
• Создать новый файл (Меню File команда New);
• Записать числа в строках через пробелы;
• Сохранить его, например: ‘d:int1.dat‘
Аналогично файл можно создать в среде «Блокнот»
‘d:int1.txt‘

11. Пример.

program Ex1;
Var f:text;
x,k:integer;
begin
Assign(f,‘d:int1.dat'); {связываем с внешним файлом}
reset(f);
{открываем для чтения}
while not eof(f) do begin {пока не конец файла}
k:=0; {начальное количество элементов строки}
while not eoln(f) do {пока не конец строки}
begin
read(f,x); {считываем очередное число}
write(x,' '); {вывод его на экран}
inc(k)
{увеличиваем счетчик (k)}
end;
writeln(' В строке ',k,‘ элементов');
readln(f)
{переходим к следующей строке файла }
end;
close(f);
{закрываем файл}
readln
end.

12. Решение

Задача.
1. Элементы одномерного массива (10
чисел) считать из файла. В файле числа
расположены в одной строке. Посчитать
сумму элементов получившегося
массива. Записать элементы этого
массива в другой файл и в конце
приписать получившуюся сумму. Все
элементы в новом файле расположить по
одному в строке.
English     Русский Rules