Witam serdecznie.
Czy mógłby mi ktoś pomoc jak zrobić edycje / modyfikacje rekordu, ktory juz istnieje w bazie danych (jest w pliku txt).
Mam dwa sposoby. Zaden nie dziala.
void edytuj(char*in,Zoo*z,int n)
{
Zoo tab[1000];
int i=0;
int j=0;
int numer;
fstream plik;
plik.open(in);
for(i=0; i<=n; i++)
{
plik>>tab[i+1].numer;
plik>>tab[i].imie;
plik>>tab[i].gatunek;
plik>>tab[i].plec;
plik>>tab[i].wiek;
plik>>tab[i].przestrzen;
plik>>tab[i].typ;
plik>>tab[i].nr;
}
plik.close();
cout<<"Podaj imie :\n";
cin>>tab[numer-1].imie;
cout<<"Podaj gatunek :\n";
cin>>tab[numer-1].gatunek;
cout<<"Podaj plec :\n";
cin>>tab[numer-1].plec;
cout<<"Podaj wiek :\n";
cin>>tab[numer-1].wiek;
cout<<"Podaj przestrzen:\n";
cin>>tab[numer-1].przestrzen;
cout<<"Podaj typ :\n";
cin>>tab[numer-1].typ;
cout<<"Podaj numer lokalu:\n";
cin>>tab[numer-1].nr;
ofstream plik2;
plik2.open(in,ios::trunc);
for(j=0; j<=n; j++)
{
plik2<<tab[j+1].numer;
plik2<<tab[j].imie<<endl;
plik2<<tab[j].gatunek<<endl;
plik2<<tab[j].plec<<endl;
plik2<<tab[j].wiek<<endl;
plik2<<tab[j].przestrzen<<endl;
plik2<<tab[j].typ<<endl;
plik2<<tab[j].nr<<endl;
}
plik2.close();
}
oraz
wywolanie
case 6:
{
int n=rozmiar(argv[1]);
Zoo *z = new Zoo[n];
edytuj(argv[1],z,n);
i ten drugi sposob
int n=rozmiar(argv[1]);
Zoo *z = new Zoo[n];
zpliku(argv[1],z,n);
ofstream plik;
int wybor;
cout<<"Podaj numer zwierzatka, ktore chcesz edytowac"<<endl;
cin>>wybor;
string nowe_imie;
int nowy_wiek;
double nowa_przestrzen;
string nowy_typ;
int nowy_nr;
for (int i=0;i<n-1;i++)
{
if ((wybor!=z[i].numer))
{
if(wybor==1)
{
cout<<"Podaj nowe imie"<<endl;
cin>>nowe_imie;
strcpy(&plik[pozycja].imie, &nowe_imie);
// plik.imie==nowe_imie;
plik<<z[i].gatunek<<endl;
plik<<z[i].plec<<endl;
plik<<z[i].wiek<<endl;
plik<<z[i].przestrzen<<endl;
plik<<z[i].typ<<endl;
plik<<z[i].nr<<endl;
plik<<"\n\n";
}
}
}
siedze juz nad tym dosc dlugo i nic. bardzo prosze o pomoc
(najlepiej pokazanie na przykladzie)