|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
29.12.2009, 10:29 | #1 |
Пользователь
Регистрация: 04.12.2009
Сообщений: 63
|
файловый поток. Открыть\создать бинарник
Здравствуйте. Мне необходимо открыть бинарный файл для чтения\записи, если файла нет - создаётся.
По идее так должно работать: Код:
В нете рылся - нигде нет именно моего случая... Вообще, если целиком окинуть функцию - нужно открыть\создать бинарник, и добавить структуру. Формат файла - первые 2 байта - количество записей, а дальше сплошняком структуры... Предварительная версия: Код:
Последний раз редактировалось Darth.Vader; 29.12.2009 в 10:35. |
29.12.2009, 17:59 | #2 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
Думаю это связано с тем, что физически создать файл одновременно и для чтения и для записи невозможно. Из ситуации можно выйти сначала создав файл, к примеру, только для записи, затем закрыть его и снова открыть уже созданный файл для записи/чтения
Код:
|
29.12.2009, 18:36 | #3 | |
Форумчанин
Регистрация: 13.12.2009
Сообщений: 272
|
Цитата:
И деструктор сам закрывает файлы, а он вызовется при выхое из программы (удачном )
Если я помог вам - порадуйте меня, нажмите на весы слева
|
|
29.12.2009, 18:45 | #4 |
Форумчанин
Регистрация: 13.12.2009
Сообщений: 272
|
Другое дело что у тебя, автор, файл открывается каждый раз при запуске этйо функции, а она у тебя на добавление не работает!!!
ios::app флаг нужен так же
Если я помог вам - порадуйте меня, нажмите на весы слева
|
29.12.2009, 19:00 | #5 | |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
Цитата:
Насчёт деструктора верно, в общем во многом это дело вкуса, кто что находит проще, я предпочитаю контролировать выделенные мною ресурсы |
|
29.12.2009, 19:53 | #6 |
Пользователь
Регистрация: 04.12.2009
Сообщений: 63
|
Это попробую, спасибо. Тут проблема ещё одна: создал я этот файл вручную, всё как-бы работает, функция завершается корректно, но в файл ничего не пишется, и из него ничего не читается. Причём выполнение идёт гладко - трассировал... все функции (read и write) не вылетают... а файл как был 0 байт - так и остаётся...
Сегодня с преподом 2 пары втыкали - пришли к выводу, что нужен бубен - без него никак. |
29.12.2009, 19:53 | #7 |
Форумчанин
Регистрация: 13.12.2009
Сообщений: 272
|
Попробуй, потесть вполне адекватно работает
Если я помог вам - порадуйте меня, нажмите на весы слева
|
29.12.2009, 20:11 | #8 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
Но тут совершенно другая история) Флаг ios::app провоцирует примерно следующую схему: открывает временный файл на запись, открывает файл, указанный первым параметром на чтение, пытается копировать в тот, что открыть для записи из открытого на чтение всё его содержимое, затем переоткрывает на запись, а тот на чтение и перебрасывает обратно, на лицо оверхед, разве не так? ) Не многим лучше того, что предложил я )
|
29.12.2009, 20:58 | #9 | |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
Цитата:
Код:
Код:
|
|
29.12.2009, 21:04 | #10 | |
Форумчанин
Регистрация: 13.12.2009
Сообщений: 272
|
Цитата:
Если я помог вам - порадуйте меня, нажмите на весы слева
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Создать отдельный поток для отправки письма | betirsolt | Работа с сетью в Delphi | 2 | 28.12.2009 22:39 |
Как в VS 2008 создать поток? | MaxDDT | Общие вопросы C/C++ | 0 | 11.12.2009 21:53 |
OpenDialog и файловый поток. | (*_*) | Общие вопросы C/C++ | 1 | 03.06.2009 22:44 |
Создать RSS поток с помощью Web Service | damned20 | PHP | 1 | 22.05.2009 13:39 |