5 / 5 / 0
Регистрация: 29.04.2010
Сообщений: 88
1

Работа с файлами

29.04.2011, 00:55. Показов 883. Ответов 2
Метки нет (Все метки)

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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
#include"stdafx.h"
#include<string.h>
#include<fstream>
#include<iostream>
#include<stdlib.h>
using namespace std;
 
class sclad
{
public:
    int key_product;
    char name_isdel[20];
    int colich;
    float sum;
}buf;
 
 
class File
{
    char file_name[20];
    fstream *fstr;
    int maxpos;
public:
    File(char* file_name2){
        strncpy(file_name,file_name2,20);
        fstr=new fstream();}
 
    friend ostream &operator<<(ostream &stream, sclad &o);
    friend istream &operator>>(ostream &stream, sclad &o);
    int read(sclad &p);
    int modified(int pos);
    const char* getname();
    void Remote();
    void add(sclad);
    int Open();
    ~File(){};
    
 
};
 
int File::Open()
{
    fstr->open(file_name,ios::in | ios::out |ios::binary | ios::trunc);
    if(!fstr->is_open())
        return -1;
 
    return 0;
}
 
istream &operator>>(istream &stream, sclad &o)
{
    cout<<" key product"<<endl;
    cin>>o.key_product;
    cout<<" name product"<<endl;
    cin>>o.name_isdel;
    cout<<" numder probuct"<<endl;
    cin>>o.colich;;
    cout<<" vaiue probuct"<<endl;
    cin>>o.sum;
    return stream;
}
 
ostream &operator<<(ostream &stream, File &o)
{
    sclad p;
    stream<<"File"<<o.getname()<<endl;
    o.Remote();
    while(o.read(p))
    {
 
    stream<<p.key_product<<endl;
    stream<<p.name_isdel<<endl;
    stream<<p.colich<<endl;
    stream<<p.sum<<endl;
    }
    return stream;
}
 
void File::add(sclad buf)
{
    fstr->seekp(0,ios_base::end);
    fstr->write(reinterpret_cast<char*>(&buf),sizeof(sclad));
    fstr->flush();
}
void File::Remote()
{
    fstr->seekg(0,ios_base::beg);
    fstr->seekp(0,ios_base::beg);
    fstr->clear();
}
 
 
int File::read(sclad &p)
{
    if(!fstr->eof() && fstr->read(reinterpret_cast<char*>(&p),sizeof(sclad)))
        return 1;
    fstr->clear();
    return 0;
}
    // ФУНКЦИЯ УДАЛЕНИЯ но работает некорректно
int File::modified(int pos)
{   
    Remote();
    fstr->seekp(0,ios_base::end);
    maxpos=fstr->tellp();
    maxpos/=sizeof(sclad);
    if(maxpos>pos) return -1;
    fstr->seekp(pos*sizeof(sclad),ios::beg);
    fstr->write(reinterpret_cast<char*>(&buf),sizeof(sclad));
    while(pos<maxpos)
    {
        fstr->read(reinterpret_cast<char*>(&buf),sizeof(sclad));
        fstr->seekp(-2*sizeof(sclad),ios_base::cur);
        fstr->write(reinterpret_cast<char*>(&buf),sizeof(sclad));
        fstr->seekg(sizeof(sclad),ios_base::cur);
        pos++;
    }
    strcpy(buf.name_isdel," ");
    buf.key_product=0;
        buf.colich=0;
        buf.sum=0;
        fstr->seekp(-sizeof(sclad),ios_base::end);
    fstr->write(reinterpret_cast<char*>(&buf),sizeof(sclad));
    fstr->flush();
    //return 0;
}
 
 
 
const char* File::getname()
{
    return this->file_name;
}
 
int main()
{
    char i,key;
    File myfile("fil");
    if(myfile.Open()==-1)
    {
        cout<<"Can't open the file "<<endl;
        return -1;
    }
 
    do
    {
        cout<<" 1. enter new product"<<endl;
        cout<<" 2. image file"<<endl;
        cout<<" 3. modified"<<endl;
        cout<<" 4. Exit "<<endl;
        cout<<" Enter para menu"<<endl;
        cout<<"->";
        cin>>i;
 
        switch(i)
        {
        case '1':
            cin>>buf;
            myfile.add(buf);
            break;
        case '2':
            cout<<myfile<<endl;
            break;
        case '3':
            cout<< "enter key"<<endl;
            cin>>key;
            myfile.modified(key);
            break;
        }   
    }while((i<'5') & (i>'0'));
    return 0;
}
если есть какой исходник вышлите с примером удаления.
0
29.04.2011, 00:55
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.04.2011, 00:55
Ответы с готовыми решениями:

Работа с файлами , хотелось бы с windows system файлами
всем привет, нужна интересная идея по программированию, работа с файлами , хотелось бы с windows system файлами, у вас есть какая-то идея?...

Работа с файлами(Запись,чтение,работа с данными)
Здравствуйте, никак не могу осилить файлы... Для начала вот само задание: В справочной автовокзала хранится расписание движения автобусов....

Лабораторная работа №5. Работа с файлами и алгоритмы сортировки
1. Написать функцию Load для считывания из текстового файла (например, Workers.txt) информации о работниках и заработной плате. В первой...

2
 Аватар для Mиxaил
542 / 447 / 162
Регистрация: 10.12.2009
Сообщений: 1,857
29.04.2011, 15:35 2
Задание нормально написать можете??
0
5 / 5 / 0
Регистрация: 29.04.2010
Сообщений: 88
29.04.2011, 20:22  [ТС] 3
Есть склад в котором имеются продукция. НУжно произвести инвентаризацию. ключ продукции название , количество, цена должны хранитьсяи в файле. если изменится количество или ваще продукции не станет, нужно изменить данные файла соотвественно. у меня уже есть всё кроме инвентаризации. Но я у вас хотел узнать как изменить и удалить . У мя чёта не получается)
0
29.04.2011, 20:22
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.04.2011, 20:22
Помогаю со студенческими работами здесь

Работа с файлами, чтение/работа со строкой
Доброго времени суток. Начал работать с C++ Builder 6. Есть текстовый файл .txt с различными строками, как можно производить...

Работа с файлами
Здраствуйте мне нужно чтобы этот код работал по принципу считывает из текстового файла информацию, обрабатывает ее в соответствии с...

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

Работа с файлами в С++
Здравствуйте! Следующая проблема: С++ не может открыть файл. Пробовал и абсолютный и относительный путь, и Visual Studio и Clion....

Работа с файлами!
Есть такие вопросы: например у нас есть 3 папки: уже существующие: New, now еще не создана: reserv 1. как создать папку...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Опции темы

Новые блоги и статьи
Какой Python Web-фреймворк лучший: Django, Flask или FastAPI?
stackOverflow 19.02.2025
В разработке под веб Python занимает особое место благодаря своей универсальности и богатой экосистеме. При создании веб-приложений разработчики сталкиваются с важным выбором - какой фреймворк. . .
Использование кэша Laravel - полный гайд
bytestream 18.02.2025
Кэширование - один из наиболее эффективных способов повышения производительности веб-приложений. В современном мире, где скорость загрузки страниц напрямую влияет на удержание пользователей и. . .
Создаем REST API в Laravel с аутентификацией и Passport
bytestream 18.02.2025
Разработка современных веб-приложений все чаще требует создания надежного и хорошо структурированного API. REST API стал стандартом де-факто для построения взаимодействия между клиентской и серверной. . .
Пайплайны в Laravel - полный гайд
bytestream 18.02.2025
Разработка современных веб-приложений часто требует обработки сложных процессов, состоящих из множества последовательных шагов. Например, при создании системы комментариев может потребоваться. . .
Как правильно использовать @required в Symfony
bytestream 18.02.2025
При разработке приложений на Symfony мы часто сталкиваемся с необходимостью внедрения зависимостей. Фреймворк предоставляет несколько способов управления этим процессом, и одним из таких инструментов. . .
Система безопасности в Laravel: возможности и примеры
Wired 18.02.2025
Каждый день появляются новые виды атак и уязвимостей, которые могут поставить под угрозу конфиденциальные данные пользователей и функционирование всей системы. В этом контексте выбор надежного. . .
Давайте сравним Django и Laravel
Wired 18.02.2025
Django и Laravel - два мощных инструмента, которые часто сравнивают между собой. Оба фреймворка предлагают разработчикам богатый набор возможностей для создания масштабируемых веб-приложений, но. . .
Laravel или React - что лучше?
Wired 18.02.2025
В разработке веб выбор правильного инструмента часто определяет успех всего проекта. Особенно интересным представляется сравнение Laravel и React - двух популярных технологий, которые часто. . .
Laravel 11: новые возможности, гайд по обновлению
Wired 18.02.2025
Laravel 11 - это новая масштабная версия одного из самых популярных PHP-фреймворков, выпущенная в марте 2024 года. Эта версия продолжает традицию внедрения передовых технологий и методологий. . .
Миграции в Laravel
Wired 18.02.2025
Разработка веб-приложений на Laravel неразрывно связана с управлением структурой базы данных. При работе над проектом часто возникает необходимость вносить изменения в схему базы данных - добавлять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru