|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
21.03.2010, 00:09 | #1 |
Пользователь
Регистрация: 29.04.2009
Сообщений: 33
|
Запись в середину файла
Продолжения этой темы: http://programmersforum.ru/showthread.php?t=88120
Никак не получаеться реализовать запись в середину и конец файла. Каждый раз когда я открываю файл для записи в нем стираеться все содержимое. Можна ли как нибудь с помощью класса fstream реализовать запись в середину и конец файла? Мне нужно чтоб в середину файла писало с заменой того что сейчас там есть, к примеру если в файле строка "ЙЦУКЕНГШЩЗ", и у меня указатель на букве К, и я туда пишу А, должно получиться "ЙЦУАЕНГШЩЗ". |
21.03.2010, 00:58 | #2 |
Форумчанин
Регистрация: 03.01.2010
Сообщений: 229
|
нету такого системного вызова и формат данных не предусматривает запись в середину. Самому надо реализовывать это
подпись
|
21.03.2010, 01:10 | #3 |
Старожил
Регистрация: 26.04.2008
Сообщений: 2,645
|
Один из способов
Код:
|
21.03.2010, 01:12 | #4 |
Новичок
Джуниор
Регистрация: 21.03.2010
Сообщений: 2
|
пацаны помогите у меня отказал дисковод хочу комп переустановить вообще невозможно глючит плиззз
|
21.03.2010, 01:18 | #5 |
Пользователь
Регистрация: 29.04.2009
Сообщений: 33
|
а как можна записывать структуру в бинарном виде? и как узнавать размер файла в таком случае?
|
21.03.2010, 01:27 | #6 | |
Форумчанин
Регистрация: 03.01.2010
Сообщений: 229
|
Цитата:
Алгоритм может быть приблизительно следующим: Создать временный файл, туда скопировать часть данных до середины, записать те данные которые надо вставить, дописать остаток файла. закрыть и переименовать файл в оригинал. Или же посчитать размер записываемой структуры, переместиться в середину, считать байты во временный буфер размером записываемой структуры, записать то, что нужно вставить. Далее копировать во второй временный буффер часть файла, следующую за первым буффером, записать первый буфер, скопировать третью часть , записать второй буфер. и так до конца файла =) Для работы с файлами пользуюсь функциями из stdio, могу сбросить сюда функцию для вашей цели. А вообще планируйте формат файла, таким образом, чтобы все новые данные лежали в конце файла. Тем более если вы пишете БД, представте что будет если файл размером в 50 мб будет перезаписывать на каждый запрос.
подпись
Последний раз редактировалось liljon; 21.03.2010 в 01:36. |
|
21.03.2010, 01:50 | #7 | |
Пользователь
Регистрация: 29.04.2009
Сообщений: 33
|
Цитата:
|
|
21.03.2010, 02:57 | #8 |
Форумчанин
Регистрация: 03.01.2010
Сообщений: 229
|
Код:
подпись
Последний раз редактировалось liljon; 21.03.2010 в 02:59. |
21.03.2010, 13:40 | #9 | |
Пользователь
Регистрация: 29.04.2009
Сообщений: 33
|
Цитата:
|
|
21.03.2010, 13:51 | #10 |
Форумчанин
Регистрация: 03.01.2010
Сообщений: 229
|
та ну вас в баню всех :\
подпись
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
запись файла | dedyshka | PHP | 5 | 07.12.2009 17:15 |
Восстановление окна на середину экрана. | Airou | Общие вопросы Delphi | 5 | 27.10.2009 15:40 |
Запись из файла в переменную | Sekt | Общие вопросы C/C++ | 1 | 20.10.2009 13:02 |
Запись/чтение из файла (С++) | alexov | Общие вопросы C/C++ | 15 | 18.01.2009 17:35 |