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

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

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

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

02.06.2011, 21:59. Просмотров 419. Ответов 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> возможно, имеется в виду "->"
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.06.2011, 21:59     Функция удаления из базы данных
Посмотрите здесь:

C++ двусвязный список - функция удаления
C++ Алгоритм удаления записи из базы данных
C++ Функция удаления из базы данных (Найти ошибки)
функция в си++ для удаления элемента C++
Функция удаления на С C++
C++ Функция удаления подстроки из строки
Не выполняется функция удаления C++
Функция удаления из списка C++
C++ Функция удаления поиск ошибок
Односвязный список.Функция удаления C++
C++ Функция удаления текста в скобках
C++ Функция удаления из двусвязного списка

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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), ошибки похоже из-за неправильного обращения к указателям, т.е место "." надо "->"
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), ошибки похоже из-за неправильного обращения к указателям, т.е место "." надо "->"
Простите, тупанул, мой косяк.
Сделал массив, ошибок не выдает, но прога работает не правильно. Никакой кроме первой строки не находит, а если выбрать первую строку то удаляет все содержимое базы.
Yandex
Объявления
02.06.2011, 22:30     Функция удаления из базы данных
Ответ Создать тему
Опции темы

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