Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

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




 

Среди всех файлов особое место занимают текстовые файлы. Особенностью текстовых файлов является объединение в них символов в строки. Каждая строка кончается специальным символом конца строки. Этот специальный символ (литера) не входит в стандартный тип CHAR и не имеет графического представления. Нас и не интересует вид этого символа. Главное, что с ним связана логическая функция EOLN (конец строки). EOLN(F) = TRUE, если окно указывает на признак конца строки. Заметим, что если EOLN(F) = TRUE, то при чтении элементов из файла в символьную переменную она принимает значение пробела (пробел - аналог конца строки). Для записи в файл признака конца строки служит стандартная процедура WRITELN.

Текстовые файлы, т.е. файлы с делением на строки, описываются с помощью слова TEXT, например, VAR X, D: TEXT.

 

ПРИМЕР 3. Определить количество строк в файле с именем BOOK

program NOMBRELINE;

var K: integer; BOOK: text; S: char;

begin { Формирование файла BOOK }

assign(BOOK,'f1'); rewrite(BOOK); read(S);

while S<> '.' do begin

while S <> '#' do begin

write(BOOK,S); read(S); end;

writeln(book);read(S); end; close(BOOK);

{ Подсчет числа строк в текст; BOOK }

K:= 0; reset(BOOK); writeln;

while not eof(BOOK) do

begin

if eoln(BOOK) then K:=K+1; read(BOOK,S); write(S);

end;

writeln('В текстовом файле BOOK ', K,' - строк');

end.

ПОЯСНЕНИЕ. В программе сначала формируется текстовый файл, у которого строки кончаются символом "$", а сам текст – символом ".". Текст вводится с клавиатуры в виде непрерывной цепочки, например:

 

Наша Маша громко плачет,$Уронила в речку мячик.$Тише, Машенька, не плачь,$Не утонет в речке мяч.$.

 

Во второй части программы с помощью функции EOLN подсчитывается число строк текста и он выводится на экран построчно, т.е. в виде:

Наша Маша громко плачет,

Уронила в речку мячик.

Тише, Машенька, не плачь,

Не утонет в речке мяч.

 

Итак, для записи литеры "конец строки" используется процедура WRITELN(F), где F находится в режиме записи.

 

СХЕМА РАБОТЫ ПРОЦЕДУРЫ WRITELN

 

 

T a g c d    
            ^  
            окно  

 

WRITELN(T):

 

T a g c d #  
            ^  
            окно  

 

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

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

 

СХЕМА РАБОТЫ ПРОЦЕДУРЫ READLN

 

T d b c d # e f  
        ^          
        окно          

 

READLN(T):

 

T d b c d # e f  
              ^    
              окно    

 

Файлы, как переменные величины, могут выступать в качестве аргументов и результатов при создании функций-процедур, причем эти переменные должны быть всегда оформлены как параметры-переменные, даже если файл в процедуре играет роль аргумента.

 

ПРИМЕР 4. Посчитать число знаков препинания в указанном текстовом файле:

function PUNCTUATION(var CHARFILE: text): integer;

var SYMBOLNOMB: integer;

SYMBOL: char;

begin

SYMBOLNOMB:=0; reset(CHARFILE);

while not eof(CHARFILE) do

begin

read(CHARFILE, SYMBOL);

if SYMBOL in ['.',',',' ',':','...] then

SYMBOLNOMB:= SYMBOLNOMB + 1

end;

PUNCTUATIОN:= SYMBOLNOMB

end.

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

assign(FIL,'FIL');

reset(FIL);

n:=PUNCTUATION(FIL);

close(FIL);

writeln('число знаков препинания в тексте FIL =', n).


ЛИТЕРАТУРА

 

1. Немнюгин С. А., Turbo Pascal: Программирование на языке высокого уровня: Учебник для вузов 2-е изд. – СПб: Питер, 2007г.

2. Павловская Т. А., Паскаль. Программирование на языке высокого уровня: Учебник для вузов – СПб: Питер, 2004г.

3. Ставровский А. Б., Турбо Паскаль 7.0: Учебник для вузов – Киев: BHV «Ирина», 2001г.

4 Фаронов В. В., Система программирования Delphi – СПб: БХВ – Петербург, 2006г.
Оглавление

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

1.2. Трансляторы.. 4

1.3. История создания языков. 5

1.4. Базовые структуры языков программирования. 6

II. ОПИСАНИЕ ЯЗЫКА ПАСКАЛЬ.. 8

2.1. Основные объекты языка.. 8

2.2. Структура Паскаль - программы.. 9

2.3. Типизация данных.. 11

2.4. Объявление данных.. 14

III. ПРОСТЫЕ ОПЕРАТОРЫ. ВВОД/ВЫВОД ДАННЫХ.. 16

3.1. Оператор присваивания и выражения. 16

3.2. Операторы процедур. Ввод/вывод информации.. 19

IV. СТРУКТУРНЫЕ ОПЕРАТОРЫ. ОРГАНИЗАЦИЯ ВЕТВЛЕНИЙ И ЦИКЛОВ.. 23

4.1. Составной и пустой операторы.. 23

4.2. Организация ветвлений. Операторы выбора.. 24

4.3. Организация циклов. Операторы повторения. 29

V. ОРГАНИЗАЦИЯ ПОДПРОГРАММ. ПРОЦЕДУРЫ И ФУНКЦИИ.. 35

5.1. Процедуры и их типизация. 35

5.2. Функции пользователя. Рекурсивные функции.. 49

5.3 Модульное программирование. 54

VI. МАССИВЫ. ДАННЫЕ ТИПА ARRAY.. 57

6.1 Одномерные массивы.. 57

6.2. Многомерные массивы.. 59

6.3. Способы работы с массивами.. 60

VII. ОБРАБОТКА ЛИТЕРНЫХ ВЕЛИЧИН. ДАННЫЕ ТИПА CHAR И STRING.. 62

7.1. Тип данных CHAR.. 62

7.2. Массивы литер. 64

7.3. Тип данных STRING.. 65

7.4. Строковые функции и процедуры.. 66

IIX. КОМБИНИРОВАННЫЙ ТИП - ЗАПИСИ. ДАННЫЕ ТИПА RECORD.. 69

8.1. Определение типа RECORD.. 69

8.2. Оператор WITH.. 71

IX. ФАЙЛОВЫЙ ТИП.. 75

9.1. Определение и описание файла.. 76

9.2. Типы файлов. Процедуры работы с файлами.. 77

9.3. Буферная переменная. 80

9.4. Основные приемы работы с файлами.. 82

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

ЛИТЕРАТУРА.. 89

 




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


Дата добавления: 2014-11-16; Просмотров: 473; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




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