crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> чтение из бинарного файла
ff0000-00ff00
  опции профиля:
сообщение 23.12.2011, 20:49
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 19
Регистрация: 2.11.2011
Пользователь №: 2974

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




Репутация:   0  


Если записываю в бинарный файл закрываю его открываю и читаю из него, то всё отлично.
FILE *F;
    struct servername{QString name;};
    servername dat;
    dat.name="OLOLO";
    F=fopen("settings.bin","wb");
    fwrite(&dat,sizeof(dat),1,F);
    fclose(F);
    F=fopen("settings.bin","rb");
    servername dat2;
    fread(&dat2.name,sizeof(dat2),1,F);
    fclose(F);



Но если начинаю только читать из файла, то данные недоступны
FILE *F;
    struct servername{QString name;};
F=fopen("settings.bin","rb");
    servername dat2;
    fread(&dat2.name,sizeof(dat2),1,F);
    fclose(F);


Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
sidsukana
  опции профиля:
сообщение 23.12.2011, 22:46
Сообщение #2


Участник
**

Группа: Участник
Сообщений: 158
Регистрация: 23.12.2010
Из: Челябинск
Пользователь №: 2296

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




Репутация:   2  


Из студии запускаешь в отладке? Незнаю почему но у меня никогда при запуске в отладке программы не хотели грузить никакие ресурсы (файлы, конфиги и тд). Попробуй вначале запустить, потом или командой если консоль, или кнопкой если гуй, начать читать файл.

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

Сообщение отредактировал sidsukana - 23.12.2011, 22:46
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Iron Bug
  опции профиля:
сообщение 23.12.2011, 22:48
Сообщение #3


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

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

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




Репутация:   12  


а ты данные-то как-то используешь? поди компилер их схомячил под оптимизацию...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 23.12.2011, 23:02
Сообщение #4


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

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

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




Репутация:   44  


Потому что не POD-типы, коим и является QString, так сохранять нельзя. Нужно использовать серилизацию.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ff0000-00ff00
  опции профиля:
сообщение 23.12.2011, 23:02
Сообщение #5


Студент
*

Группа: Участник
Сообщений: 19
Регистрация: 2.11.2011
Пользователь №: 2974

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




Репутация:   0  


Цитата(sidsukana @ 23.12.2011, 23:46) *
Из студии запускаешь в отладке? Незнаю почему но у меня никогда при запуске в отладке программы не хотели грузить никакие ресурсы (файлы, конфиги и тд). Попробуй вначале запустить, потом или командой если консоль, или кнопкой если гуй, начать читать файл.

Это именно если при запуске программы выполняется чтение файла. Если запустить программу без отладчика, при запуске все прочтется...
отладку запускаю в qt creator. Проблему решил путём изменения структуры
FILE *F;
    struct servername{char name[20];};
    F=fopen("../settings.bin","rb");
    servername dat;
    fread(&dat.name,sizeof(dat),1,F);
    fclose(F);
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ilyabvt
  опции профиля:
сообщение 24.12.2011, 0:35
Сообщение #6


Активный участник
***

Группа: Участник
Сообщений: 297
Регистрация: 23.6.2011
Пользователь №: 2765

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




Репутация:   3  


Цитата
Из студии запускаешь в отладке? Незнаю почему но у меня никогда при запуске в отладке программы не хотели грузить никакие ресурсы (файлы, конфиги и тд).

Потому что во время отладки, рабочей директорией является не директория где лежит исполняемый файл, а директория с проектом (данный фактор может зависеть от среды программирования).
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 28.3.2024, 18:01