Программы файлы паскаль примеры

Часто в программах на паскаль необходимо загрузить начальную информацию из файла. Это активно используется в математических компьютерных расчётах, компьютерных играх и при работе с данными. Для того, чтобы считывать информацию из файла в программах паскаль, существуют удобные команды работы с файлами
На этом уроке мы разберём, как работать с файлами в pascal. Напишем простой пример, в котором программа считывает данные с одного файла и записывает в другой.
Считывание данных из файла в pascal
Для того, чтобы работать с файлами в pascal, необходимо создать переменную типа text.
var имя файловой переменной : text;
Пример
var f: text;

Далее необходимо связать конкретный файл с данной переменной, это делается с помощью команды
assign(имя файловой переменной,’адрес файла’);

Чтобы открыть файл, используется команда
reset (имя файловой переменной);
Пример
reset (f);

Для считывания из файла используется команда

Работа с файлами Pascal


readln (имя файловой переменной, переменная);
Пример
readln (f, a);

В конце работы с файлом, его необходимо закрыть командой
close(имя файловой переменной);
Пример
close(f);

Пример программы на паскаль, которая считывает информацию из файла и выводит её на экран
var f: text;
var a,b :integer;
begin
assign(f,’C:UsersUserDesktopdata.txt’);
reset (f);
readln (f, a);
readln(f,b);
writeln(a);
writeln(b);
close(f);
end.

Запись информации в файл на pascal

Результаты работы в программе на паскаль можно сохранять в файл и использовать их в дальнейшем.
Разберём пример записи значений двух переменных в файл.
Чтобы работать с файлами в pascal, нужно создать переменную типа text.
var имя файловой переменной : text;
Пример
var out: text;

После этого надо связать конкретный файл с данной переменной, для этого применим команду
assign(имя файловой переменной,’адрес файла’);

Чтобы открыть файл и вписать в него информацию, используется команда
rewrite(имя файловой переменной);
Пример
rewrite(out);
Чтобы вписать в файл информацию, применяется команда
writeln(имя файловой переменной,переменная);

После завершения работы с файлом, его необходимо закрыть командой
close(имя файловой переменной);
Пример
close(out);
Пример программы на паскаль, которая записывает в файл информацию
var out:text;
var a,b :integer;
begin
assign(out,’C:UsersUserDesktopout.txt’);
rewrite(out);
writeln(out,a);
writeln(out,b);
close(out);
end.

Полный код программы на pascal, которая считывает с файла информацию и записывает в другой
var f: text;
var out:text;
var a,b :integer;
begin
assign(f,’C:UsersUserDesktopdata.txt’);
reset (f);
readln (f, a);

Pascal — типизированные файлы


readln(f,b);
writeln(a);
writeln(b);
close(f);
assign(out,’C:UsersUserDesktopout.txt’);
rewrite(out);
writeln(out,a);
writeln(out,b);
close(out):
end.

Источник: itrobo.ru

Урок 10 — Файлы в Pascal

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

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

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

Читайте также:
Программы стиральной машины siemens

Режим чтения

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

Конец файла

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

Режим записи

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

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

Close()

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

program text_fail; uses crt; var f: text; s: string; n, i: integer; begin assign (f, ‘file.txt’); rewrite(f); write(‘Количество строк ‘); read(n); for i:=1 to n do begin readln(s); writeln(f, s); end; clrscr; reset(f); while not eof(f) do begin readln(f, s); writeln(s); end; close(f); end.

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

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

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

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

3 Типизированные файлы

Файл, определенный стандартным или пользовательским типом данных, называется типизированным. Общая форма объявления типизированных файлов имеет вид:

Здесь тип компонент может быть любым типом данных, определенных в Pascal, но только не файловым. Для работы с типизированными файлами используются уже знакомые нам процедуры и функции: Write, Read, Seek, Filesize, Filepos , а также процедура Truncate :

Читайте также:
Какие программы есть по каско

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

Одной из главных особенностей типизированного файла является возможность прямого обращения к его отдельным компонентам. Это достигается за счет, того что заранее известен тип компонент файла. Рассмотрим два примера кода, в первом из которых обращение к элементам файла происходит последовательно, а во втором прямо.

Пример: вычислить среднее арифметическое элементов файла.

program type_fail; uses crt; var f: file of integer; x, n, i: integer; sr: real; begin assign (f, ‘file.dat’); rewrite(f); write(‘Количество элементов ‘); read(n); for i:=1 to n do begin readln(x); write(f, x); end; clrscr; n:=0; reset(f); while not eof(f) do begin read(f, x); n:=n+x; end; sr:=n/filesize(f); close(f); write(‘Среднее арифметическое = ‘, sr); end.

Пример 2: поменять строки в файле местами.

program type_fail; uses crt; var f: file of string; i: integer; s, s1, s2, s3: string; begin assign (f, ‘file.dat’); s1:=’Pascal’; s2:=’ на ‘; s3:=’Программирование’; rewrite(f); write(f, s1, s2, s3); reset(f); write(‘Выводим как есть: ‘); while not eof(f) do begin read(f, s); write(s); end; writeln; write(‘Вывод после обработки: ‘); for i:=2 downto 0 do begin seek(f, i); read(f, s); write(s); end; close(f); end.

Таким образом, напрашивается вывод, что типизированные файлы несколько функциональней в обработке, чем текстовые. Далее разберем последний пункт данной статьи, а именно третий вид файлов — бестиповые файлы.

4 Бестиповые (нетипизированные) файлы

Бестиповые файлы предназначены для записи участков памяти компьютера на внешний носитель и считывания их в память. В отличие от типизированных файлов, нам не нужно знать информация какого типа хранится в них. А все потому, что данные из файлов, не имеющих типа, считываются в виде байт, после чего они «подстраиваются» под переменную, в которую происходит считывание.

Общая форма записи нетипизированных файлов

отличается от типизированных отсутствием части of . Кроме того, немного изменяется принцип действия процедур Reset и Rewrite . К ним прибавляется второй параметр типа Word:

reset(, ) rewrite(, )

Здесь «значение» — это новый размер буфера, который по умолчанию равен 128 байтам. В качестве минимального значения можно указать 1 байт, а максимального — 64 кбайт (число в байтах).

Также в бестиповых файлах для записи и чтения информации используются не стандартные процедуры Read и Write , а две новые: BlokRead и BlockWrite . Рассмотрим каждую из них.

Процедура BlockRead

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

Общая форма записи:

x, y – обычные переменные, в первую помещается прочитанные данные, во вторую – количество считанных байт. В случае удачи y (y – необязательный параметр) будет иметь тоже значение, что и третий параметр.

Процедура BlockWrite

Для записи информации в бестиповый файл предназначена процедура BlockWrite :

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

Читайте также:
Порядок организации и проведения игровой программы

В следующей программе данные сначала записываются в нетипизированный файл, а затем выводятся из него посредством рассмотренных нами операций.

program no_type_fail; uses crt; var f: file; x, i ,n: byte; begin clrscr; assign(f, ‘f’); rewrite(f, 1); write(‘n = ‘); readln(n); for i:=1 to n do begin x:=n-i; blockwrite(f, x, 1); end; reset(f, 1); while not eof(f) do begin blockread(f, x, 1); write(x,’ ‘); end; close(f); readkey; end.

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

Источник: pro-prof.com

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

обучение PascalABC

Инфоучка

Все предыдущие примеры программ на этом сайте выводили данные непосредственно на экран компьютера. Но данные можно выводить в файлы на внешние носители.

Рассмотрим пример программы на PascalABC, которая считывает исходные данные из внешнего файла. Считает сумму и произведение. Записывает результат тоже во внешний файл.

текстовые файлы паскаль

Но прежде немного справочной информации.

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

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

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

f1,f2: text;

Текстовый файл в PascalABC — это совокупность строк произвольной длины, разделенных между собой маркерами конца строки, а весь файл заканчивается маркером — конец файла.

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

Чтобы программа смогла различать записи данных в текстовом файле, их разделяют пробелами. Например, 20 30 45 озеро.

Перед использованием файловой переменной она должна быть связана с внешним файлом с помощью вызова процедуры Аssign.

assign(f1,’inp/input.txt’); assign(f2,’res/output.txt’);

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

Наши файлы расположены в рабочем каталоге PascalABC (C:PABCWork).

Когда связь с внешним файлом установлена, для подготовки ее к операции ввода или вывода файловая переменная должна быть “открыта”. Существующий файл можно открыть с помощью процедуры Reset, а новый файл можно создать и открыть с помощью процедуры Rewrite. Текстовые файлы, открытые с помощью процедуры Reset доступны только по чтению, а текстовые файлы, открытые с помощью процедуры Rewrite, доступны только по записи.

reset(f1); rewrite(f2);

Для текстовых файлов существует специальный вид операций чтения и записи (read и write), который позволяют вам считывать и записывать значения, тип которых отличается от символьного типа. Такие значения автоматически переводятся в символьное представление и обратно. Например, Read(f,i), где i — переменная целого типа, приведет к считыванию последовательности цифр, интерпретации этой последовательности, как десятичного числа, и сохранению его в i.

В нашей программе это строка ниже:

read(f1,x,y,k);

Источник: infouch.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru