Главное меню портала
• О портале
• Архив задач
• Карта архива задач
• Результаты тестов
• Ошибки тестирования
• Преподаватели
• Библиотечка
Рейтинг у учителя
• Рейтинг на портале
Начинающему
• Работа с порталом
• Курс для начинающего
• Архив задач начинающего
Олимпиаднику
• Архив задач олимпиадника
Олимпиады
Дистанционные олимпиады
• Положение олимпиады
Новое сообщениеОтправленые
Загрузка...

Тема: Чтение и запись данных в файл на Паскаль. 


Для чего нам нужно уметь работать с файлами в Паскаль?


А для того, чтобы Вы могли начать самостоятельно решать задачи на портале и зарабатывать рейтинг.


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


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


Ввод мы будем осуществлять из файла input.txt

Вывод будем производить в файл output.txt


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


Начнем!


Для того, чтобы организовать ввод данных из файла нам надо:

(буду писать так, чтобы было легко понять и запомнить, не научно)


1. Завести преременную типа текст и переменную в которую будем записывать прочитанное значение.

Var

t:text;
a:integer;

2. Связать эту текстовую переменную с файлом из которого будет производиться чтение. 

Begin

assign(t,'input.txt');

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

reset(t);

4. Теперь можно читать данные. Тут нужно понимать и помнить отличия процедуры read,  от readln. Про что я? Если в файле данные записаны в одной строке, через пробел, то мы пользуемся все время процедурой read столько раз, сколько чисел нужно прочитать.

Если же строк несколько, то когда доходим до символа стоящего в конце строки, используем readln. В результате чего будет считано последнее число строки и курсор переместится на новую.

read(t,a);

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

5. Как только мы прочитали все переменные необходимо закрыть файл.

close(t);

Внимание! Процедура close освобождает переменную t и мы можем её использовать в других целях, например для вывода данных. Если мы её не закрыли (нужно продолжать чтение), то для вывода необходимо будет завести еще одну текстовую переменную.


Все! На этом ввод окончен.


Опишем процесс вывода результатов в текстовый файл.


1. Опять как и в случае со вводом, необзодимо связать текстовую переменную с выходным файлом. Только файл уже называется (для нашего портала) output.txt.

assign(t,'output.txt');

2. Затем необходимо создать или перезаписать файл output.txt

rewrite(t);

3. Выводим данные. Не забываем ставить файловую переменную в начале списка вывода.

write(t,'Вот число из файла input.txt ', a);

4. Как и в предидущем случае после вывода всех данных необходимо закрыть файл.

close(t);

Запишем программу целиком.

Program Vvod_Vivod;

var
a:longint;
t:text;
Begin
assign(t,'input.txt');
reset(t);
read(t,a);
close(t);

assign (t,'output.txt');
rewrite(t);
write(t,a);
close(t);
End.

Практическое задание к уроку.

Ваша задача сейчас состоит в том, чтобы ввести программу в среде программирования Free Pascal (можно и в ABC Pascal) и запустить ее на исполнение. 


Если у Вас появилась ошибка типа:

Ошибка ввода/вывода 2: Не удается найти указанный файл (для ABC Pascal)

или

exited with exitcode=2 (для Free Pascal),

создайте в папке где сохранена ваша программа файл input.txt и введите в него число.

В этой же папке, после удачного (без ошибок) запуска программы на исполнение должен появиться файл output.txt . 


Решить задачи!

Перенаправление

Мелкий шулер

Перепутал строки


Для любознательных! 

Другие функции для работы с файлами в Паскале .







На сайте гостей 7, зарегистрированных 0:
Сейчас онлайн только гости...
[Данные за последние 5 минут]