Fruitsekta.ru

Мир ПК
7 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Паскаль ввод текстовых файлов

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

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

Например, создадим текстовый файл «text.txt» и запишем в него 3 строки: «pascal», «admin» и «turbo».

А теперь запустите программу «file1» из первого урока, посвященного файлам.

Как видите, на экран вывелось одно слово «pascal», а слова «admin» и «turbo» не вывелись, т.к. они расположены во 2-й и 3-й строке. Для того чтобы из файла были прочитаны все строки необходимо использовать цикл с признаком конца файла. Кроме того, процедура Read не приспособлена для считывания последовательности строк. Ввместо нее необходимо использовать процедуру Readln.

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

В строке №9 записываем цикл. Функция Eof при чтении файла (при использовании процедуры Reset) обозначает конец файла. Таким образом, цикл в строке №9 будет продолжаться до тех пор, пока не наступит конец файла (т.е. пока не будет прочитана последняя строка в файле). В цикле записано 2 операции (они заключаются в операторные скобки begin..end).

Строка №11. Первая операция в цикле – это операция чтения из файла и присвоение переменной «str» значения файловой переменной «fl». В результате работы процедуры Readln из файла будет прочитана первая строка, а указатель перейдет на начало второй строки. Таким образом, в цикле будут прочитаны все 3 строки.

Строка №12. Вторая операция — вывод значения переменной «str»на экран.

Как видите, на экран вывелись все 3 слова, записанные в текстовом файле «text.txt». Правда, все эти слова вывелись в одну строку. Для того чтобы они вывелись в 3-х строках необходимо вместо процедуры Write использовать процедуру Writeln (т.е. строка №12 должна иметь вид: writeln (str)). В результате получится:

Дополнение к материалу.

  • Процедура Readln производит чтение файла построчно. Т.е. сначала будет прочитана первая строка, затем 2-ая, затем 3-я. В нашем примере мы применяли цикл для чтения файла и вывода его содержимого на экран. Если мы уберем операторные скобки begin..end, то цикл будет действовать только на процедуру Readln (в строке №11), а процедура Writeln выведет на экран не все слова, а лишь последнее слово(turbo), записанное в переменную «str».
  • В случае использовании оператора Read вместо оператора Readln в строке №11 произойдет зацикливание программы, так как она не сможет найти признак конца файла. Для остановки программы необходимо нажать Ctrl+Break

Паскаль ввод текстовых файлов

страницы: 1 2 3 4

Ввод информации из текстового файла. Вывод информации в текстовый файл. Оперирование текстовыми файлами.

Содержание

Ввод и вывод: файлы

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

Что такое файл

В последнее время студенты всё реже задают этот вопрос, однако на него всё–таки стоит дать короткий ответ.

Файл — это самостоятельная последовательность байтов, записанная в постоянную память компьютера.

В английском языке слово « file » имеет вполне понятный смысл: «вереница», что очень хорошо отражает внутреннюю структуру любого файла. Файл — это именно вереница байтов, причём связанных в определённой последовательности: байты файла не могут по своему желанию перепрыгивать с одного места на другое.

«Самостоятельность» файлов заключается в том, что они не зависят от работы какой–либо программы. И даже если выключить компьютер, файлы будут продолжать своё существование на винчестере или на дискете.

Файлы могут хранить в себе всё, что поддаётся кодированию:

  • исходные тексты программ или входные данные (тесты);
  • машинные коды выполняемых программ (игры, вирусы, обучающие и сервисные программы, др.);
  • информацию о текущем состоянии какого–либо процесса;
  • различные документы, в том числе и Интернет–страницы;
  • картинки (рисунки, фотографии, видео);
  • музыку;
  • и т.д. и т.п.
Читать еще:  While repeat паскаль

Когда нужно использовать файлы

Выбор между консолью и файлами вам придётся делать каждый раз, когда вы станете писать очередную программу.

Между тем, ответ на вопрос, вынесенный в заголовок этого пункта, прост.

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

Например, если вашей программе необходимо получить два или три числа (пять — уже многовато) или строку длиной символов десять, вы вполне можете задавать такие данные с клавиатуры вручную. Если же вам (а ещё вероятнее — не вам, а некоему усреднённому и потому посредственному оператору) придётся вводить, скажем, массив чисел 10х10 , то вероятность ошибки при ручном вводе возрастает многократно. Значит, возможность этой ошибки нужно исключить: записать данные в файл, который легко отредактировать в случае необходимости. Кроме того, однажды созданный файл можно использовать многократно (может быть, с незначительными изменениями).

Разновидности файлов

В языке Pascal имеется возможность работы с трёмя видами файлов :

  • текстовыми ;
  • типизированными;
  • нетипизированными .

Последние два типа объединяются под названием бинарные : информация в них записывается по байтам и потому не доступна для просмотра или редактирования в удобных для человека текстовых редакторах, зато такие файлы более компактны, чем текстовые .

В отличие от бинарных , текстовые файлы возможно создавать, просматривать и редактировать «вручную» — в любом доступном текстовом редакторе, в том числе встроенном в среду разработки. Кроме того, при считывании данных из текстового файла нет необходимости заботиться об их преобразовании: в языке Pascal имеются средства автоматического перевода содержимого текстовых файлов в нужный тип и формат, и это позволяет сэкономить немало времени и сил.

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

В разделе var переменные, используемые для работы с файлами ( файловые переменные ), описываются следующим образом:

Файловая переменная не может быть задана константой .

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

В этой лекции мы ограничимся рассмотрением только текстовых файлов , а о типизированных расскажем позже (см. лекцию 7 ).

Оперирование файлами

С этого момента и до конца лекции под словом «файл» мы будем подразумевать « текстовый файл » (разумеется, если специально не оговорено обратное). Однако многие описываемые ниже команды пригодны не только для текстовых , но и для бинарных файлов .

Назначение файла

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

На разных этапах работы программы одной и той же файловой переменной можно присваивать разные значения. Например, если в начале программы мы напишем

то переменной f будет соответствовать файл, из которого производится считывание входных данных, вплоть до того момента, когда в программе встретится, скажем, команда

после которой переменной f будет уже соответствовать тот файл, куда выводятся результаты.

Строка ‘ ‘ может содержать полный путь к файлу. Если путь не указан, файл считается расположенным в той же директории, что и исполняемый модуль программы. Именно этот вариант обычно считается наиболее удобным.

Урок 4. Работа с текстовыми файлами

Урок из серии: «Язык программирования Паскаль»

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

На этом уроке мы рассмотрим, как используются текстовые файлы для ввода и вывода данных в программе на языке Паскаль.

Читать еще:  Бинарное дерево паскаль реализация

Текстовые файлы – это файлы, содержащие символы, разделенные на строки. Причем в конце каждой строки стоит символ конца строки.

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

  1. описать переменную файлового типа;
  2. связать ее с конкретным физическим файлом процедурой Assign;
  3. открыть файл для чтения процедурой ReSet или для записи процедурой ReWrite;
  4. выполнить чтение или запись информации;
  5. по окончании работы с файлом закрыть файл процедурой Close.

Описание переменной файлового типа

С текстовым файлом на диске в программе должна быть связана файловая переменная, которая описывается с указанием стандартного типа Text:

Связь переменной файлового типа с конкретным внешним файлом

Для установления связи между файловой переменной и именем файла, присваиваемого операционной системой, имеется стандартная процедура Assign.

Такое соответствие обозначает, что все операции, выполняемые над переменной F1, будут выполняться над файлом, хранящемся на диске и имеющим имя ‘Int.dat’

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

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

Для чтения файла в программе необходимо выполнить следующие действия:

Открыть файл для чтения:

Прочитать данные файла в программу с помощью процедуры Read или Readln .

Процедура Read последовательно считывает все элементы строки:

Процедура Readln – считывает элемент из текущей строки и переходит на следующую строку (независимо от того, достигнут конец строки или нет):

Если не указывать второй параметр, то произойдет переход в начало следующей строки без ввода данных:

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

После завершения работы с файлом, его нужно закрыть и «освободить» файловую переменную . Это делается с помощью процедуры Сlose.

Общий вид оператора:

Общая форма чтения файла имеет вид:

Многоточием отмечено наличие других операторов в программе.

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

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

Общий вид функции:

Она определяет, достигнут ли конец файла или еще нет (принимает значение (true), если достигнут конец файла, и ложь (false) — в противном случае).

Для определения конца файла используется оператор цикла, например, (пока не достигнут конец файла …):

While Not EOF ( ) Do …

Запись в файл

Под записью файла понимается вывод результатов программы из оперативной памяти на диск, т.е. создание нового файла на внешнем устройстве.

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

Открыть файл для записи с помощью процедуры Rewrite:

Записать данные в файл спомощью процедур Write или Writeln.

Процедура Write производит запись поэлементно в текущую строку:

Процедура WriteLn записывает элемент и переводит указатель в начало следующей строки:

Если не указывать второй параметр процедуры, то в конце данной строки ставится признак конца файла и текущий указатель перемещается на начало следующей строки:

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

Общая форма записи файла имеет вид:

Логическая функция Eoln()

Часто для обработки текстовых файлов используется специфичная для них функция Eoln(), позволяющая определить, достигнут ли конец строки. Если достигнут — значение функции равно True, а если нет — False.

Таким образом, для анализа конкретных символов строк файла можно применить вложенный цикл типа:

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

Пусть в файле содержится следующая информация:

-32 16 0 8 7
4 5 9 13 11 -5 -8
6 -8 0 12
1 2
-1 -2 -4
-1 -2 4

Этот файл можно создать в среде Паскаль следующим образом:

  1. Создать новый файл (команда Файл-Новый).
  2. Записать все числа в строке через пробелы.
  3. Сохранить его, например, как ‘primer1.dat’.
    Для этого в диалоговом окне сохранения файла в списке Тип файла выбрать Все файлы. В поле Имя файла ввести полное имя файла (имя с расширением).
Читать еще:  Оператор с предусловием паскаль

Программа будет иметь следующий вид:

На этом уроке было рассмотрено, как использовать текстовые файлы для ввода и вывода данных в программе на языке Паскаль.
На следующем уроке Вы узнаете, как использовать тип данных Bulean для представления данных логического типа.
Следующий урок: Логический тип данных

Урок понравился? Отзывы и замечания можно оставить в форме для комментариев, расположенной в нижней части страницы.

Файлы в Паскале. Общие сведения. Текстовые файлы

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

Файлы принято разделять на физические и логические. Физические файлы имеют имя, и располагаются на съемном носителе, а логические это те переменные файлового типа, которые их представляют в программе.

В Паскале различают следующие три вида файлов (в скобках описаны ключевые слова для инициализации файловой переменной):

текстовые файлы (text);

типизированные (file of );

Немного позже мы разберемся с каждым из них. А сейчас рассмотрим основные операции для работы с файлами.

Создание файла

Процедура Assign связывает переменную файлового типа с физическим файлом. Например, установить соответствие между переменной Fil и текстовым файлом lot, расположенном на диске D, можно так:

Режим чтения

Процедура Reset открывает файл в режиме чтения, после чего оператором Read( , ) можно осуществить последовательное считывание элементов в программу.

Конец файла

Количество элементов в файле заранее не определяется, но часто необходимо знать о моменте достижения конца файла. Для этого в Паскале существует логическая функция EOF, которая проверяет достигнут ли конец, и если это так, то принимает значение True, иначе – False. Осуществляется проверка, как правило, в цикле, в качестве условного выражения выступает функция EOF.

Режим записи

Открыв файл в режиме записи, можно поэлементно записать в него информацию, воспользовавшись процедурой Write( , ).

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

Процедура Close закрывает открытый файл, а также освобождает файловую переменную, указанную в качестве параметра.

Удаление файла

При помощи процедуры Erase, можно удалить с внешнего носителя, заранее закрытый файл.

Изменение имени файла

Rеnаmе переименовывает физический файл, который перед этим следует закрыть процедурой Close.

Смещение указателя файла

Процедура Sееk устанавливает позицию указателя в файле на необходимый элемент (нумерация элементов начинается с нуля).

Определение положения указателя

Функция FilePos принимает значение порядкового номера элемента, над которым в момент вызова находиться указатель.

Определение количества элементов

Функция FileSize определяет количество всех имеющихся в файле элементов.

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

Текстовые файлы могут состоять из элементов символьного (char) и строкового (string) типа данных. Ключевое слово Text указывает, что файловая переменная создается для работы именно с текстовым файлом:

Структура текстового файла представляет собой последовательность строк, которые в свою очередь состоят из символов. Любая строка оканчивается признаком «конца строки», а сам файл признаком «конца файла». Для определения конца файла в Паскаль есть функция EOF, а для конца строки – EOLn:

В случае достижения конца строки она (функция EOLn) принимает значение True, в противном случае False.

Рассмотрим работу с текстовым файлом, на примере программы.

Место создания файла «file.txt» не было указано, поэтому он создаться в папке по умолчанию для вашей среды программирования.

Для текстовых файлов в Паскале определены следующие процедуры и функции:

Процедура Append открывает существующий файл в режиме дозаписи. После чего в его конец можно добавить какую либо информацию.

Если до конца строки остались пробелы/знаки табуляции, то функция SeekEOLn возвращает значение True, иначе False.

Если до конца файла остались лишь строки с пробелами/знаками табуляции, то функция SeekEOF возвращает значение True, иначе False.

Ссылка на основную публикацию
Adblock
detector