Witam
Mam do Was pytanie jak można w bazie danych w języku C edytować rekord? Chodzi mi oczywiści o to jak zapisać to w kodzie aby dało się edytować rekord.
Mam taką funkcję:
int dodaj_kupujacego(void)
{
char wpis[INPUT]; /* Tekst wpisany przez uzytkownika */
int edit_nr; /* Wpis do edytowania */
printf("\n EDYCJA WPISU \n");
printf("\n Podaj indeks wpisu do edytowania: ");
edit_nr = atoi(gets(wpis)); /* Konwersja typu danych */
/* Nie ma takiego wpisu! */
if ((edit_nr < 1) || (edit_nr > numer))
{
printf("\n Nie ma w bazie wpisu o takim indeksie! \n");
potwierdzenie();
return EXIT_FAILURE;
}
/* Edycja wpisu */
do
{
printf("\n Telefon Marka, Model, Sim-lock: ");
gets(baza[edit_nr].telefon);
if (strlen(baza[edit_nr].telefon) > 58)
printf("\n Mozna wpisac maksymalnie 58 znakow! \n");
} while (strlen(baza[edit_nr].telefon) > 58);
do
{
printf("\n Sprzedajacy: ");
gets(baza[edit_nr].sprzedajacy);
if (strlen(baza[edit_nr].sprzedajacy) > 58)
printf("\n Mozna wpisac maksymalnie 58 znakow! \n");
} while (strlen(baza[edit_nr].sprzedajacy) > 58);
do
{
printf("\n Kupujacy: ");
gets(baza[edit_nr].kupujacy);
if (strlen(baza[edit_nr].kupujacy) > 28)
printf("\n Mozna wpisac maksymalnie 28 znakow! \n");
} while (strlen(baza[edit_nr].kupujacy) > 28);
/* Do kazdego pola dodaj znacznik konca lini */
strcat(baza[edit_nr].telefon, "\n");
strcat(baza[edit_nr].sprzedajacy, "\n");
strcat(baza[edit_nr].kupujacy, "\n");
printf("\n Wpis zostal dodany do bazy danych! \n");
potwierdzenie();
return EXIT_SUCCESS;
}
Chodzi mi o to aby nie usuwając rekordu dopisać albo edytować wartość w baza[edit_nr].kupujacy.
Chyba że tak się nie da to napiszcie co mam źle w tym kodzie, bo niby miał on usuwać rekord i w jego miejsce nadpisac nowy, ale jak nadpisze rekord to wsadza go w kolejna komorke, np mam 3 rekordy, edytuje 1szy rekord i po edycji zapisuje sie on na 2 miejscu a ten co byl na drugim idzie na pierwsze miejsce, trzeci pozostaje na swoim miejscu.