20072 Мар
Элементарная работа с файлами
Первое что я рассмотрю это копирование файлов:
procedure TForm1.Button1Click(Sender: TObject);
begin
CopyFile('Откуда\Имя файла','Куда\Новое имя файла',true)
// если файл с таким же именем уже есть то true - если заменять или false если оставить прошлую копию файла
end;
Запись в файл:
program CrtApp;
var
outfile: TextFile;
begin
AssignFile(outfile, 'c:\outfile.txt'); // связываем переменную с файла в который будем писать
Rewrite(outfile);
writeln(outfile, 'Привет МИР!'); // Запись в файл 'c:\outfile.txt' легендарного текста
CloseFile(outfile); // обязательно закрываем файл
end.
Печать текста сразу на принтер:
program CrtApp;
var
outfile: TextFile;
begin
AssignFile(outfile, 'LTP1'); // принтер
Rewrite(outfile);
writeln(outfile, 'Привет МИР!'); // печать текста
CloseFile(outfile); // обязательно закрываем файл
end.
Чтение, точнее копирование текста из одного файла в другой:
Program ReadInput;
var
infile, outfile: text;
num_lines, x: integer;
line: string;
begin
assign(infile, 'C:\INFILE.TXT');
assign(outfile, 'C:\OUTFILE.TXT');
reset(infile); {перемещаем указатель}
{в начало файла.}
rewrite(outfile); {очищаем содержимое файла}
readln(infile, num_lines);
for x:= 1 to num_lines do
begin
readln(infile, line);
writeln(outfile, line);
end;
close(infile);
close(outfile);
end.
Текст файла Infile.txt должен в первой строке иметь число которое указывает сколько строк надо прочитать из файла начиная со второй строки. Например:
2
Привет МИР!
Моя программа работает, это чудо!
спасибо 🙂
вообще то:
var
infile, outfile: text;
не обязательно делать именно так, можно сделать и через тип где например:
type
st=record
n_zach:integer;
n_sem:integer;
n_dis:string[20];
mark:integer;
n_gr:integer;
var
f1:st;
sp:file of st;
эт так лишняя инфа…
Вот только еще end; перед var не забываем…
Alhimik — бредозавр, какой end перед var?:))) 😆
Makc — end перед var нужен потому что он заврывет record.
type
st=record
…
end;
var
f1:st;
sp:file of st;