» Элементарная работа с файлами Borland Delphi. . . Блог программистов


Блог программистов




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
Привет МИР!
Моя программа работает, это чудо!

Комментарии

  1. Роман
    Март 22nd, 2009 | 12:51

    спасибо 🙂

  2. Евгений
    Апрель 17th, 2009 | 22:09

    вообще то:
    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;

    эт так лишняя инфа…

  3. Alhimik
    Июль 18th, 2009 | 19:20

    Вот только еще end; перед var не забываем…

  4. Makc
    Январь 26th, 2010 | 17:01

    Alhimik — бредозавр, какой end перед var?:))) 😆

  5. Январь 27th, 2010 | 05:21

    Makc — end перед var нужен потому что он заврывет record.
    type
    st=record

    end;
    var
    f1:st;
    sp:file of st;