Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 22.06.2020
Сообщений: 70

Как правильно сделать удаление из файла?

07.02.2021, 17:37. Показов 1314. Ответов 29
Метки с++ (Все метки)

Привет!!!

Уже задавал вопрос, но так и не нашел ответ.
Ссылка на прошлый вопрос - тык

Задача - сделать добавление товара( пример с клавиатурой ) и удаление.

Мой код функции добавления:

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
void Keyboard::input()
{   
ofstream outData;
outData.open("C:\\Users\\vadim_oyanwuw\\source\\repos\\Online-Store\\Online- 
Store\\Products\\Keyboard.csv", ios::app);
 
cout << "Enter name company keyboard:\t";
cin >> nameCompany;  // nameCompany - это обычный string
setNameCompany(nameCompany); // simple set
name_.push_back(nameCompany); // name_ - это стринговый вектор
string line = "--------------------";
outData << line << endl;
outData << nameCompany << endl;
outData << line << endl;
 
cout << "Enter model keyboard:\t";
cin >> model;
setModelProduct(model);
model_.push_back(model);
outData << line << endl;
outData << model << endl;
outData << line << endl;
 
}
Код функции удаления:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void Keyboard::deleteProduct()
{
    outData.open("C:\\Users\\vadim_oyanwuw\\source\\repos\\Online-Store\\Online-Store\\Products\\Keyboard.csv", 
        ios_base::trunc);
    
    if (!outData) // проверка
    {
        cerr << "error" << endl;
    }
    else
    {
 
        name_.pop_back(); // тут я хотел удалить последний элемент из вектора, и записать в файл
        outData << nameCompany << endl;
 
        model_.pop_back();
                outData << model << endl;
 
    }
    outData.close();
}
Проблема: при вызове функции удаления, выскакивает аборт(ошибочное окно)

Вопрос, как правильно сделать удаления( моя функция не работает ),
возможно есть у кого-то другая идея как это сделать.
И правильно ли я сделал добавления товара?
Надеюсь на понимание
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.02.2021, 17:37
Ответы с готовыми решениями:

Как правильно сделать удаление
Вот нормальный работающих исходник телефоной книги , только немогу сделать что бы он правельно удалял записи, получается он удаляет поля по...

Как сделать удаление строк из файла?
ключ - имя игрока, значение - запись (в секундах) есть код, который необходимо улучшить У меня есть файл с именем и результатом игрока...

Как сделать удаление строк из файла?
Прошу помочь переделать код,он удаляет первые 5 мест,а нужно удалять наоборот,начиная с 6,7 и т.д ключ - имя игрока, значение - запись...

29
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
07.02.2021, 20:41
Цитата Сообщение от DenAlpetyan Посмотреть сообщение
А существуют ли динамически изменяемые файлы в windows?
Файлы везде одинаковые.
0
15 / 15 / 3
Регистрация: 18.05.2019
Сообщений: 851
07.02.2021, 20:41
Для баз данных, к примеру.
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
07.02.2021, 20:43
Цитата Сообщение от DenAlpetyan Посмотреть сообщение
Для баз данных, к примеру.
У тебя не база данных, а текстовый файл. Его можно только перезаписывать. И поверь, это самый простой алгоритм из возможных. Но ты даже с ним не можешь справиться.
0
15 / 15 / 3
Регистрация: 18.05.2019
Сообщений: 851
07.02.2021, 20:45
oleg-m1973, Я понимаю, где у меня текстовый файл - я другой форумчанин.
0
0 / 0 / 0
Регистрация: 22.06.2020
Сообщений: 70
07.02.2021, 20:47  [ТС]
Спасибо за токсичность!
А не можно было сразу сказать о перезаписи?
Есть ссылка на хорошую статью?
0
07.02.2021, 20:48

Не по теме:

Из за любопытства в тему писал.

0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
07.02.2021, 20:51
Цитата Сообщение от DenAlpetyan Посмотреть сообщение
oleg-m1973, Я понимаю, где у меня текстовый файл - я другой форумчанин.
Извини, не посмотрел

Добавлено через 2 минуты
Цитата Сообщение от Ynrrohc Посмотреть сообщение
Спасибо за токсичность!
А не можно было сразу сказать о перезаписи?
Во-первых, там вроде и так это видно, даже невооружённым глазом.
Во-вторых, покажи, как сделал
0
15 / 15 / 3
Регистрация: 18.05.2019
Сообщений: 851
07.02.2021, 21:01

Не по теме:

oleg-m1973, Ничего страшного, это я в тему влез.


Ynrrohc,
Цитата Сообщение от Ynrrohc Посмотреть сообщение
Спасибо за токсичность!
А не можно было сразу сказать о перезаписи?
Есть ссылка на хорошую статью
Если вы спрашиваете и у меня, то это сложно, многоуровнево, вплоть до драйверов.
Даже в самом простом варианте.

Мой вопрос об этом средствами windows.

Добавлено через 3 минуты

Не по теме:

Это отдельная тема, ухожу.
Все извините.

0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
07.02.2021, 21:14
Цитата Сообщение от DenAlpetyan Посмотреть сообщение
Если вы спрашиваете и у меня, то это сложно, многоуровнево, вплоть до драйверов.
Даже в самом простом варианте.
Мой вопрос об этом средствами windows.
Нет, там проблема в том, что перезапись возможна только если все записи в файле одного размера. Если же записи разного размера - строки и т.д., то пытаться что-то менять внутри файла абсолютно бессмысленно.
А так - делай SetFilePointer куда тебе нужно, и перезаписывай
1
15 / 15 / 3
Регистрация: 18.05.2019
Сообщений: 851
07.02.2021, 22:07
oleg-m1973, Спасибо, я перемудрил в голове, думал там "базах данных" система с изменяющимися на диске файлами, в выделенном пространстве на диске. Разве так не делают, только помедленней работать будет. Это уже сложное программирование.

Добавлено через 4 минуты
Про SetFilePointer, я знаю - давно разобрал тему.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.02.2021, 22:07

Как сделать переменную для поиска и удаление файла(ов)?
Случился баг и мой текс превратился вот в этот: Нужно найти и удалить файл(ы) или папку при помощи .bat файла. Я сам смог сделать так,...

При выходе из программы удаление файла, как сделать!!
Как сделать, чтоб как только нажимаешь крестик для выхода из программы, вместе с закрытием удалялся файл?

Как правильно сделать загрузку из csv файла в таблицу (WPF MVVM)
вот заготовка using System; using System.Collections.Generic; using System.Linq; using System.Text; using...

Как сделать в программе удаление добавление студентов, с использованием типизированного файла
1) самое главное условие -Реализовать хранение, вывод, добавление, удаление и поиск студентов (т.е. всю функциональность) с использованием...

Как мне правильно сделать следующую задачу. Из файла нужно считать данные в структуру
Массив структур содержит информацию о 23 жителей населенного пункта: адрес проживания; фамилия; имя; номер телефона. Считать данные с файла...


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

Или воспользуйтесь поиском по форуму:
30
Ответ Создать тему
Новые блоги и статьи
[golang] Конкурентный fetcher с ограничением максимального количества одновременных HTTP запросов.
alhaos 10.06.2026
Задача Реализовать конкурентный fetcher с ограничением максимального количества одновременных HTTP запросов. Сигнатура func Fetch(urls string, maxConcurrent int) Result Пример urls :=. . .
[golang] Состояние гонки (race condition)
alhaos 10.06.2026
Состояние гонки (race condition) Состояние гонки (Race Condition) — это ошибка, возникающая при одновременном доступе нескольких горутин к одним и тем же данным без должной синхронизации. При этом. . .
Взрослые отношения, и почему они не получаются
kumehtar 09.06.2026
Когда в детстве ребёнок не получает от родителей чего-то важного, он лишается не просто приятных переживаний, а основы для формирования определённых внутренних качеств и навыков. Если ребёнок не. . .
[golang] Worker Pool
alhaos 09.06.2026
Worker Pool Worker Pool — паттерн конкурентной обработки задач в Go. Суть: фиксированное количество горутин-воркеров читают задачи из общего канала и пишут результаты в общий канал результатов. . . .
[golang] Pipeline
alhaos 08.06.2026
Pipeline Pipeline — паттерн конкурентной обработки данных в Go. Суть: данные проходят через цепочку независимых стадий, каждая из которых работает в своей горутине и общается с соседями через. . .
Свет внутри себя
kumehtar 07.06.2026
Пусть это будет здесь lIs4oanZS9Y
Программа для com-порта
Uhbif79 05.06.2026
Всем привет, давно хотел изучить Qt, начинал, бросал, потом снова начинал. И сейчас вот смог написать свою первую программу. До этого имел опыт программирования микроконтроллеров, писал прошивки на. . .
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru