Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Запись строки в файл, через функции WinAPI 
:(
    Опции темы
Belij
  Дата 21.12.2003, 12:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 19.12.2003

Репутация: нет
Всего: нет



Вот есть у меня такая трабла!Создаю я лог-файл.
------------------------------------------------------------------
log := CreateFile(
PChar('logfile.txt'),
GENERIC_READ or GENERIC_WRITE,
FILE_SHARE_READ,
nil,
CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL,
0
);
------------------------------------------------------------------
Далее по некому условию ошибки нужно записать еррор мессадж в этот файл. Еррор мессадж - константа стринговая.
Все это надо сделать через WinAPI функции. Смотрю описание -> функция WriteFile!
Делаю это так WriteFile(log,FILE_OPEN_ERROR,?,wrtn,nil);
? - не в курсе,указывать точное число байт? (для примера я написал 100) но ведь это строка из буфера!
в общем запись не происходит....
в чем я ошибаюсь?

bored.gif
PM MAIL   Вверх
p0s0l
Дата 21.12.2003, 13:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 58
Всего: 112



Попробуй
WriteFile(log,PChar(FILE_OPEN_ERROR)^,Length(FILE_OPEN_ERROR),wrtn,nil);

Это сообщение отредактировал(а) p0s0l - 21.12.2003, 13:36


--------------------
С уважением, г-н Посол.
PM   Вверх
Vit
Дата 21.12.2003, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 48
Всего: 207



А почему именно на API? Для ведения логов очень даже приемлемы стандартные средства, гораздо удобнее:


Код
Procedure Log(msg:string; FileName:string='');
 var f:textfile;
begin
 if FileName='' then FileName:=ChangeFileExt(Paramstr(0),'.log');
 assignfile(f, FileName);
 if FileExists(FileName) then Append(f) else Rewrite(f);
 Writeln(f, Datetimetostr(now)+'|'+msg);
 CloseFile(f);
end;


Использование:

Код
Log('Application is started');

Создаст или дозапишет в конец существующего файла по имени твоего приложения, только с расширением .log вместо .exe. Причём в лог будет записано 'Application is started' с указанием текущей даты.

Если надо указать другой лог файл то надо использовать как:
Код
Log('Application is started', 'c:\myspecial.log');






--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
NiJazz
Дата 21.12.2003, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Jazz coder
****


Профиль
Группа: Экс. модератор
Сообщений: 2286
Регистрация: 10.8.2003
Где: Москва

Репутация: 6
Всего: 23



Belij, если тебя прибило работать именно с файлами, связанными с дескрипторами, то лучше используй функции из VCL. Такие, как FileCreate, FileRead, FileWrite и т.д. Там возни меньше, чем в API и описание нормальное, делфийское.
В делфе из-за языка Паскаля неудобно работать с сишными апишками...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0450 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.