Форум: "Основная";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];
ВнизКак дописать в конец текстового файла? Найти похожие ветки
← →
jeon (2004-07-08 18:04) [0]Как дописать в конец текстового файла? Или в середину. Если можно с примером...
← →
ssk © (2004-07-08 18:08) [1]так все таки куда? конец и середина - это разные вещи. подход в свою очередь тоже будет разный.
← →
Fay © (2004-07-08 18:11) [2]createfile/setfilepointer/writefile+f1
← →
pasha_golub © (2004-07-08 18:14) [3]Дописать Append
← →
clickmaker © (2004-07-08 18:16) [4]StringList.LoadFromFile
StringList.Insert / Add
StringList.SaveToFile
← →
MMF (2004-07-08 18:29) [5]var
hFile: THandle;
size, Len: DWORD;
buf: PChar;
str: string;
begin
if Not(FUseServerLog) then Exit;
//если лог-файл еще не создан - создадим его
hFile:=CreateFile(PChar(FLogFileName),GENERIC_READ or GENERIC_WRITE, 0, nil,
OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL,0);
if (hFile=INVALID_HANDLE_VALUE) then
begin
ShowErrMessage("Не удалось создать лог-файл");
Exit;
end;
str:= FormatDateTime("hh:nn:ss:zzz", Now())+#$09;
buf:= PChar(str+ EventStr + #$0d +#$0a);
//дописываем в файл
size:= GetFileSize(hFile, NIL);
Len:= Length(Buf);
try
SetFilePointer(hFile, size + Len, nil, FILE_BEGIN);
SetEndOfFile(hFile);
SetFilePointer(hFile, size, nil, FILE_BEGIN);
WriteFile(hFile, Buf^, Len, size, nil);
finally
CloseHandle(hFile);
end;
end;
← →
IceBeerg © (2004-07-08 18:30) [6]В конец это Append
А в середину это Seek Trunc от FileSize/2
← →
Fay © (2004-07-08 19:32) [7]2IceBeerg © (08.07.04 18:30) [6]
div. Есть такое слово
← →
wl (2004-07-08 19:52) [8]Чём только не пользуются для работы с файлами. F1 TFileStream
← →
jeon (2004-07-09 06:35) [9]Спасибо большое...
← →
Fay (2004-07-09 08:18) [10]2MMF (08.07.04 18:29) [5]
Чего-то Вы страшное написали 8). Это делается чуть проще.var
h, n : DWORD;
s : string;
begin
h := CreateFile(PChar(FLogFileName), GENERIC_READ or GENERIC_WRITE, FILE_SHARE_READ, nil, OPEN_ALWAYS, 0, 0);
if h = INVALID_HANDLE_VALUE then
Application.MessageBox(PChar(SysErrorMessage(GetLastError)), "Еррор!!!", MB_OK or MB_ICONERROR)
else
try
s := FormatDateTime("hh:nn:ss:zzz", Now()) + #09 + EventStr + #13#10;
SetFilepointer(h, 0, nil, FILE_END);
WriteFile(h, PChar(s)^, Length(s), n, nil);
finally
CloseHandle(h);
end;
end;
← →
MMF (2004-07-09 10:42) [11]Fay (09.07.04 08:18) [10]
пасиба. Сложно написать легко, а просто и понятно - сложнее :-)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.039 c