Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
0 / 0 / 0
Регистрация: 07.02.2021
Сообщений: 19
1

Удаление строки из файла

23.03.2021, 11:24. Показов 2537. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Ребят есть файл в который мы записываем "Файлы" : имя файлу и расширение .

Нужно сделать метод добавление записи и метод удаления записи ...
Метод добавления сделал, а как удалить запись не знаю.

Суть метода удаления : Пользователь вводить имя файлу, найти его в файле и удалить всю строку ( имя + расширение )

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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
using namespace std;
#include <iostream>
#include <fstream> // робота с файлами
 
 
class list
 
{
  private:
    string name; // Имя файлу
    string expansion; // расширение
 
 
 
 
public: 
    void Add_a_file()// Метод добавление нового файла 
    {
        cout << "Добавление нового файла : \n" << endl;
        cout << "Введите имя файлу : " << endl;
        cin >> name;
 
        cout << "Введите расширение файлу : " << endl;
        cin >> expansion;
 
        
 
        ofstream fout;
        fout.open("list.txt", ofstream::app);
 
        if (!fout.is_open())
        {
            cout <<"Error"<< endl;
        }
        else
        {
            fout << "\nИмя файлу : " << name << " расширение : " << expansion;
        }
        fout.close();
    }
 
 
 
    void Delete()// Метод удаление записи 
    {
  
        
    }
};
 
 
 
 
int main()
{
 
 
 
    list a;
    a.Add_a_file();
 
 
    
 
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.03.2021, 11:24
Ответы с готовыми решениями:

Удаление строки из файла\либо удаление самого файла.
День добрый, вот функция(используемые переменные объявленны ранее): void delete_cruise() { FILE...

Удаление строки из файла
Сабж, осуществляю ввод и вывод с помощью iostream и использованием векторного массива, нужно...

Удаление строки из файла
Кто может подсказать рабочую функцию удаление строки из файла. Поиск строки не нужен, только...

Удаление строки из файла
Здравствуйте! Подскажите пожалуйста, как реализовать функцию удаления нужной строки из файла....

5
1494 / 1209 / 821
Регистрация: 29.02.2016
Сообщений: 3,614
23.03.2021, 11:34 2
Цитата Сообщение от Kolya4 Посмотреть сообщение
как удалить запись
Читаете весь файл в лист, удаляете нужную строку, потом записываете
1
0 / 0 / 0
Регистрация: 07.02.2021
Сообщений: 19
23.03.2021, 12:02  [ТС] 3
afront, спасибо за внимание
Можете пожалуйста кодом намекнуть
0
1494 / 1209 / 821
Регистрация: 29.02.2016
Сообщений: 3,614
23.03.2021, 12:05 4
вот тут есть что то похожее
Вставить пустую строку перед строкой файла с заданным номером
1
0 / 0 / 0
Регистрация: 07.02.2021
Сообщений: 19
29.03.2021, 12:40  [ТС] 5
afront, Ну вот идея такова ... но вывод на екран какие-то цифры. Так по мне то запись строки в массив идёт неправильно.

Ребят помогите дописать код, пожалуйста.

Суть метода Delete, пользователь вводить слово на которое начинается строка в файле, если слово пользователя совпало с первым словом строки - удалить всю строку.

В комментариях старался подробно описать ход мыслей

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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
void Delete()
    {
        cout <<"Введите первое слово строки файла  : "<< endl;
        string slovo;
        getline(cin, slovo);
           
            ifstream fin; //объект для считывания информации из файла
 
            fin.open("ticket_office.txt"); //открываем файл в котором лежит инфа
 
 
            char data[20][500]; // массив куда будем сохранять инфу
            int count = 0, i=0;
   
 
            string str, first;
 
            while (count < 20 && getline(fin, str))// читаем файл, пока в нем есть информация
            {
               
                first = str.substr(0, str.find(" ")); // первое слово  строки
 
                if (first == slovo)// сравниваем слово строки с введеним словом
                { 
                    cout <<" Удалено !"<< endl; // то есть мы эту строку никуда не записываем, а значит - удалили 
                }
                else // если слово пользователя и первое слово строки не совпало - записываем в массив
                {
                    strcpy_s(data[count++], 255, str.c_str());   // сохранение строки в массив 
                }
 
            }
            fin.close(); // закрываем файл он нам больше не нужен
 
            remove("ticket_office.txt");// удаляем файл с старыми записями 
 
            cout << "Файл : " << data << endl; // выводим инфу массива data на экран 
 
            ofstream fout; 
            fout.open("ticket_office.txt");   // создаём новой файл
 
            fout << data; // записываем новую инфу которая хранится в массиве data в новой файл 
 
            fout.close();           
           
 
    }
Добавлено через 6 минут
В файле лежит информация вида :

Комаров Илья 8474636463 ...
Домельян Дора 3847477444 ...
Петров Федя 785325732 ...

Допустим пользователь ввёл слово "Комаров" - тогда в файле останутся данные :
Домельян Дора 3847477444 ...
Петров Федя 785325732 ...


А на данном этапе код работает не верно и в файл записывается неизвестные цифры вида : 004FD464
0
0 / 0 / 0
Регистрация: 07.02.2021
Сообщений: 19
29.03.2021, 18:51  [ТС] 6
Люди - есть какие нибудь мысли, как решить данную проблему
0
29.03.2021, 18:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.03.2021, 18:51
Помогаю со студенческими работами здесь

Удаление из файла строки
Есть файл (computers.dat) куда записываются данные (структура) о компьютерах (тип, год, цена)....

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

Удаление строки из файла
В общем у меня есть текстовый документ, в котором что-то записано таблицей. И мне надо удалить из...

Удаление строки из файла
Добрый день, возник вопрос возможно ли удалить/изменить в файле слово/строку, не перезаписывая при...

Удаление последней строки из файла
Добрый день, форумчане. Назрел такой вопрос у меня: как удалить последнюю строчку в файле и...

Удаление строки из файла по имени
Помогите пожалуйста удалить строку из файла по введенному имени в консоле.


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru