![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вопрос по TFileStream
DJ Kondakov © (2008-06-11 08:43:00)Здравствуйте! Делаю глобальное протоколирование Искючительных Ситуаций с помощью след. процедур:
procedure TForm1.ApplicationEvents1Exception(Sender: TObject; E: Exception);
begin
logexception(e);
end;
procedure tform1.logexception(exc:exception);
var
fs:tfilestream;
logname, buf: string;
m:word;
begin
logname:=extractfilepath(paramstr(0))+'errors.log';
if fileexists(logname) then m:=fmopenreadwrite else m:=fmcreate;
fs:=tfilestream.Create(logname,m);
fs.Seek(0,sofromend);
buf:=datetimetostr(now)+' - '+exc.classname+':'+exc.message;
fs.Write(buf,length(buf));
fs.Free;
showexceptionmessage(exc);
end;
procedure tform1.showexceptionmessage(ex:exception);
begin
showmessage('Произошла фатальная ошибка '+ex.ClassName+#13#10+ex.Message);
end;
В файле Errors.log получаю записи вроде
h \x11\x1рЬ\x13\x18с\x12 Зqц Г\x1Bц ёш\x12 Ђq\x10\x1 {"ц ёш\x12 З"ц 8с\x12 Ђ( \x11\x1ЁЬ\x13\x18с\x12 Зqц Г\x1Bц ёш\x12 Ђq\x10\x1 {"ц ёш\x12 З"ц 8с\x12 Ђh \x11\x1рЬ\x13\x18с\x12 Зqц Г\x1Bц ёш\x12 Ђq\x10\x1 {"ц ёш\x12 З"ц 8с\x12 Ђ
А должно быть:
<Дата и время возникновения> - <Имя ошибки>:<Сообщение об ошибке>
Что такое может быть?
Palladin (2008-06-11 09:44:00) [1]русская справка продается в магазинах в печатном виде
DJ Kondakov (2008-06-11 09:37:00) [2]М-м-да... А русской справки ни у кого нет?
Palladin (2008-06-11 09:28:00) [3]а ты со словариком
DJ Kondakov (2008-06-11 09:24:00) [4]Написал, как Slym предложил - все заработало.
DJ Kondakov (2008-06-11 09:24:00) [5]Взглядывал - там все по-английски
Anatoly Podgoretsky (2008-06-11 09:22:00) [6]> DJ Kondakov (11.06.2008 9:12:03) [3]
А в справке взглянуть?
Palladin (2008-06-11 09:19:00) [7]только без @
Поросенок Винни-Пух (2008-06-11 09:19:00) [8]Должен быть адрес, а у тебя указатель.
Anatoly Podgoretsky (2008-06-11 09:17:00) [9]> DJ Kondakov (11.06.2008 8:43:00) [0]
fs.Write(@buf[1], length(buf));
DJ Kondakov (2008-06-11 09:13:00) [10]Извиняюсь, страница долго грузилась...
Slym (2008-06-11 09:12:00) [11]PChar(buf)^
DJ Kondakov (2008-06-11 09:12:00) [12]А какое там должно быть значение? Я где-то видел, что там используется переменная типа array of char, но это, по-моему, то же самое.
Поросенок Винни-Пух (2008-06-11 08:53:00) [13]неправильное значение первого параметра для write