русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

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


Дата добавления: 2013-12-23; просмотров: 947; Нарушение авторских прав


Текстовый файл (описатель text в отличие от типизированного файла file of char) представляет собой файл символов, сгруппированных в строки. Разбиение на строки обеспечивается признаком (комбинаций символов) конца строки. Для текстовых файлов существует специальный вид операций чтения и записи (read, write, readln, writeln), который позволяют считывать и записывать значения, тип которых отличается от символьного типа (это действительные, целочисленные типы и строки, выводить можно также и данные булевского типа). Такие значения автоматически переводятся в символьное представление и обратно. Например, Read(f,i), где i - переменная целого типа, приведет к считыванию последовательности цифр, интерпретации этой последовательности как десятичного числа, и сохранению его в i. Предопределены две стандартные переменные типа text – это Input и Оutput. Стандартная файловая переменная Input – это доступный только для чтения файл, связанный со стандартным файлом ввода операционной системы (обычно это клавиатура), а стандартная файловая переменная Оutput – это доступный только для записи файл, связанный со стандартным файлом вывода операционной системы (обычно это дисплей). Перед началом выполнения программы файлы Input и Оutput автоматически открываются, как если бы были выполнены следующие операторы:

 

Assign(Input,'con'); Reset(Input);

Assign(Output,'con'); Rewrite(Output);

 

После завершения работы программы эти файлы автоматически закрываются.

 

 

Обращение к процедурам ввода и вывода для текстовых файлов организуется так:

Read(f,<список элементов ввода>),

write(f,<список элементов вывода>),

readln(f,<список элементов ввода>),

writeln(f,<список элементов вывода>)

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



· Данные целого типа читаются с текущего символа, пропуская лидирующие пробелы, до первого символа, синтаксически не совместимого с представлением целого числа, либо до конца строки файла.

· Переменная типа CHAR принимает значение текущего символа.

· Переменная-строка принимает символы, пока не будет достигнута ее максимальная длина, либо конец строки файла.

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

Пример:

VAR I, J : INTEGER; S :STRING[100]; CH : CHAR;

...

READ(f, I, J, CH, S);

Пусть читаемые данные: 36 24 ABCDEFGHIJKLMNOPQRSTUVWXYZ.

После выполнения процедуры READ:

I =36, J = 24, CH = ' ', S = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'.

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

program ReadEoln {Плохое решение};

var c:char; f:text;

begin

assign(f,'text.txt');

reset(f); {Нужно использовать шаблон безопасного открытия}

while not(eof(f)) do

begin

read(f,c);

write(c);

end;

close(f);

writeln;

readln;

end.

program Copy {хорошее решение, шаблон!};

var c:char; f:text;

begin

assign(f,'text.txt');

reset(f){Нужно использовать шаблон безопасного открытия};

while not(eof(f)) do

begin while not(eoln(f)) do

begin

read(f,c);

write(c);

end;

readln(f);

writeln;

end;

close(f);

writeln;

readln;

end.

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

Вот два примера работы с текстовыми файлами (предложены Путинцевым А).

 

{Добавление записей в файл данных о дневной температуре воздуха}

program aprec;

var

DayTemp:record {дневная темперарура}

day:integer; {число}

month:integer; {месяц}

temper:integer; {температура}

end;

f:text;{ файл дневной температуры}

begin

assign(f,'a:\temperat.txt');

append(f); {открываем файл для добавления записи}

{Нужно использовать шаблон безопасного открытия}

write('Введите в одной строке, разделяя пробелами');

writeln(' число, номер месяца и температуру');

write('->');

with DayTemp do

begin

readln(day,month,temper);

writeln(f,day,' ',month,' ',temper);

{Следовало бы указать характеристики длины}

end;

close(f);

writeln('Данные добавлены');

end.

 

{Чтение записей из файла}

program readrec;

var

DayTemp:record {дневная температура}

day:integer; {число}

month:integer; {месяц}

temper:integer; {температура}

end;

f:text; {файл дневной температуры}

mes:integer;{номер месяца}

n:integer;{кол-во дней месяца, о которых есть данные в файле}

summ:integer; {сумма температур месяца}

sredn:real; {средняя температура}

begin

n:=0;

summ:=0;

writeln('Вычисление среднемесячной температуры.');

write('Месяц->');

readln(mes);

assign(f,'a:\temperat.txt');

reset(f);{Нужно использовать шаблон безопасного открытия}

while NOT EOF(f) do begin

with DayTemp do readln(f,day,month,temper);

{Область действия оператора with}

if DayTemp.month=mes

then begin

n:=n+1;

summ:=summ+DayTemp.temper;

end;

end;

close(f);

if n<>0 then begin

sredn:=summ/n;

writeln('Средняя температура:',sredn:6:3);

end

else writeln('Данных о температуре за',mes:3,' месяц нет.');

end.

9.2 Проект программы:

  • Точная формулировка задачи
  • Типы данных
  • Структуры данных
  • Процедуры и функции
  • Алгоритм


<== предыдущая лекция | следующая лекция ==>
Лекция 9 | Копия любого файла


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.516 сек.