Форум программистов, компьютерный форум CyberForum.ru

Как заменить часть содержимого файла? - C++

Восстановить пароль Регистрация
 
OVERPOWER8
 Аватар для OVERPOWER8
19 / 19 / 1
Регистрация: 29.11.2009
Сообщений: 224
28.12.2009, 19:21     Как заменить часть содержимого файла? #1
В программе имеется класс Person, и объект User.

Когда пытаюсь заменить часть содержимого файла, вместо этого происходит очередная запись. Как это исправить?

Вот например:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
fstream File;
File.open("file.dtb", ios::in|ios::out|ios::binary);
 
// Добавляем 1 запись
File.seekp(number, ios::end);
File.write((char*)&User,sizeof(person));
 
number=1;
// Переходим ко второй и добавляем её (такую же как и 1):
File.seekp(number*sizeof(person), ios::beg);
File.write((char*)&User,sizeof(person));
 
// Изменяем первую          (данные в объекте User изменены)
number=0;
File.seekp(number*sizeof(person), ios::beg);
File.write((char*)&User,sizeof(person));
 
// Читаем файл
File.seekg(0, ios::beg);
 
cout << endl << "Reading file:" << endl;
while(!File.eof())
{
    File.read((char*)&User, sizeof(person));
    User.dispdata();
    cout << endl;
}
Должно получиться : первая запись измененная, а вторая - исходная. Однако получается - две исходные, и одна - измененная.

Как же тогда записать одну вместо другой?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.12.2009, 19:21     Как заменить часть содержимого файла?
Посмотрите здесь:

C++ Как удалить часть файла?
C++ Чтение содержимого файла
Как заменить (вставить, удалить) часть байт в файле C++ Builder
C++ Написать программу записи содержимого из одного файла в другой : Тип файла текстовый
Вывод содержимого файла C++
GCC как часть библиотек линковать статически, а часть динамически? C++
C++ Инвертирование содержимого файла
Написать программу по разбивке и анализу содержимого файла отчета работы ПО (log-файла) C++
C++ Сгенерировать файл и заменить часть встречающихся символов на плюс
C++ Заменить символы, вторая часть
C++ Обработка содержимого файла
Как осуществить открытие текстового файла и вывод содержимого в поле Edit C++ WinAPI

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
rrrFer
Заблокирован
28.12.2009, 21:11     Как заменить часть содержимого файла? #2
OVERPOWER8,
создать новый файл,записать первую строку измененной,вторую исходной. Удалить старый файл,переименовать новый. Удалить старый файл можно:
system("erase [имя файла]");
переименовать :
system("ren [старое имя] [новое имя]");
подробней по erase и ren читай введя команду help в командной строке, или erase /? и ren /? возможно работать небудет - надо там посмотреть ключи для удаления/переименования без уведомлений и т.п. - это конешно тока в win работать будет.
-------------------------
в lin для удаления можно использовать system("rm [имя файла]"); дляпереименования system("rename [имя1] [имя2]");
прочитать про них можно выполнив man rename и man rm
Gravity
 Аватар для Gravity
556 / 550 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
28.12.2009, 21:27     Как заменить часть содержимого файла? #3
Цитата Сообщение от rrrFer Посмотреть сообщение
в lin для удаления можно использовать system("rm [имя файла]"); дляпереименования system("rename [имя1] [имя2]");
прочитать про них можно выполнив man rename и man rm
В лине тогда вобще можно обойтись без С++, сразу изменив файл shell-командами.
rrrFer
Заблокирован
28.12.2009, 21:37     Как заменить часть содержимого файла? #4
Цитата Сообщение от Gravity Посмотреть сообщение
В лине тогда вобще можно обойтись без С++, сразу изменив файл shell-командами.
наверняка и в win можно )) - тока раздел С/С++
Yandex
Объявления
28.12.2009, 21:37     Как заменить часть содержимого файла?
Ответ Создать тему
Опции темы

Текущее время: 01:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru