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

C++

Войти
Регистрация
Восстановить пароль
 
OVERPOWER8
19 / 19 / 1
Регистрация: 29.11.2009
Сообщений: 224
#1

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

28.12.2009, 19:21. Просмотров 850. Ответов 3
Метки нет (Все метки)

В программе имеется класс 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;
}
Должно получиться : первая запись измененная, а вторая - исходная. Однако получается - две исходные, и одна - измененная.

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

Как удалить часть файла? - C++
Друзья как просто без промежуточного файла или переписывания в новый файл оставить в исходном файле нужный блок т.е. ИСХОДНЫЙ ФАЙЛ:...

Как заменить (вставить, удалить) часть байт в файле - C++ Builder
Я записываю данные в файл через fwrite(&amp;air, size, 1, Fz); соответственно у меня в файле несколько записей, как не трогая все записи...

Разделение содержимого файла - C++ Builder
Всем привет! Необходима помощь в разделении содержимого файла. (.cfg) Имеется форма с разными полями(номер, имя, регион, цвет, тип) ...

Вывод содержимого файла .pdf - C++ Builder
Уважаемые форумчане, подскажите, пожалуйста, как вывести содержимое файла .pdf в memo без помощи OpenDialog. P.S. Делаю электронный...

Вывод содержимого файла в stringgrid - C++ Builder
Как вывести содержимое файла в stringgrid?

Считывание содержимого Word файла - C++ Builder
Всем привет. Нужно считать содержимое файла Word. Написанный ниже код делает все что нужно, есть только маленькая проблемка. Если при...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
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
1
Gravity
562 / 556 / 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-командами.
0
rrrFer
Заблокирован
28.12.2009, 21:37 #4
Цитата Сообщение от Gravity Посмотреть сообщение
В лине тогда вобще можно обойтись без С++, сразу изменив файл shell-командами.
наверняка и в win можно )) - тока раздел С/С++
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.12.2009, 21:37
Привет! Вот еще темы с ответами:

Запись содержимого файла в поле memo - C++ Builder
Смотрите как сделал. Создал поле memo в поле это записал содержимое файла. Добавил на форму OnKeyPress , записываю нажатую клавишу в...

Вывести на экран содержимого текстового файла в обратном порядке - C++ Builder
Дан текстовый файл. Составить программу вывода на экран его содержимого в обратном порядке. Я знаю как вывести содержимое текстового...

Упорядоченное считывание содержимого текстового файла в StringGrig таблицу - C++ Builder
Здравствуйте уважаемые форумчанины. У меня есть текстовый файл например &quot;file.txt&quot; в котором записанны данные о сотрудниках file.txt ...

Подскажите как выбрать часть содержимого из ячейки excel - VBA
Помогите пожалуйста. Есть ячейка содержимого - &quot;0100001987 - МИТЮШКИНА М.А. Д&quot; нач&quot;. Из этого содержимого нужно в отдельную ячейку...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
28.12.2009, 21:37
Ответ Создать тему
Опции темы

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