crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> [РЕШЕНО] Работа с функцией seek, адаптация при работе с SetFilePointer
AD
  опции профиля:
сообщение 25.2.2010, 23:15
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Необходимо установить указатель файла в конец файла. Как это сделать?
Для того, чтобы установить в начало файла есть функция reset(), а для окончания файла?

Cобcтвенно говоря, мне необходимо правильно перевести следующие строки кода на Qt:
int dwPtr = SetFilePointer(*WriteHandle, 0, NULL, FILE_END);
    int dwError;
    if (dwPtr == INVALID_SET_FILE_POINTER) // Test for failure
{
    // Obtain the error code.
    dwError = GetLastError();

    // Deal with failure.
    // . . .

} // End of error handler

    offset = 0;

WriteHandle - указатель на файл (библиотека карт), куда записывается информация из других файлов. ReadHandle - читаемый на данный файл (карта), откуда эту информацию считывают. Мне важно понять как правильно перевести на Qt-шный стиль строчку кода:
int dwPtr = SetFilePointer(*WriteHandle, 0, NULL, FILE_END);

Заранее спасибо.

Сообщение отредактировал AD - 28.2.2010, 15:24
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
SABROG
  опции профиля:
сообщение 26.2.2010, 1:54
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

Спасибо сказали: 229 раз(а)




Репутация:   34  


Только два варианта.

QFile file("myfile");
if (!file.open(QIODevice::Append) {
    qDebug() << file.errorString();
    return false;
}


QFile file("myfile");
if (!file.open(QIODevice::ReadWrite) {
    qDebug() << file.errorString();
    return false;
}
file.seek(file.size()); // Qt сама использует этот метод


Ставить отрицательные значения не рекомендую, если для windows это может переместить указатель в обратную сторону, то в реализации для *nix метод вернет ошибку, так как в отличае от виндовой версии там стоит проверка значения смещения.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- AD   [РЕШЕНО] Работа с функцией seek   25.2.2010, 23:15
- - DEADHUNT   Цитата(AD @ 25.2.2010, 23:15) Мне важно п...   26.2.2010, 0:30
|- - AD   Цитата(DEADHUNT @ 26.2.2010, 0:30) зачем ...   26.2.2010, 0:46
- - Rocky   Цитата(AD @ 25.2.2010, 23:15) Для того, ч...   26.2.2010, 1:15
- - SABROG   Только два варианта. QFile file("myfile...   26.2.2010, 1:54
|- - AD   Цитата(SABROG @ 26.2.2010, 1:54) QFile fi...   26.2.2010, 10:17
- - Litkevich Yuriy   Цитата(AD @ 26.2.2010, 13:17) Система поп...   26.2.2010, 10:45
|- - AD   Цитата(Litkevich Yuriy @ 26.2.2010, 10:45...   26.2.2010, 11:02
- - Litkevich Yuriy   AD, а сам файл каких размеров?   26.2.2010, 13:11
|- - AD   Цитата(Litkevich Yuriy @ 26.2.2010, 13:11...   26.2.2010, 13:27
- - SABROG   Цитата(AD @ 26.2.2010, 13:27) я его ведь ...   26.2.2010, 14:21
|- - AD   Цитата(SABROG @ 26.2.2010, 14:21) Тогда л...   26.2.2010, 14:54
- - SABROG   Цитата(AD @ 26.2.2010, 14:54) Сможете пом...   26.2.2010, 15:32
|- - AD   Цитата(SABROG @ 26.2.2010, 15:32) При нал...   26.2.2010, 15:45
- - SABROG   Цитата(AD @ 26.2.2010, 15:45) unsigned in...   26.2.2010, 18:14
|- - AD   Цитата(SABROG @ 26.2.2010, 18:14) В прошл...   26.2.2010, 18:30
- - SABROG   Цитата(AD @ 26.2.2010, 18:30) В какой име...   26.2.2010, 21:40
|- - AD   Цитата(SABROG @ 26.2.2010, 21:40) Я не зн...   26.2.2010, 23:11
- - DEADHUNT   Цитата(AD @ 26.2.2010, 23:11) второе - но...   26.2.2010, 23:16
|- - AD   Цитата(DEADHUNT @ 26.2.2010, 23:16) это п...   26.2.2010, 23:46
|- - AD   offset - текущее положение в файле, shift - сдвиг....   27.2.2010, 0:47
- - SABROG   Цитата(DEADHUNT @ 26.2.2010, 23:16) это п...   27.2.2010, 0:18
- - SABROG   Цитата(AD @ 27.2.2010, 0:47) Будем считат...   27.2.2010, 2:56
|- - AD   У меня просьба к модераторам переименовать тему в ...   27.2.2010, 12:16
- - Litkevich Yuriy   Цитата(AD @ 28.2.2010, 16:50) Пожалуйста,...   28.2.2010, 15:13
|- - AD   Кто-нибудь сможет еще слегка подсказать? Есть ошиб...   28.2.2010, 17:23
|- - AD   Во блин... Случайно вчерашнее сообщение удалил. Ка...   1.3.2010, 12:47
- - SABROG   Если брать winapi код: -offset + shift И то как ...   1.3.2010, 15:39
|- - AD   В том то и дело, что если shift равно нулю, то тог...   1.3.2010, 15:52
- - SABROG   Цитата(AD @ 1.3.2010, 15:52) И посмотрите...   1.3.2010, 16:16
|- - AD   Цитата(SABROG @ 1.3.2010, 16:16) Сделайте...   1.3.2010, 17:07
- - BRE   Как я понял, кто-то хотел реализовать (через одно ...   1.3.2010, 17:42
|- - AD   Цитата(BRE @ 1.3.2010, 17:42) Как я понял...   1.3.2010, 18:00
- - BRE   Мне сложно по одной этой функции судить, что хотел...   1.3.2010, 18:31
- - AD   Изменяется. Сейчас делаю лог-файл для записи всех ...   1.3.2010, 18:48
- - AD   Ну тему можно закрывать. Последние изменения, кото...   22.3.2010, 17:04


Тема закрытаНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 16.4.2024, 15:27