мета-данные страницы
Загрузка не удалась. Возможно, проблемы с правами доступа?
Различия
Показаны различия между двумя версиями страницы.
Следующая версия | Предыдущая версияСледующая версияСледующая версия справа и слева | ||
pascal:files [20/10/2009 12:07] – создано ybezrukov | pascal:files [23/09/2016 11:28] – [Разбор строки] ybezrukov | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
===== Файлы ===== | ===== Файлы ===== | ||
FIXME | FIXME | ||
+ | |||
+ | Ввод и вывод информации через дисковое пространство (файлы) может осуществляться двумя путями: | ||
+ | - явное указание имени файла, как переменной; | ||
+ | - замена стандартного ввода / вывода. | ||
+ | |||
+ | Файл можно использовать либо **ТОЛЬКО** для чтения, | ||
+ | |||
+ | <note important> | ||
+ | </ | ||
+ | |||
+ | ===== Явное указание имени файла, как переменной ===== | ||
+ | |||
+ | <code pascal|Запись в файл> | ||
+ | var | ||
+ | fout: textfile; | ||
+ | a, b, c: integer; | ||
+ | s : string; | ||
+ | f, h, p : real; | ||
+ | |||
+ | begin | ||
+ | assign(fout,' | ||
+ | rewrite(fout); | ||
+ | |||
+ | a: | ||
+ | s: | ||
+ | f:=1.2345; h:=-1.2345; p:=0.0; | ||
+ | |||
+ | writeln(fout, | ||
+ | writeln(fout, | ||
+ | writeln(fout, | ||
+ | |||
+ | close(fout) {обязательно закрываем файл после завершения работы с ним} | ||
+ | end. | ||
+ | </ | ||
+ | |||
+ | После исполнения программы на диске, в той же папке где и программа появится файл с именем **example.txt** следущего содержания: | ||
+ | |||
+ | < | ||
+ | Пример текста | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | <code pascal|Считывание из файла> | ||
+ | var | ||
+ | fin : textfile; | ||
+ | a, b, c : integer; | ||
+ | s : string; | ||
+ | f, h, p : real; | ||
+ | |||
+ | begin | ||
+ | assign(fin,' | ||
+ | reset(fin); {открываем файл на считывание с начала файла} | ||
+ | |||
+ | readln(fin, | ||
+ | readln(fin, | ||
+ | readln(fin, | ||
+ | |||
+ | close(fin) {закрываем файл} | ||
+ | end. | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Замена стандартного ввода / вывода ===== | ||
+ | |||
+ | <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|Запись в файл> | ||
+ | var | ||
+ | a, b, c: integer; | ||
+ | |||
+ | begin | ||
+ | assign(output, | ||
+ | rewrite(output); | ||
+ | |||
+ | a: | ||
+ | s: | ||
+ | f:=1.2345; h:=-1.2345; p:=0.0; | ||
+ | |||
+ | writeln(s); | ||
+ | writeln(a: | ||
+ | writeln(f: | ||
+ | |||
+ | close(output) {обязательно закрываем файл после завершения работы с ним} | ||
+ | end. | ||
+ | |||
+ | </ | ||
+ | |||
+ | После исполнения программы на диске, в той же папке где и программа появится файл с именем **output.txt** следующего содержания: | ||
+ | |||
+ | < | ||
+ | Пример текста | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | ==== Разбор строки ==== | ||
+ | Пусть дан входной файл вида | ||
+ | < | ||
+ | 2 | ||
+ | fam name 5 | ||
+ | fam2 name2 4 | ||
+ | </ | ||
+ | |||
+ | Прочитаем из него данные, | ||
+ | |||
+ | <code pascal> | ||
+ | var | ||
+ | s:string; | ||
+ | c:char; | ||
+ | i:integer; | ||
+ | n : integer; | ||
+ | fname, name: | ||
+ | mark: | ||
+ | position : integer; | ||
+ | begin | ||
+ | assign(input,' | ||
+ | reset(input); | ||
+ | readln(n); | ||
+ | |||
+ | for i := 1 to n do | ||
+ | begin | ||
+ | readln(s); | ||
+ | //fname | ||
+ | position := pos(' ', s); | ||
+ | fname := copy(s, 1, position); | ||
+ | delete(s, | ||
+ | //name | ||
+ | position := pos(' ', s); | ||
+ | name := copy(s, 1, position); | ||
+ | delete(s, | ||
+ | //mark | ||
+ | val(s, mark); | ||
+ | writeln(' | ||
+ | end; | ||
+ | |||
+ | close(input); | ||
+ | |||
+ | end. | ||
+ | </ | ||
+ | |||
+ | В результате получим: | ||
+ | |||
+ | < | ||
+ | fname: fam name: name mark: 5 | ||
+ | fname: fam2 name: name2 mark: 4 | ||
+ | </ | ||
+ | |||
+ | ==== Процедуры и функции ==== | ||
+ | ^ Имя ^ Описание ^ | ||
+ | |<code pascal> | ||