мета-данные страницы
Файлы
Ввод и вывод информации через дисковое пространство (файлы) может осуществляться двумя путями:
- явное указание имени файла, как переменной;
- замена стандартного ввода / вывода.
Файл можно использовать либо ТОЛЬКО для чтения, либо ТОЛЬКО для записи информации.
Явное указание имени файла, как переменной
- в файл
var fout: textfile; a, b, c: integer; s : string; f, h, p : real; begin assign(fout,'example.txt'); {сопоставляем имени fout файл на диске example.txt} rewrite(fout); {открываем файл на запись, стирая ВСЕ его содержимое} a:=12345; b:=-12345; c:=0; s:='Пример текста'; f:=1.2345; h:=-1.2345; p:=0.0; writeln(fout, s); {записываем текст в файл fout} writeln(fout, a:8, b:8, c:8); {записываем три целых числа в файл fout} writeln(fout, f:8:5, h:8:4, p:8:1); {записываем три дробные числа в файл fout} close(fout) {обязательно закрываем файл после завершения работы с ним} end.
После исполнения программы на диске, в той же папке где и программа появится файл с именем example.txt следущего содержания:
Пример текста 12345 -12345 0 1.23450 -1.2345 0.0
- из файла
var fin : textfile; a, b, c : integer; s : string; f, h, p : real; begin assign(fin,'example.txt'); {сопоставляем имени fin файл на диске example.txt} reset(fin); {открываем файл на считывание с начала файла} readln(fin,s); {считываем текст из файла fin, сохраняя его в переменной s} readln(fin,a,b,c); {считываем три числа из файла fin, сохраняя их значения в переменных a, b, c} readln(fin,f,h,p); {считываем три числа из файла fin, сохраняя их значения в переменных f, h, p} close(fin) {закрываем файл} end.
Замена стандартного ввода / вывода
- из файла
var a, b, c : integer; s : string; f, h, p : real; begin assign(input,'example.txt'); {сопоставляем стандартному вводу input файл на диске example.txt} reset(input); {открываем файл на считывание с начала файла} readln(s); {считываем текст из файла example.txt, сохраняя его в переменной s} readln(a,b,c); {считываем три числа из файла example.txt, сохраняя их значения в переменных a, b, c} readln(f,h,p); {считываем три числа из файла example.txt, сохраняя их значения в переменных f, h, p} close(input) {закрываем считывание из файла} end.
- в файл
var a, b, c: integer; begin assign(output, 'output.txt'); {сопоставляем стандартному выводу output файл на диске output.txt} rewrite(output); {открываем файл на запись, стирая ВСЕ его содержимое} a:=12345; b:=-12345; c:=0; s:='Пример текста'; f:=1.2345; h:=-1.2345; p:=0.0; writeln(s); {записываем текст в файл output} writeln(a:8, b:8, c:8); {записываем три целых числа в файл output.txt} writeln(f:8:5, h:8:4, p:8:1); {записываем три дробные числа в файл output.txt} close(output) {обязательно закрываем файл после завершения работы с ним} end.
После исполнения программы на диске, в той же папке где и программа появится файл с именем output.txt следующего содержания:
Пример текста 12345 -12345 0 1.23450 -1.2345 0.0
Важно помнить, что заменив стандартный ввод/выдод Вы не сможете читать данные с клавиатуры или писать на экран.
Разбор строки
Пусть дан входной файл вида
2 fam name 5 fam2 name2 4
Прочитаем из него данные, поместив значения из строки в разные переменные
var s:string; c:char; i:integer; n : integer; fname, name:string; mark:integer; position : integer; begin assign(input,'data.txt'); reset(input); readln(n); for i := 1 to n do begin readln(s); //fname position := pos(' ', s); fname := copy(s, 1, position); delete(s,1,position); //name position := pos(' ', s); name := copy(s, 1, position); delete(s,1,position); //mark val(s, mark); writeln('fname: ',fname, ' name: ', name, ' mark: ', mark); end; close(input); end.
В результате получим:
fname: fam name: name mark: 5 fname: fam2 name: name2 mark: 4
Процедуры и функции
Имя | Описание |
---|---|
-
| - |