#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <conio.h>
//fisiere binare organizate relativ creare si populare cu informatii despre produse si cantitati aferente in 12 luni
typedef struct {
char denumire[20];
int pret;
int cant[12];
int is; //indice de stare {0,1} - 0 daca articolul NU e scris/ valid; 1 daca articolul e scris valid
}Produs;
int nrart(FILE* f, int l) //lungimea unui articol; nrart = nr articole
{
int n;
long p;
p = ftell(f); //pozitia curenta din fisier
fseek(f, 0, 2); // fseek(f, 0, SEEK_END); SEEK_CUR - curent(1); SEEK_SET - inceput(0)
n = ftell(f) / l;
fseek(f, p, 0); // revenire la pozitia initiala
return n;
}
int main()
{
FILE* f;
Produs p;
char nume[20];
int i, cod; // cod - indica pozitia in fisier pentru fiecare articol
printf("Nume fisier:"); gets_s(nume, 20);
f = fopen(nume, "wb+");
printf("dati codul produsului: "); scanf("%d", &cod;);
while(!feof(stdin))
{
if (cod >= nrart(f, sizeof(Produs)))
{ //preformarea fisierului cu articole goale
p.is = 0;
fseek(f, 0, 2);
for (i = nrart(f, sizeof(Produs)); i <= cod; i++)
fwrite(&p, sizeof(Produs), 1, f);
}
fseek(f, cod * sizeof(Produs), 0);//pozitionare la inceputul articolului cu codul respectiv
fread(&p, sizeof(Produs), 1, f); // iau din fisier
if (p.is) //p.is == 1
printf("nArticolul exista deja!!");
else
{
fseek(f, cod * sizeof(Produs), 0);
printf("Denumire: "); scanf("%s", &p.denumire);
printf("Pret: "); scanf("%d", &p.pret);
for (i = 0; i < 12; i++)
{
printf("Cant in luna %d: ", i + 1); scanf("%d", &p.cant[i]);
}
p.is = 1; //marcheaza scrierea articolului in fisier
fwrite(&p, sizeof(Produs), 1, f); // scriere articol in fisier
}
printf("Noul cod de produs: "); scanf("%d", &cod;);
}
fclose(f); return 0;
}
{"html5":"htmlmixed","css":"css","javascript":"javascript","php":"php","python":"python","ruby":"ruby","lua":"text\/x-lua","bash":"text\/x-sh","go":"go","c":"text\/x-csrc","cpp":"text\/x-c++src","diff":"diff","latex":"stex","sql":"sql","xml":"xml","apl":"apl","asterisk":"asterisk","c_loadrunner":"text\/x-csrc","c_mac":"text\/x-csrc","coffeescript":"text\/x-coffeescript","csharp":"text\/x-csharp","d":"d","ecmascript":"javascript","erlang":"erlang","groovy":"text\/x-groovy","haskell":"text\/x-haskell","haxe":"text\/x-haxe","html4strict":"htmlmixed","java":"text\/x-java","java5":"text\/x-java","jquery":"javascript","mirc":"mirc","mysql":"sql","ocaml":"text\/x-ocaml","pascal":"text\/x-pascal","perl":"perl","perl6":"perl","plsql":"sql","properties":"text\/x-properties","q":"text\/x-q","scala":"scala","scheme":"text\/x-scheme","tcl":"text\/x-tcl","vb":"text\/x-vb","verilog":"text\/x-verilog","yaml":"text\/x-yaml","z80":"text\/x-z80"}