Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вопрос по 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


Наверх

Титульная страница Поиск, карта сайта Написать письмо