Anda di halaman 1dari 4

#include <stdio.

h>
#include <conio.h>
typedef struct
{
char denumire[20];
float pret;
int cant;
char is;
} PRODUS;

int nr_art(FILE *f, int dim)


{
int nr;
long poz = ftell(f);
fseek(f, 0, 2);
nr = ftell(f) / dim;
fseek(f, poz, 0);
return nr;
}

void main()
{
//CREARE//
char numef[40];
FILE *f;
PRODUS p;
int cod, nr, i;
printf_s("nume fisier:"); gets(numef);
fopen_s(&f, numef, "wb+");
if (!f)
printf_s("eroare");
else
{
printf_s("introduceti codul: ");
scanf_s("%d", &cod);
while (!feof(stdin))
{
nr = nr_art(f, sizeof(PRODUS));
if (cod >= nr)
{
p.is = 0;
fseek(f, 0, 2);
for (i = nr; i <= cod; i++)
fwrite(&p, sizeof(PRODUS), 1, f);

}
fseek(f, cod * sizeof(PRODUS), 0);
fread(&p, sizeof(PRODUS), 1, f);
if (p.is == 1)
printf_s("produs exista deja");
else
{
getchar();
printf_s("nume="); gets(p.denumire);
printf_s("pret="); scanf_s("%f", &p.pret);

printf_s("cantitate="); scanf_s("%d", &p.cant);


p.is = 1;
fseek(f, cod * sizeof(PRODUS), 0);
fwrite(&p, sizeof(PRODUS), 1, f);

}
printf_s("introduceti codul: ");
scanf_s("%d", &cod);

}
fclose(f);

}
}
//ADAUGARE//
printf_s("introduceti codul: ");
scanf_s("%d", &cod);
while (!feof(stdin))
{
nr = nr_art(f, sizeof(PRODUS));
if (cod >= nr)
{
p.is = 0;
fseek(f, 0, 2);
for (i = nr; i <= cod; i++)
fwrite(&p, sizeof(PRODUS), 1, f);

}
fseek(f, cod * sizeof(PRODUS), 0);
fread(&p, sizeof(PRODUS), 1, f);
if (p.is == 1)
printf_s("produs exista deja");
else
{
getchar();
printf_s("nume="); gets(p.denumire);
printf_s("pret="); scanf_s("%f", &p.pret);

printf_s("cantitate="); scanf_s("%d", &p.cant);


p.is = 1;
fseek(f, cod * sizeof(PRODUS), 0);

fwrite(&p, sizeof(PRODUS), 1, f);

}
printf_s("introduceti codul: ");
scanf_s("%d", &cod);

}
fclose(f);

}
}
//MODIFICARE//
int nr_art(FILE *f, int dim)
{
int nr;
long poz = ftell(f);
fseek(f, 0, 2);
nr = ftell(f) / dim;
fseek(f, poz, 0);
return nr;
}

void main()
{
char numef[40];
FILE *f;
PRODUS p;
int cod, nr, i;
printf_s("nume fisier:"); gets(numef);
fopen_s(&f, numef, "rb+");
if (!f)
printf_s("eroare");
else
{
printf_s("introduceti codul: ");
scanf_s("%d", &cod);
while (!feof(stdin))
{
nr = nr_art(f, sizeof(PRODUS));
if (cod >= nr)
printf_s("produsul nu exista");
else
{
fseek(f, cod * sizeof(PRODUS), 0);
fread(&p, sizeof(PRODUS), 1, f);
if (p.is == 0)
printf_s("produsul nu exista");
else
{
printf_s("pretul vechi= %f", p.pret);
printf_s("pretul nou= ");
scanf_s("%f", &p.pret);
fseek(f, cod * sizeof(PRODUS), 0);
fwrite(&p, sizeof(PRODUS), 1, f);
}

}
printf_s("cod="); scanf_s("%d", &cod);
}
fclose(f);

}
}

//STERGERE//
int nr_art(FILE *f, int dim)
{
int nr;
long poz = ftell(f);
fseek(f, 0, 2);
nr = ftell(f) / dim;
fseek(f, poz, 0);
return nr;
}
void main()
{
char numef[40];
FILE *f;
PRODUS p;
int cod, nr, i;
printf_s("nume fisier:"); gets(numef);
fopen_s(&f, numef, "rb+");
if (!f)
printf_s("eroare");
else
{
printf_s("introduceti codul: ");
scanf_s("%d", &cod);
while (!feof(stdin))
{
nr = nr_art(f, sizeof(PRODUS));
if (cod >= nr)
printf_s("produsul nu exista");
else
{
fseek(f, cod * sizeof(PRODUS), 0);
fread(&p, sizeof(PRODUS), 1, f);
if (p.is == 0)
printf_s("produsul nu exista");
else
{
p.is = 0;
fseek(f, cod * sizeof(PRODUS), 0);
fwrite(&p, sizeof(PRODUS), 1, f);
}

}
printf_s("cod="); scanf_s("%d", &cod);
}
fclose(f);

}
}

Anda mungkin juga menyukai