На главную Самоучитель pascal Форум программистов онлайн Решение задач pascal Задачи pascal Поиск
08 Июн 13

Запись в файл и вывод из файла Паскаль


Комментарии :  0        Просмотры :  6531



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

Её суть заключается в том , чтобы компьютер , при проверке , брал значение переменных из входного файла input.txt ( обычно он называется именно так ). А результат работы программы выводился в выходной файл output.txt

Рассмотрим пример :

Нужно взять число из файла и записать квадрат этого числа в другой файл.

Код
program mypascal;
var
a:integer;
t1,t2:text;
begin

  assign(t1,'input.txt');
  assign(t2,'output.txt');
   
  reset(t1);
  readln(t1,a);
  close(t1);
  rewrite(t2);
  writeln(t2,sqr(a));
  close(t2);

end.


Объявляем три переменные . Переменную "a" для хранения числа из файла input.txt . Переменные "t1" и "t2" играют роль связки переменной с файлом , чтобы в последствии мы могли с ними работать . Тип переменных "t1" и "t2" записывается так - text.

Далее в программе мы связываем переменные "t1" и "t2" с файлами input.txt и output.txt.
Команда assign() отвечает за связку. Первый аргумент отвечает за имя переменной , а второй ( через запятую ) отвечает за имя файла.

Команды reset() и rewrite() отвечают за открытие файла для чтения и записи.

Reset()

открывает наш файл для чтения , чтобы мы могли взять из файла какое либо значение , например значение 4. Чтобы открыть именно тот файл , который нам нужен следует написать имя переменной , к которой он привязан в аргументе . ( reset(t1) ).
Далее записываем в переменную "a" число из файла. Для этого нам понадобится привычная команда readln() , однако теперь мы передаем ей два аргумента . Первый аргумент это имя переменной , к которой привязан файл . Второй аргумент это имя переменной , в которую будет произведена запись.

После того как мы занесли в переменную "а" число , которое было в файле , следует закрыть файл командой close(). Аргумент обозначает какой именно файл нужно закрыть. ( close(t1) ).

Rewrite()

открывает файл для записи в него какой либо информации , однако при этом стирает всю информацию , которая была записана в нем до этого. Для того , чтобы прошлая информация осталась целой , а новая записывалась в конце файла : вместо команды rewrite следует использовать команду append(). Чтобы открыть именно тот файл , который нам нужен , следует записать имя переменной , к которой привязан файл в аргументе . ( rewrite(t2) ).
Далее записываем информацию в output.txt привычной командой writeln() . Но теперь она в аналогии с readln(t1,a) имеет два аргумента . Первый аргумент отвечает за имя переменной , к которой привязан файл , а второй аргумент за информацию которую будут записывать в файл . В нашем случае это квадрат переменной "a". Функция sqr() отвечает за квадрат аргумента.

После следует закрыть второй файл close(t2).

На заметку :

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

Прочие функции :
  • eof(t1) - Возвращает истинное значение , когда достигнут конец файла. Хорошим примером работы такой функции служит запись всех чисел в файле. Это осуществляется с помощью цикла while ( not eof(t1) ) do - дословно пока не конец файла t1 делай ...
  • eoln(t1) - Работает аналогично функции eof(t1) , за исключение того , что оно возвращает истину тогда , когда достигнут конец строки , а не всего файла.
  • erase(t1) - Уничтожает файл привязанный к переменной t1.
  • rename(t1) - Меняет имя файла , к которому привязана переменная t1 . Перед применением следует закрывать файл командой close().


Рейтинг материала : ( 5 / 1 )
Сообщить об ошибке
Комментарии :  0        Просмотры :  6531

Поиск

Решение задач

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

Опубликовать на сайте

Опубликовать на форуме

Опрос

Какой ваш любимый раздел ?