Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Не могу открыть файл для добавления данных, юзая CreateFile

388
26 июля 2005 года
warezhka
129 / / 11.10.2004
Мне необходимо открыть файл и дописать туда пару строчек (если файла нет - его надо создать)

 
Код:
HANDLE hFile = CreateFile(szFile, GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);            

SetEndOfFile(hFile);


вот эта бадяга обнуляет файл, вместо того чтобы просто открыть... где я ошибся? помогите советом..
406
26 июля 2005 года
vitaly2003s
481 / / 27.07.2004
Цитата:
Originally posted by warezhka
Мне необходимо открыть файл и дописать туда пару строчек (если файла нет - его надо создать)

 
Код:
HANDLE hFile = CreateFile(szFile, GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);            

SetEndOfFile(hFile);


вот эта бадяга обнуляет файл, вместо того чтобы просто открыть... где я ошибся? помогите советом..



Ну естественно обнуляет так как функция SetEndOfFile устанавливает в текщюю позицию указатель конца файла. А так как текущяя позиция сразу после открытия файла функцией CreateFile нулевая т.е. самое начало,то соответсвенно и указатель конца файла устанавливается в самое начало и получается что у тебя в данном файле стает 0 байт данных.
Чтобы писать в конец данных делай так:
HANDLE hFile = CreateFile(szFile, GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
DWORD sz=GetFileSize(m_hFile,0);
SetFilePointer(m_hFile,sz,0,FILE_BEGIN);

388
27 июля 2005 года
warezhka
129 / / 11.10.2004
ой ё чето я с**ил... совсем мозги за компом потерял... спасибо....
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог