текстовые файлы.pptx
- Количество слайдов: 11
Язык программирования TURBO PASCAL Текстовые файлы
Текстовые файлы В программе файловая переменная текстового типа описывается следующим образом: Var <идентификатор> : text ; Текстовый файл представляет собой символьную последовательность, разделенную на строки. Каждая строка заканчивается специальным кодом – маркером конца строки (м. к. с. ). Весь файл заканчивается маркером конца файла (м. к. ф. ). S 1 S 2 . . . Sk 1 м. к. с. S 1 S 2 . . . Sk 2 м. к. с . . м. к. ф Каждый символ представлен во внутреннем коде (ASCII и занимает 1 байт. Текстовый файл отличается от символьного не только делением на строки. В текстовый файл можно записать и прочитать из него информацию любого типа
Если эта информация не символьная, то в процессе чтения или записи происходит ее преобразование из символьной формы во внутреннюю и обратно. В программах на Паскале для работы с текстовыми файлами наряду с процедурами Read и Write употребляются процедуры Readln и Writeln. Readln (FV, <Список ввода>) Эта процедура читает строку из файла с именем FV, помещая прочитанное в переменные из списка ввода Writeln (FV, <Список вывода>) Эта процедура записывает строку в файла FV значения из списка вывода, после чего выставляет маркер конца строки
Для обнаружения конца строки в текстовом файле используется функция Eoln (FV) (End of line – конец строки). Эта логическая функция, которая принимает значение true, если указатель файла достиг маркера конца строки и false - в противном случае. Употребление операторов Read и Readln без указания имени файловой переменной обозначает чтение из стандартного файла Input (ввод с клавиатуры). Употребление операторов Write и Writeln без имени файловой переменной обозначает запись в стандартный файл Output (вывод на экран).
Пример 6. Пусть файл с именем Note. txt содержит некоторый текст. Требуется подсчитать количество строк в этом тексте. Var Note : Text; K : integer; Begin Assign (Note, ‘Note. txt’); Reset (Note); K : = 0; While Not Eof (Note) do Begin Readln (Note); K : = K + 1 End; Writeln (‘Количество строк равно’ , K); Close (Note) End.
Пример 7. В текстовом файле Note. txt определить длину самой большой строки. Var Begin End. Note : Text; Max, K : integer; C : Char; Assign (Note, Note. txt’); Reset (Note); Max: =0; While Not Eof (Note) do Begin K : = 0; While Not Eoln(Note) do Begin Read (Note, C); K : = K+1 End; If K > Max then Max : = K; Readln (Note) End; Writeln (‘ Наибольшая длина строки имеет ‘ , Max, ‘знаков’); Close (Note)
Пример 8. Под действием силы F с начальной скоростью V движется тело массой M. Сопротивление пропорционально квадрату скорости с коэффициентом K. Определить время прохождения пяти контрольных точек траектории, расстояние до которых от точки старта заданы. Пусть с помощью текстового редактора в файле Date. txt сформированы исходные данные в форме следующей таблицы: ИСХОДНЫЕ ДАННЫЕ M(кг) 36, 3 F(H) 2000 V(м/с) 50, 5 K(кг/м) 0, 5 Координаты исходных точек (м) x(1) 10 x(2) 100 x(3) 150 x(4) 1000 x(5) 3000
Требуется ввести числовые данные в вещественные переменные M, F, V, K и массив X [ 1. . 5] , произвести расчеты и получить результаты в массиве Т [ 1. . 5]. Результаты следует вывести на экран, а также в текстовый файл на диске с именем Result. txt.
Var M, F, V, K : real; i : integer; T , X : Array[ 1. . 5 ] of real; FR , FD : text; Begin Assing (FD , ‘ DATE. txt ’ ) ; Reset (FD) ; Assign (FR , ‘Result. Txt ‘ ); Rewrite (FR) ; { Пропуск первых трех строк } Read. Ln (FD) ; {Ввод данных} Read. Ln (FD, M, F, V, K ) ; { Пропуск трех строк } Read. Ln (FD) ; {Ввод данных} For i : = 1 to 5 do Read (FD , x[ i ] ); . . . { Расчетная часть программы}
{ Вывод результатов на экран и в файл FR } Write. Ln ( ‘ Результаты ’ ) ; Write. Ln (FR , ‘ Результаты ’ ) ; Write. Ln (FR) ; Write. Ln ( ‘ T(1), T(2), T(3), T(4), T(5) ‘ ) ; Write. Ln (FR, ‘ T(1), T(2), T(3), T(4), T(5) ‘ ) ; For i : = 1 to 5 do Begin Write ( T( i ) : 8 : 2) ; Write (FR, T( i ) : 8 : 2) End. Результаты будут сохранены в файле Result. txt. Их можно посмотреть на экране, распечатать на бумаге. При необходимости этот файл может стать входным для другой программы.
Домашнее задание 1. Имеется внешний текстовый файл. Напечатать первую из самых коротких его строк. 2. В текстовом файле Т записана непустая последовательность вещественных чисел, разделенных пробелами. Описать функцию Max (T) для нахождения наибольшего из этих чисел.
текстовые файлы.pptx