мета-данные страницы
Загрузка не удалась. Возможно, проблемы с правами доступа?
Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
pascal:files [20/11/2009 13:54] – dnaumov | pascal:files [06/02/2018 10:56] (текущий) – [Замена стандартного ввода / вывода] oca | ||
---|---|---|---|
Строка 17: | Строка 17: | ||
fout: textfile; | fout: textfile; | ||
a, b, c: integer; | a, b, c: integer; | ||
+ | s : string; | ||
+ | f, h, p : real; | ||
begin | begin | ||
Строка 28: | Строка 30: | ||
writeln(fout, | writeln(fout, | ||
writeln(fout, | writeln(fout, | ||
- | writeln(fout, | + | writeln(fout, |
close(fout) {обязательно закрываем файл после завершения работы с ним} | close(fout) {обязательно закрываем файл после завершения работы с ним} | ||
Строка 62: | Строка 64: | ||
- | ===== Явное указание имени файла, | + | ===== Замена стандартного |
+ | |||
+ | <code pascal|Считывание из файла> | ||
+ | var | ||
+ | a, b, c : integer; | ||
+ | s : string; | ||
+ | f, h, p : real; | ||
+ | |||
+ | begin | ||
+ | assign(input,' | ||
+ | reset(input); | ||
+ | |||
+ | readln(s); | ||
+ | readln(a, | ||
+ | readln(f, | ||
+ | |||
+ | close(input) {закрываем считывание из файла} | ||
+ | end. | ||
+ | </ | ||
<code pascal|Запись в файл> | <code pascal|Запись в файл> | ||
var | var | ||
- | fout: textfile; | ||
a, b, c: integer; | a, b, c: integer; | ||
begin | begin | ||
- | assign(fout,'example.txt' | + | assign(output, 'output.txt' |
- | rewrite(fout); {открываем файл на запись, | + | rewrite(output); |
a: | a: | ||
Строка 77: | Строка 97: | ||
f:=1.2345; h:=-1.2345; p:=0.0; | f:=1.2345; h:=-1.2345; p:=0.0; | ||
- | writeln(fout, s); | + | writeln(s); |
- | writeln(fout, a:8, b:8, c:8); {записываем три целых числа в файл | + | writeln(a: |
- | writeln(fout, a:8:5, b:8:5, c:8:1); {записываем три дробные числа в файл | + | writeln(f:8:5, h:8:4, p:8:1); {записываем три дробные числа в файл |
- | close(fout) {обязательно закрываем файл после завершения работы с ним} | + | close(output) {обязательно закрываем файл после завершения работы с ним} |
end. | end. | ||
+ | |||
</ | </ | ||
- | После исполнения программы на диске, в той же папке где и программа появится файл с именем **example.txt** следущего содержания: | + | После исполнения программы на диске, в той же папке где и программа появится файл с именем **output.txt** следующего содержания: |
< | < | ||
Строка 93: | Строка 114: | ||
</ | </ | ||
- | <code pascal|Считывание из файла> | + | Важно помнить, |
- | var | + | |
- | fin : textfile; | + | |
- | a, b, c : integer; | + | |
- | s : string; | + | |
- | f, h, p : real; | + | |
+ | ==== Разбор строки ==== | ||
+ | Пусть дан входной файл вида | ||
+ | < | ||
+ | 2 | ||
+ | fam name 5 | ||
+ | fam2 name2 4 | ||
+ | </ | ||
+ | |||
+ | Прочитаем из него данные, | ||
+ | |||
+ | <code pascal> | ||
+ | var | ||
+ | s:string; | ||
+ | c:char; | ||
+ | i:integer; | ||
+ | n : integer; | ||
+ | fname, name: | ||
+ | mark: | ||
+ | position : integer; | ||
begin | begin | ||
- | | + | assign(input,'data.txt' |
- | reset(fin); {открываем файл на считывание с начала файла} | + | reset(input); |
+ | readln(n); | ||
- | | + | for i := 1 to n do |
- | | + | begin |
- | | + | |
+ | //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(' | ||
+ | end; | ||
+ | |||
+ | close(input); | ||
- | close(fin) {закрываем файл} | ||
end. | end. | ||
</ | </ | ||
+ | |||
+ | В результате получим: | ||
+ | |||
+ | < | ||
+ | fname: fam name: name mark: 5 | ||
+ | fname: fam2 name: name2 mark: 4 | ||
+ | </ | ||
+ | |||
+ | ==== Процедуры и функции ==== | ||
+ | ^ Имя ^ Описание ^ | ||
+ | |<code pascal> | ||