С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Delpix
delpix.ru
19 / 19 / 1
Регистрация: 06.05.2011
Сообщений: 235
#1

Функция удаления из базы данных - C++

02.06.2011, 21:59. Просмотров 496. Ответов 2
Метки нет (Все метки)

Вот рабочая функция удаления моего друга:
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
void del(int n)
{
        int d,i;
        pacient *db;
        db=new pacient[n];
        pacient *temp; 
        temp=new pacient[n]; 
        d=-1;
        while(d<0||d>n)
        {
                cout<<"Введите № строки которую хотите удалить: "; cin>>d;
                d--;
                if(d<0||d>n) cout<<"Ошибка!!! Такой строки не существует..."<<endl;
        }
        ifstream fin("pacient.txt", ios::in);
        for(i=0;i<n;i++)
        {
                fin>>db[i].familiy>>db[i].ima>>db[i].otchestvo>>db[i].diagnoz>>db[i].sostoynie>>db[i].lechashiy_vrach>>db[i].nomer>>db[i].nomer_palati>>db[i].god>>db[i].tip_otdelenij>>db[i].dom_lech;
        }
        fin.close();
        for(i=0;i<d;i++) temp[i]=db[i];
        for(i=d+1;i<n;i++) temp[i-1]=db[i];
        delete []db;
        n--;
        ofstream fout("pacient.txt", ios::out);
        fout.clear();
        for(i=0;i<n;i++)
        {
                fout<<" "<<temp[i].familiy<<" "<<temp[i].ima<<" "<<temp[i].otchestvo<<" "<<temp[i].diagnoz;
                fout<<" "<<temp[i].sostoynie<<" "<<temp[i].lechashiy_vrach<<" "<<temp[i].nomer<<" "<<temp[i].nomer_palati<<" "<<temp[i].god<<" "<<temp[i].tip_otdelenij<<" "<<temp[i].dom_lech;
        }
        fout.close();
}
Вот моя, неработающая, с небольшими изменениями:
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
void del(int n)
{
        int d,i;
        Abbase *z5;
        z5=new Abbase[n];
        Abbase *fio; 
        fio=new Abbase[n]; 
        d=-1;
        while(d<0||d>n)
        {
                cout<<"Введите № строки которую хотите удалить: "; cin>>d;
                d--;
                if(d<0||d>n) cout<<"Ошибка!!! Такой строки не существует..."<<endl;
        }
        ifstream fin("base.txt", ios::in);
        for(i=0;i<n;i++)
        {
                fin>>z5.number>>z5.family>>z5.f_name>>z5.l_name>>z5.gr>>z5.st;  
        }
        fin.close();
        for(i=0;i<d;i++)fio[i]=z5[i];
        for(i=d+1;i<n;i++) fio[i-1]=z5[i];
        delete []z5;
        n--;
        ofstream fout("base.txt", ios::out);
        fout.clear();
        for(i=0;i<n;i++)
        {
              fout <<endl<<z5.number<<" "<<z5.family<<" "<<z5.f_name<<" "<<z5.l_name<<" "<<z5.gr<<" "<<z5.st;
        }
        fout.close();
}
У меня структура Abbase у друга pacient
В чем проблема?Компилятор выдает:

1>c:\users\user\documents\visual studio 2010\projects\abbase 0.36\abbase 0.36\struct.h(176): error C2228: выражение слева от ".number" должно представлять класс, структуру или объединение
1> тип: Abbase *
1> возможно, имеется в виду "->"
1>c:\users\user\documents\visual studio 2010\projects\abbase 0.36\abbase 0.36\struct.h(176): error C2228: выражение слева от ".family" должно представлять класс, структуру или объединение
1> тип: Abbase *
1> возможно, имеется в виду "->"
1>c:\users\user\documents\visual studio 2010\projects\abbase 0.36\abbase 0.36\struct.h(176): error C2228: выражение слева от ".f_name" должно представлять класс, структуру или объединение
1> тип: Abbase *
1> возможно, имеется в виду "->"
1>c:\users\user\documents\visual studio 2010\projects\abbase 0.36\abbase 0.36\struct.h(176): error C2228: выражение слева от ".l_name" должно представлять класс, структуру или объединение
1> тип: Abbase *
1> возможно, имеется в виду "->"
1>c:\users\user\documents\visual studio 2010\projects\abbase 0.36\abbase 0.36\struct.h(176): error C2228: выражение слева от ".gr" должно представлять класс, структуру или объединение
1> тип: Abbase *
1> возможно, имеется в виду "->"
1>c:\users\user\documents\visual studio 2010\projects\abbase 0.36\abbase 0.36\struct.h(176): error C2228: выражение слева от ".st" должно представлять класс, структуру или объединение
1> тип: Abbase *
1> возможно, имеется в виду "->"
1>c:\users\user\documents\visual studio 2010\projects\abbase 0.36\abbase 0.36\struct.h(187): error C2228: выражение слева от ".number" должно представлять класс, структуру или объединение
1> тип: Abbase *
1> возможно, имеется в виду "->"
1>c:\users\user\documents\visual studio 2010\projects\abbase 0.36\abbase 0.36\struct.h(187): error C2228: выражение слева от ".family" должно представлять класс, структуру или объединение
1> тип: Abbase *
1> возможно, имеется в виду "->"
1>c:\users\user\documents\visual studio 2010\projects\abbase 0.36\abbase 0.36\struct.h(187): error C2228: выражение слева от ".f_name" должно представлять класс, структуру или объединение
1> тип: Abbase *
1> возможно, имеется в виду "->"
1>c:\users\user\documents\visual studio 2010\projects\abbase 0.36\abbase 0.36\struct.h(187): error C2228: выражение слева от ".l_name" должно представлять класс, структуру или объединение
1> тип: Abbase *
1> возможно, имеется в виду "->"
1>c:\users\user\documents\visual studio 2010\projects\abbase 0.36\abbase 0.36\struct.h(187): error C2228: выражение слева от ".gr" должно представлять класс, структуру или объединение
1> тип: Abbase *
1> возможно, имеется в виду "->"
1>c:\users\user\documents\visual studio 2010\projects\abbase 0.36\abbase 0.36\struct.h(187): error C2228: выражение слева от ".st" должно представлять класс, структуру или объединение
1> тип: Abbase *
1> возможно, имеется в виду "->"
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.06.2011, 21:59
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Функция удаления из базы данных (C++):

Функция удаления из базы данных (Найти ошибки) - C++
У меня есть функция удаления строки из базы данных void Delete(int n) { int d,i; Abbase *db; system (&quot;cls&quot;); db=new Abbase;...

Алгоритм удаления записи из базы данных - C++
У меня есть алгоритм записи в файл: void Add(Abbase&amp; d, int&amp; ch) { system (&quot;cls&quot;); ofstream fout(&quot;base.txt&quot;,ios::app); cout...

Функция удаления текста в скобках [2], непосредственно функция + 12кб вложений - C++
Доброго времени суток, случилось так, что пришлось работать с с-строками (лаба, угу), в которой нужно удалить весь текст в скобках,...

Использование псевдопеременных: bd (3,5) = s, где bd - база данных, s - элемент базы данных, тогда с 3 по 5 элементы базы данных заменить на элемент s. - C++
всем доброго времени суток! есть у меня класс bd, массив элементов этого класса table, а вот сам метод: int copyTable(int a, int b) {...

Функция удаления на С - C++
Помогите исправить ошыбки в удалении вот полный код: #include &lt;stdio.h&gt; #include&lt;iostream.h&gt; #include &lt;conio.h&gt; void Prosm();...

Не выполняется функция удаления - C++
Функция удаления не выполняется. Вот код: #include &lt;iostream&gt; #define MAX 15 using namespace std; char *stack; // Ìàññèâ...

2
kjahert
49 / 49 / 5
Регистрация: 08.04.2011
Сообщений: 124
02.06.2011, 22:06 #2
C++
1
 fin>>db[i].familiy>>db[i].ima>>db[i].otchestvo>>db[i].diagnoz>>db[i].sostoynie>>db[i].lechashiy_vrach>>db[i].nomer>>db[i].nomer_palati>>db[i].god>>db[i].tip_otdelenij>>db[i].dom_lech;
C++
1
 fin>>z5.number>>z5.family>>z5.f_name>>z5.l_name>>z5.gr>>z5.st;
Отличия не находите,
У друга db[i] - массив
У вас z5 - не массив
И кстати если у вас классы разные то покажите их (Abbase , pacient), ошибки похоже из-за неправильного обращения к указателям, т.е место "." надо "->"
0
Delpix
delpix.ru
19 / 19 / 1
Регистрация: 06.05.2011
Сообщений: 235
02.06.2011, 22:30  [ТС] #3
Цитата Сообщение от kjahert Посмотреть сообщение
C++
1
 fin>>db[i].familiy>>db[i].ima>>db[i].otchestvo>>db[i].diagnoz>>db[i].sostoynie>>db[i].lechashiy_vrach>>db[i].nomer>>db[i].nomer_palati>>db[i].god>>db[i].tip_otdelenij>>db[i].dom_lech;
C++
1
 fin>>z5.number>>z5.family>>z5.f_name>>z5.l_name>>z5.gr>>z5.st;
Отличия не находите,
У друга db[i] - массив
У вас z5 - не массив
И кстати если у вас классы разные то покажите их (Abbase , pacient), ошибки похоже из-за неправильного обращения к указателям, т.е место "." надо "->"
Простите, тупанул, мой косяк.
Сделал массив, ошибок не выдает, но прога работает не правильно. Никакой кроме первой строки не находит, а если выбрать первую строку то удаляет все содержимое базы.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.06.2011, 22:30
Привет! Вот еще темы с ответами:

Функция удаления из списка - C++
помогите разобраться почему не работает функция удаления? плз #include &lt;iostream&gt; using namespace std; class Node{ public: ...

Функция удаления поиск ошибок - C++
Программа удаляет пункт записи в файле, но потом когда я хочу сделать просмотр заполняет его одной и тойже записью которая осталась....

Функция удаления из двусвязного списка - C++
Создал двусвязный список на основе класса, работают ввод элементов в список и вывод всего списка. Помогите пожалуйста с функцией удаления...

функция в си++ для удаления элемента - C++
Есть ли функция в си++ для удаления элемента,например из текста?) Запрещено создавать темы с бессмысленными названиями вроде...


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

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

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