![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 04.12.2009
Сообщений: 63
|
![]()
Здравствуйте. Мне необходимо открыть бинарный файл для чтения\записи, если файла нет - создаётся.
По идее так должно работать: Код:
В нете рылся - нигде нет именно моего случая... Вообще, если целиком окинуть функцию - нужно открыть\создать бинарник, и добавить структуру. Формат файла - первые 2 байта - количество записей, а дальше сплошняком структуры... Предварительная версия: Код:
Последний раз редактировалось Darth.Vader; 29.12.2009 в 10:35. |
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
![]()
Думаю это связано с тем, что физически создать файл одновременно и для чтения и для записи невозможно. Из ситуации можно выйти сначала создав файл, к примеру, только для записи, затем закрыть его и снова открыть уже созданный файл для записи/чтения
Код:
|
![]() |
![]() |
![]() |
#3 | |
Форумчанин
Регистрация: 13.12.2009
Сообщений: 272
|
![]() Цитата:
И деструктор сам закрывает файлы, а он вызовется при выхое из программы (удачном ![]()
Если я помог вам - порадуйте меня, нажмите на весы слева
![]() |
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 13.12.2009
Сообщений: 272
|
![]()
Другое дело что у тебя, автор, файл открывается каждый раз при запуске этйо функции, а она у тебя на добавление не работает!!!
ios::app флаг нужен так же ![]()
Если я помог вам - порадуйте меня, нажмите на весы слева
![]() |
![]() |
![]() |
![]() |
#5 | |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
![]() Цитата:
![]() Насчёт деструктора верно, в общем во многом это дело вкуса, кто что находит проще, я предпочитаю контролировать выделенные мною ресурсы |
|
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 04.12.2009
Сообщений: 63
|
![]()
Это попробую, спасибо. Тут проблема ещё одна: создал я этот файл вручную, всё как-бы работает, функция завершается корректно, но в файл ничего не пишется, и из него ничего не читается. Причём выполнение идёт гладко - трассировал... все функции (read и write) не вылетают... а файл как был 0 байт - так и остаётся...
Сегодня с преподом 2 пары втыкали - пришли к выводу, что нужен бубен - без него никак. ![]() |
![]() |
![]() |
![]() |
#7 | |
Форумчанин
Регистрация: 13.12.2009
Сообщений: 272
|
![]() Цитата:
![]() ![]()
Если я помог вам - порадуйте меня, нажмите на весы слева
![]() |
|
![]() |
![]() |
![]() |
#8 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
![]()
Но тут совершенно другая история) Флаг ios::app провоцирует примерно следующую схему: открывает временный файл на запись, открывает файл, указанный первым параметром на чтение, пытается копировать в тот, что открыть для записи из открытого на чтение всё его содержимое, затем переоткрывает на запись, а тот на чтение и перебрасывает обратно, на лицо оверхед, разве не так? ) Не многим лучше того, что предложил я )
|
![]() |
![]() |
![]() |
#9 | |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
![]() Цитата:
Код:
Код:
|
|
![]() |
![]() |
![]() |
#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 |