![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как дописать в конец текстового файла? [D7, WinXP]
jeon © (2004-07-08 18:04:00)Как дописать в конец текстового файла? Или в середину. Если можно с примером...
MMF (2004-07-09 10:42:00) [1]Fay (09.07.04 08:18) [10]
пасиба. Сложно написать легко, а просто и понятно - сложнее :-)
Fay (2004-07-09 08:18:00) [2]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;
jeon (2004-07-09 06:35:00) [3]Спасибо большое...
wl (2004-07-08 19:52:00) [4]Чём только не пользуются для работы с файлами. F1 TFileStream
Fay (2004-07-08 19:32:00) [5]2IceBeerg © (08.07.04 18:30) [6]
div. Есть такое слово
IceBeerg (2004-07-08 18:30:00) [6]В конец это Append
А в середину это Seek Trunc от FileSize/2
MMF (2004-07-08 18:29:00) [7]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;
clickmaker (2004-07-08 18:16:00) [8]StringList.LoadFromFile
StringList.Insert / Add
StringList.SaveToFile
pasha_golub (2004-07-08 18:14:00) [9]Дописать Append
Fay (2004-07-08 18:11:00) [10]createfile/setfilepointer/writefile+f1
ssk (2004-07-08 18:08:00) [11]так все таки куда? конец и середина - это разные вещи. подход в свою очередь тоже будет разный.