1. Открытие файла
function slLoadFromFile(var sl: TStringList; f: string): boolean;
const MaxBufSize=$F000;
var H, Count: integer;
Buffer: pChar;
Text: string;
begin
Result:=false;
sl.Clear;
H:=FileOpen(f, 64);
If H=-1 then
Exit;
Result:=true;
Text:='';
FileSeek(H, 0, 0);
GetMem(Buffer, MaxBufSize);
Repeat
Count:=FileRead(H, Buffer^, MaxBufSize);
If Count>0 then
Text:=Text+Copy(Buffer, 1, Count);
Until Count<=0;
FreeMem(Buffer, MaxBufSize);
FileClose(H);
sl.Text:=Text;
end;
где
sl - переменная типа TStringList, в которую загружают файл f;
f - полное имя открываемого файла.
2. Сохранение файла
function slSaveToFile(var sl: TStringList; f: string): boolean;
const MaxBufSize=$F000;
var H, Count: integer;
Buffer: pChar;
Text: string;
begin
Result:=false;
H:=FileCreate(f);
If H=-1 then
Exit;
Result:=true;
Text:=sl.Text;
FileSeek(H, 0, 0);
Repeat
Buffer:=pChar(Copy(Text, 1, MaxBufSize));
Count:=Length(Buffer);
If Count>0 then
begin
FileWrite(H, Buffer^, Count);
Text:=Copy(Text, Count+1, Length(Text));
end;
Until Count<=0;
FileClose(H);
end;
procedure TForm1.Button1Click(Sender: TObject);
const f1='E:\Delphi.txt';
f2='E:\Delphi2.txt';
var sl: TStringList;
begin
sl:=TStringList.Create;
slLoadFromFile(sl, f1);
Memo1.Text:=sl.Text;
slSaveToFile(sl, f2);
sl.Free;
end;
При нажатии на данную кнопку открывается файл, его содержимое загружается в компонент Memo1 (он служит в качестве блокнота), затем сохраняется в новом файле.
|