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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
butoxors1
0 / 0 / 1
Регистрация: 21.05.2013
Сообщений: 26
#1

Поиск и замена поля структуры в файле - C++

14.06.2014, 19:20. Просмотров 545. Ответов 3
Метки нет (Все метки)

Всем привет, возникла проблема с заменой определённой строки в файле. Задание состоит в том, что бы найти нужное поле в файле структуры и заменить его на новое, код вроде работает, но создаёт копии в конце файла.
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
28
29
30
31
32
fstream f1(filename,ios::in);
            fstream f2("new",ios::out|ios::trunc);
            cout<<"Введите назначение склада для замены : ";
            cin>>poisk;
            fstream f2("new",ios::out|ios::app);
            while(!f1.eof()){
 
                f1.read((char*)&sclad,sizeof(SCLAD));
 
                if(strcmp(sclad.sclad,poisk)==0){
                    cout<<"Найдено совпадение!"<<endl;
                    cout<<sclad.sclad<<"\t\t"<<sclad.massa<<'\t'<<sclad.norma<<endl;
                    cout<<"_____________________________________________________________"<<endl;
                    cout<<"Заменить данные? 0-нет, 1-да : ";
                    cin>>l;
                    if(l==1){
                        cout<<"Введите данные для замены : "<<endl;
                        cout << "Введите Назначение склада: ";
                        cin >> sclad.sclad;
                        cout << "Введите массу продукции: ";
                        cin >> sclad.massa;
                        cout << "Введите норму складских запасов: ";
                        cin >> sclad.norma;
                        cout<<"1 действие"<<endl;
                        f2.write((char*)&sclad,sizeof(SCLAD));
                    }
                    else
                        f2.write((char*)&sclad,sizeof(SCLAD));
                }
                else
                        f2.write((char*)&sclad,sizeof(SCLAD));
            }f1.close();f2.close();
Жду ваших предложений...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.06.2014, 19:20
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Поиск и замена поля структуры в файле (C++):

Поиск и замена текста в файле - C++
Добрый день. Хочу попробовать написать программу, которая будет выполнять поиск и замену заданного текста в файле. Подскажите,...

Поиск и замена символов в файле - C++
Добрый вечер(день)! Пытаюсь разобраться с задачей, есть файл в нем нужно найти слово и заменить на другое,замена может быть разной длины и...

Поиск слова в файле и его замена - C++
Не могу никак решить одну проблему. Мне осталось в 3 классе написать следующее: - Программа просит ввести строку, которую нужно заменить....

Поиск, замена, удаление в текстовом файле - C++
Добрый день. У меня есть текстовый файл с информацией(типа: № Имя Фамилия). Как можно осуществить поиск по номеру записи и вывод ее в...

Поиск и замена/удаление в текстовом файле - C++
Есть функция осуществляющая поиск в файле, по элементам считанных структур. Затем найденную структуру нужно сохранить в другой файл, а из...

Поиск и замена слов в файле txt - C++
Как заменить и найти слова в файле txt на С++. То есть есть файл вот такой структуры AAA БББ BBB 111 222 ыыы

3
dzrkot
zzzZZZ...
519 / 349 / 53
Регистрация: 11.09.2013
Сообщений: 2,004
14.06.2014, 19:30 #2
Цитата Сообщение от butoxors1 Посмотреть сообщение
ios::app
данные будут записывааться строго в конце файла

ну можно с помощью seekg/seekp параллельно идти по файлу и считывать, в случаю если считанная структура искомая - то переписываем её

но я всегда такие вещи делал считыванием файла целиком и обработкой данных в каком-либо контейнере - сортировка и т.п. , но это ресурсозатратнее. Если необходимо только удлаить запись то лучше сделать как я написал выше
0
butoxors1
0 / 0 / 1
Регистрация: 21.05.2013
Сообщений: 26
14.06.2014, 19:57  [ТС] #3
ну а если делать через ваш способ, то как примерно будет выглядеть код?
0
dzrkot
zzzZZZ...
519 / 349 / 53
Регистрация: 11.09.2013
Сообщений: 2,004
14.06.2014, 23:09 #4
Цитата Сообщение от butoxors1 Посмотреть сообщение
ну а если делать через ваш способ, то как примерно будет выглядеть код?
создаём контейнер(да или обычный массив) структур с возможностью произвольного доступа, записываем туда файл, ищем в файле структуру, меняем соотв ячейку на нашу новую, перезаписывает в файл, всё
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.06.2014, 23:09
Привет! Вот еще темы с ответами:

Поиск, считывание и замена символов в файле [C++] - C++
И снова здраствуйте! Нужно, чтобы программа находила в файле число от 0 до 5120, а после считывала оттуда данные после точки, присваивала...

Ошибка. Поиск и замена слова в текстовом файле - C++
Задача: найти и заменить одно слово на другое в текстовом файле. Я сделал вот так, но она работает не совсем правильно - теряет символ...

Реализовать поиск значения в файле и вывод на консоль структуры, в которой расположено значение - C++
Как сделать поиск значения в файле и вывод на консоль структуры, в которой расположено значение?

Поиск в текстовом файле всех слов, заданных в другом текстом файле - C++
Вообщем такое задание: Поиск в текстовом файле всех слов, заданных в другом текстом файле; Не могу понять почему не работает: ...


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

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

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