
- •Программирование в среде delphi
- •050100.62 «Информатика» заочное
- •1. Описание структуры курсового проекта
- •Глава 1. Теоретическая часть
- •Глава 2. Практическая часть
- •2. Оформление курсового проекта
- •Образец оформления титульного листа курсового проекта
- •Примеры оформления библиографического списка литературы
- •1. Описание однотомников:
- •9. Технико-экономические нормативы, прейскуранты, инструкции:
- •10. Электронные ресурсы:
- •Варианты заданий на курсовую работу
- •Доступ к файлам
- •Инициализация (инициация) файла.
- •Закрытие файла.
- •Процедуры и функции для работы с файлами
- •Текстовые файлы
- •Обработка ошибок при работе с файлами
- •Использование объектов tOpenDialog и tSaveDialog
- •Типизированные файлы
Текстовые файлы
Текстовые файлы связываются с файловыми переменными, принадлежащими стандартному типу textfile. Используются для хранения текстовой информации. В файлах такого типа также могут храниться целые и вещественные числа. Запись текстового файла имеет переменную длину, поэтому файлы такого типа относятся к файлам последовательного доступа. При создании текстового файла в конце каждой строки автоматически ставится специальный символ – eoln, который состоит из двух байтов #13 (cr) и #10 (lf). cr – возврат каретки, lf – перевод строки. В конце файла ставится специальный признак eof (#27). Текстовые файлы открываются с помощью трёх процедур: reset – для чтения, rewrite – для записи, append – для добавления. Чтение осуществляется с помощью процедур read и readln, запись – с помощью write и writeln.
Пример.
Writeln (f, ‘ABC’, 12, ‘X’, 0.5); // ABC 12 X 5E-1
При переводе переменных типа string, количество считанных процедурой и помещённых в строки символов равно максимальной длине строки, если раньше не встретится признак eoln. Этот признак в строку не помещается. Если количество символов во входном потоке данных больше максимальной длины строки, то лишние символы отбрасываются. При вводе числовых переменных, процедура read работает следующим образом: все ведущие пробелы, признаки конца строк, табуляции пропускаются до появления первого значащего символа и, наоборот, любой из перечисленных символов, а также признак конца файла, считается концом подстроки. Выделенная таким образом подстрока рассматривается как строковое выражение числовой переменной. Затем она конвертируется во внутреннее представление числа, и результат присваивается переменной.
Пример 1.
Содержимое файла c:\FEI\alpha.txt:
-abceoln
---203eoln
2-3-a52,5eof
var
f: textfile;
s: string;
s2: string[2];
a, b, c: integer;
x: real;
begin
assignfile(f, ‘c:\FEI\alpha.txt’);
reset(f); Открываем файл для чтения
readln(f, s); {s=’-abc’} Считываем информацию из файла с переводом курсора
readln(f, a); {a=203} на новую строку
read(f, b, c); {b=2, c=3}
read(f, x); //ОШИБКА!!!
end;
Пример 2 (вывод текстового файла на экран: текстовый файл - тот же).
Procedure TForm1.Button1Click(Sender: TObject);
Var
f: textfile;
s: string;
begin
assignfile(f,’c:\fei\alpha.txt’);
reset(f); Открываем файл для чтения
while not eof(f) do Пока не достигнут конец файла выполняем
begin
readln(f,s); Считываем информацию из файла
Memo1.Lines.Add(s); Записываем в Memo1
end;
end;
Если в конвертируемой строке был нарушен требуемый формат, возникает ошибка ввода-вывода.
Процедура write/writeln обеспечивает вывод информации в текстовый файл. Список вывода аналогичен процедуре read, за исключением числовых значений, для которых существует специальный формат: элемент [:m[:n]], m – указывает минимальную ширину поля, в которую будет помещён элемент, n – указывает максимальное количество знаков после запятой.
Процедура writeln аналогична процедуре write, но в конце добавляется признак конца строки.
Пример 3 (слияние двух файлов в третий).
Procedure TForm1.Button1Click(Sender: TObject);
Var
f1,f2,f3: textfile;
s:string;
begin
assignfile(f1, ‘alpha.txt’);
assignfile(f2,
‘beta.txt’);
assignfile(f3, ‘omega.txt’);
reset(f1); Открываем для чтения
reset(f2); Открываем для чтения
rewrite(f3); Открываем для записи
while not eof(f1) do
begin
readln(f1, s); Считываем из файла
writeln(f3, s); Записываем в файл
end;
while not eof(f2) do
begin
readln(f2, s); Считываем из файла
writeln(f3, s); Записываем в файл
end;
ShowMessage(‘Ok!’);
end;
Пример 4 (определение количества строк и символов в файле).
Procedure TForm1.Button1Click(Sender: TObject);
Var
f: textfile;
s: string;
i,k: int64;
Begin
assignfile(f, ‘alpha.txt’);
reset(f); Открываем для чтения
k:=0;
i:=0;
while not eof(f) do
begin
readln(f, s); Считываем из файла
inc(i);
k:=k+length(s);
end;
showmessage(‘alpha.txt содержит’ + inttostr(i) + ‘строк и, ’ + inttostr(k) + ‘символов’);
End;