|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
26.07.2010, 15:44 | #1 |
Пользователь
Регистрация: 23.03.2010
Сообщений: 43
|
Ошибка при чтении из файла
Здравствуйте.
При чтении данных бинарного дерева из файла возникает следующая ошибка: Debug assertion failed! Expressionbuffer!=0) Подскажите, как с этим бороться? Код:
|
26.07.2010, 15:52 | #2 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
26.07.2010, 16:11 | #3 |
Пользователь
Регистрация: 23.03.2010
Сообщений: 43
|
wb+ - создать бинарный файл для чтения и записи
rb+ - открыть существующий бинарный файл для чтения и записи Да там-то все в порядке, данные записываются в файл корректно. Ошибка вылетает в функции Load_Tree. |
26.07.2010, 20:58 | #4 |
Старожил
Регистрация: 21.03.2009
Сообщений: 2,193
|
Вы же записываете сразу весь объект, вместе со всей его внутренней структурой и - самое главное! - вместе с указателями. Естественно, что если записать в файл значение указателя, то потом при чтении его ничего хорошего не получится.
Лучше пишите отдельно все элементы - сначала значение, потом, например, для каждого указателя флаг типа bool - есть дочерний узел или нет. Если есть, то загружаете значение из следующего узла, его флаги дочерних элементов и создаете новый узел с этим значением и вызываете снова функцию чтения, после чего втыкаете и этот узел как дочерний... Немного путанно, пожалуй, но главное - не записывайте и не записывайте указатели в файл/из файла; выделяйте память для новых узлов, заполняя их поля загруженными по отдельности значениями и потом приделывайте эти узлы в качестве дочерних уже созданному.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта Тема на форуме, посвященная ему же |
26.07.2010, 21:28 | #5 |
Пользователь
Регистрация: 23.03.2010
Сообщений: 43
|
Так вот оно в чем дело... Спасибо за подсказку!
|
08.08.2010, 20:28 | #6 |
Регистрация: 08.08.2010
Сообщений: 8
|
А "+" тут ни на хрен не нужен, он означает дозапись в конец файла.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ошибка при чтении mp3 тегов | Anfall | Мультимедиа в Delphi | 12 | 25.07.2010 03:31 |
ошибка при чтении файла | ongleb | Общие вопросы C/C++ | 17 | 30.07.2009 13:48 |
ошибка при чтении файла | Alik-Soldier | Общие вопросы C/C++ | 1 | 31.05.2009 20:44 |
Проблема при чтении из файла | Satorin | Общие вопросы Delphi | 2 | 17.12.2008 11:32 |
Ошибка при чтении БД из файла!! | sting | БД в Delphi | 4 | 14.12.2008 22:23 |