diff --git a/receptor/beolvasofv.c b/receptor/beolvasofv.c
new file mode 100644
index 0000000000000000000000000000000000000000..0e0d7eef5ff2b3d8b81f868ca730abf77955f856
--- /dev/null
+++ b/receptor/beolvasofv.c
@@ -0,0 +1,358 @@
+#define TESZT
+#include "receptor.h"
+#ifndef BEOLVASO_FV
+#define BEOLVASO_FV
+#ifndef INCLUDES
+#define INCLUDES
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <ctype.h>
+#endif
+
+void Lista_hoz_beszur(Hozzavalo *uj,Lista_hoz *lista);
+void Lista_rec_beszur(Recept *uj,Lista_rec *lista);
+void Lista_hoz_init(Lista_hoz *lista);
+void Lista_rec_init(Lista_rec *lista);
+void Main_receptek(Lista_rec *lista);
+Recept* Beolvas_recept(FILE *fp,char * fajlnev);
+Hozzavalo* Beolvas_hozzavalo(char *str);
+void kiir(Lista_rec *lista);
+void szabadit_hozzavalok(Recept *eleje);
+void szabadit_elkeszites(char** pt,int db);
+void szabadit_receptek(Recept *eleje);
+char mertekegysegek_szovegben[][15]={"mg","g","dkg","kg","ml","cl","dl","l","db","teaskanal","kiskanal","evokanal","merokanal","p�r","fej","gerezd","szelet","csomag",""};
+
+void Lista_hoz_beszur(Hozzavalo *uj,Lista_hoz *lista)
+{
+    uj->kovetkezo=lista->eleje->kovetkezo;
+    lista->eleje->kovetkezo=uj;
+    uj->kovetkezo->elozo=uj;
+    uj->elozo=lista->eleje;
+
+}
+
+void Lista_rec_beszur(Recept *uj,Lista_rec *lista)
+{
+    uj->kovetkezo=lista->eleje->kovetkezo;
+    lista->eleje->kovetkezo=uj;
+    uj->kovetkezo->elozo=uj;
+    uj->elozo=lista->eleje;
+}
+
+
+void Lista_hoz_init(Lista_hoz *lista)
+{
+    lista->eleje=(Hozzavalo*)malloc(sizeof(Hozzavalo));
+    lista->vege=(Hozzavalo*)malloc(sizeof(Hozzavalo));
+    lista->eleje->kovetkezo=lista->vege;
+    lista->eleje->elozo=NULL;
+    lista->vege->kovetkezo=NULL;
+    lista->vege->elozo=lista->eleje;
+}
+
+void Lista_rec_init(Lista_rec *lista)
+{
+    lista->eleje=(Recept *) malloc(sizeof(Recept));
+    lista->vege=(Recept*) malloc(sizeof(Recept));
+    lista->eleje->kovetkezo=lista->vege;
+    lista->eleje->elozo=NULL;
+    lista->vege->kovetkezo=NULL;
+    lista->vege->elozo=lista->eleje;
+}
+
+/** Beolvassa a 00.txt f�jlban t�rolt f�jlneveket, �s l�trehozza a l�ncolt list�t a receptekb�l
+* Megh�vja a Beolvas_recept, Lista_rec_beszur f�ggv�nyeket.
+* @param lista Egy str�zsa, a recepteken.
+* @param temp (max 100) ideiglenes puffer beolvas�shoz
+* @param fajlnev (max 50) �ppen kiolvasand� f�jl nev�t t�rolja
+* @param fp_00 FILE pointer a 00.txt f�jlra
+* @param fp File pointer az �ppen beolvasasnd� f�jlra mutat
+* @param ujelem Recept pointer, ebben t�rol�dik az �jonnan beolvasott recept, ekkor m�g nincs neki foglalva hely
+* @param db_rec a 00.txt els� sor�ban t�rolt sz�m, megadja a receptek sz�m�t
+*/
+void Main_receptek(Lista_rec *lista)
+{
+#ifdef TESZT
+fprintf(stdout,"Main receptek f�ggv�ny: \n");
+#endif
+    char temp[100]="";
+    char fajlnev[50];
+
+    FILE *fp_00=NULL;
+    FILE *fp=NULL;
+    Recept *ujelem;
+    Lista_rec_init(lista);
+
+    fp_00=fopen("00.txt","rt");
+    if(fp_00==NULL) printf("Nem sikerult megnyitni a fajlt!\n");
+    else{
+        int db_rec,i,k;
+        fgets(temp,5,fp_00);
+        db_rec=atoi(temp);
+        #ifdef TESZT
+        fprintf(stdout,"Receptek sz�ma: %d\n",db_rec);
+        #endif
+        for(i=0;i<db_rec;i++)
+        {
+            fgets(temp,50,fp_00);
+            k=0;
+            while(temp[k]!='\n')
+            {
+                fajlnev[k++]=temp[k];
+            }
+            fajlnev[k]='\0';
+            fp=fopen(fajlnev, "rt");
+            if (fp==NULL) printf("Nem sikerult megnyitni a fajlt!\n");
+            else
+            {
+                ujelem=Beolvas_recept(fp,fajlnev);
+                Lista_rec_beszur(ujelem,lista);
+            }
+        }
+    }
+    #ifdef TESZT
+    fprintf(stdout,"----Main Receptek V�ge\n");
+    #endif
+}
+/** Param�terk�nt �tvett f�jlb�l beolvassa a recept nev�t,neh�zs�g�t,elk.idej�t.
+*! Dinamikus mem�ri�t foglal, amit a h�v� feladata felszabad�tani.
+* Megh�vja Lista_hoz_init, Beolvas_hozzavalo, Lista_hoz_beszur f�ggv�nyeket.
+* @param fp FILE pointer receptre mutatat.
+* @param fajlnev a forr�sf�jl neve kiterjeszt�ssel.
+* @param uj_rec dinamikusan foglalt ter�let egy recept sz�m�ra.
+* @param temp ideiglenes puffer f�jlb�l olvas�shoz.
+* @param temp_int ideiglenes puffer sz�mok t�rol�s�hoz.
+* @param allapot defini�lt t�pus, mely ir�ny�t egy switch-et, kett�v�lasztja a beolvas�s els� r�sz�t a hozz�val�k beolvas�s�st�l.
+* @param lista_hozza Str�zsa a hozz�val�k l�ncolt list�j�n. (!Dinamikusan foglalt)
+* @param temp_hozza ideiglenes t�rol� az �ppen beolvasni k�v�nt hozz�val�nak.
+* @return pointer az ujonnan l�trehozott receptre, NULL, ha nem tudott dinamikusan foglalni helyet
+*/
+Recept* Beolvas_recept(FILE *fp,char * fajlnev)
+{
+    #ifdef TESZT
+    fprintf(stdout,"Beolvas_recept f�ggv�ny: \n");
+    #endif
+
+    Recept* uj_rec=(Recept*)malloc(sizeof(Recept));
+    if(uj_rec!=NULL)
+    {
+        char temp[100];
+        int temp_int;
+
+        strcpy(uj_rec->fajlnev,fajlnev);
+
+        fgets(temp,100,fp);
+        strcpy(uj_rec->nev,temp);
+
+        fgets(temp,100,fp);
+        sscanf(temp,"%d ",&temp_int);
+        uj_rec->nehezseg=temp_int;
+
+        fgets(temp,100,fp);
+        sscanf(temp,"%d ",&temp_int);
+        uj_rec->fozesi_ido=temp_int;
+
+        #ifdef TESZT
+        fprintf(stdout,"Recept: %s\n",uj_rec->fajlnev);
+        #endif
+
+        beolvasas allapot;
+        allapot=elso_szakasz;
+
+        Lista_hoz *lista_hozza=(Lista_hoz*)malloc(sizeof(Lista_hoz));
+        if(lista_hozza!=NULL)
+        {
+            Lista_hoz_init(lista_hozza);
+
+            Hozzavalo *temp_hozza;
+            #ifdef TESZT
+            fprintf(stdout,"Hozz�val�k beolvas�sa: \n");
+            #endif
+            while(fgets(temp,100,fp) && strstr(temp,"Elkeszites:")==NULL)
+            {
+                switch(allapot)
+                {
+                    case elso_szakasz:
+                    if(strstr(temp,"Hozzavalok:")!=NULL)
+                    {
+                        allapot=hozzavalok_beolvas;
+                        fgets(temp,100,fp);
+                        sscanf(temp,"%d ",&temp_int);
+                        uj_rec->fo=temp_int;
+                    }
+                    break;
+
+                    case hozzavalok_beolvas:
+                    temp_hozza=Beolvas_hozzavalo(temp);
+                    if(temp_hozza==NULL) printf("Hiba a hozzavalok letrehozasanal!\n");
+                    else Lista_hoz_beszur(temp_hozza,lista_hozza);
+                    break;
+                }
+            }
+            uj_rec->hozzavalok=lista_hozza;
+        }
+    }
+    #ifdef TESZT
+    fprintf(stdout,"----Beolvas_recept V�ge");
+    #endif
+    return uj_rec;
+}
+
+/** Param�terk�n �tvesz egy sornyi beolvasott hozz�val�t, amivel azt�n felt�lt egy Hozzavalo t�pus� dinamikusan fogalalt v�ltoz�t.
+* @param str param�terk�nt �tvett sztring, mely tartalmazza a beolvasott hozz�val�t
+* @param uj_hozz Dinamikusan fogalalt mem�ria egy hozz�val�nak
+* @param ujmenny ideiglenes t�rol�
+* @param ujmertek ideiglenes t�rol�
+* @param ujnev ideiglenes t�rol�
+* @return �rtelmezett hozz�val�ra mutatott pointerrel, NULL, ha nem siker�lt dinamikusan mem�ri�t foglalni.
+*/
+Hozzavalo* Beolvas_hozzavalo(char *str)
+{
+    #ifdef TESZT
+    fprintf(stdout,"Beolvas_hozzavalo f�ggv�ny: \n");
+    #endif
+    Hozzavalo* uj_hozz=(Hozzavalo*)malloc(sizeof(Hozzavalo));
+    if(uj_hozz!=NULL)
+    {
+        char ujmenny[255],ujmertek[255],ujnev[255];
+        sscanf(str,"%s %s ",ujmenny,ujmertek);
+        if(isdigit(ujmenny[0]))
+        {
+            int i,k;
+            uj_hozz->mennyiseg=atoi(ujmenny);
+            i=0;
+            while(strcmp(mertekegysegek_szovegben[i],ujmertek) && strcmp(mertekegysegek_szovegben[i],"")) i++;
+            if(!strcmp(mertekegysegek_szovegben[i],ujmertek)) uj_hozz->mertekegyseg=i;
+            else uj_hozz->mertekegyseg=ismeretlen;
+
+
+            k=strlen(ujmenny)+strlen(ujmertek)+2;
+            for(i=0;k<=(strlen(str));i++) ujnev[i]=str[k++];
+        }
+        else
+        {
+            strcpy(ujnev,str);
+            uj_hozz->mennyiseg=-1;
+            uj_hozz->mertekegyseg=-1;
+        }
+
+        strcpy(uj_hozz->nev,ujnev);
+        #ifdef TESZT
+        fprintf(stdout,"%s",ujnev);
+        fprintf(stdout,"----Beolvas_hozzavalo V�ge\n");
+        #endif
+    }
+    return uj_hozz;
+}
+
+/*void Beolvas_elkeszites()
+{
+    //h�ny utas�t�s lesz?
+    int i;
+    ujelem->elkeszites_db=atoi(temp);
+
+    //!a h�v� feladata felszabad�tani
+    lista_elem->elkeszites= (char **) malloc(lista_elem->elkeszites_db*sizeof(char*));
+
+    for(i=0;i<lista_elem->elkeszites_db;i++)
+    {
+        fgets(temp,400,fp);
+        lista_elem->elkeszites[i]=(char *) malloc((strlen(temp)+1)*sizeof(char));
+        strcpy(lista_elem->elkeszites[i],temp);
+    }
+    fgets(temp,400,fp);
+}*/
+
+void kiir(Lista_rec *lista)
+{
+    Hozzavalo *i;
+    printf("Az on valasztasa a %s receptje\n",lista->eleje->kovetkezo->nev);
+    printf("Nehezsegi szint: %2d/10\n",lista->eleje->kovetkezo->nehezseg);
+    printf("\r");
+    printf("Varhato idotartam: %d perc\n",lista->eleje->kovetkezo->fozesi_ido);
+
+    i=lista->eleje->kovetkezo->hozzavalok->vege->elozo;
+    printf("Hozzaval�k: \n");
+    while(i!=lista->eleje->kovetkezo->hozzavalok->eleje)
+    {
+        if(i->mennyiseg>0)
+        {
+            printf("%d %s %s\n",i->mennyiseg,mertekegysegek_szovegben[i->mertekegyseg],i->nev);
+        }
+        else
+        {
+            printf("%s\n",i->nev);
+        }
+        i=i->elozo;
+    }
+    //!Meg kell �rni, hogy csak egyet olvasson be amire sz�ks�g�nk van
+    /*printf("\nElkeszites:\n");
+    int k;
+    for(k=0;k<lista->eleje->kovetkezo->elkeszites_db;k++)
+    {
+        printf("%s\n",lista->eleje->kovetkezo->elkeszites[k]);
+    }*/
+}
+
+//A hozz�val�knak foglalt dinamikus mem�ria ter�letet felszabad�tja
+
+void szabadit_hozzavalok(Recept *eleje)
+{
+    #ifdef TESZT
+    fprintf(stdout,"Szabadit_hozzavalok: \n");
+    #endif
+    int db=0;
+    Recept *mozgo_rec;
+    Hozzavalo *mozgo_hoz,*kov;
+    for(mozgo_rec=eleje->kovetkezo;mozgo_rec->kovetkezo!=NULL;mozgo_rec=mozgo_rec->kovetkezo)
+    {
+        for(mozgo_hoz=mozgo_rec->hozzavalok->eleje->kovetkezo;mozgo_hoz->kovetkezo!=NULL;)
+        {
+            kov=mozgo_hoz->kovetkezo;
+            free(mozgo_hoz);
+            db++;
+            mozgo_hoz=kov;
+        }
+        free(mozgo_rec->hozzavalok->eleje);
+        free(mozgo_rec->hozzavalok->vege);
+    }
+    #ifdef TESZT
+    fprintf(stdout,"Felszabaditott hozzavalok: %d\n",db);
+    fprintf(stdout,"----Szabadit_hozzavalok V�ge\n");
+    #endif
+}
+
+//Az elk�sz�t�s m�dj�t t�rol� char m�trixnak foglalt ter�letet felszabad�tja
+void szabadit_elkeszites(char** pt,int db)
+{
+    int i;
+    for(i=0;i<db;i++)
+    {
+        free(pt[i]);
+    }
+    free(pt);
+}
+
+//A recept strukt�r�knak dinamikusan foglalt mem�ri�t felszabad�tja
+void szabadit_receptek(Recept *eleje)
+{
+    #ifdef TESZT
+    fprintf(stdout,"Szabadit_receptek: \n");
+    #endif
+    int db=0;
+    Recept *akt,*kov;
+    for(akt=eleje->kovetkezo;akt->kovetkezo!=NULL;)
+    {
+        kov=akt->kovetkezo;
+        free(akt);
+        db++;
+        akt=kov;
+    }
+    free(eleje);
+    #ifdef TESZT
+    fprintf(stdout,"Felszabaditott receptek: %d\n",db);
+    fprintf(stdout,"----Szabadit_hozzavalok V�ge\n");
+    #endif
+}
+#endif // BEOLVASO_FV
diff --git a/receptor/receptor.h.bak b/receptor/receptor.h.bak
new file mode 100644
index 0000000000000000000000000000000000000000..ed8a023273b0ffe85c2a9e9b28f7848491fd2c6b
--- /dev/null
+++ b/receptor/receptor.h.bak
@@ -0,0 +1,68 @@
+#include <stdio.h>
+#ifndef FEJLEC
+#define FEJLEC
+typedef enum menu {
+    alap=0,
+    betolt_adatok=1,
+    alapanyagok_beker=2,
+    kereses=3
+}menu;
+
+typedef enum beolvasas{
+    elso_szakasz,
+    hozzavalok_beolvas
+} beolvasas;
+
+typedef enum mertek{
+    mg=0,g,dkg,kg,ml,cl,dl,l,db,teaskanal,kiskanal,evokanal,merokanal,par,fej,gerezd,szelet,csomag,ismeretlen
+} mertek;
+/** Egy hozzávalót tároló struktúra.*/
+typedef struct Hozzavalo{
+    char nev[100];
+    int mennyiseg;
+    mertek mertekegyseg;
+    struct Hozzavalo *elozo;
+    struct Hozzavalo *kovetkezo;
+} Hozzavalo;
+
+typedef struct Lista_hoz{
+    Hozzavalo *eleje;
+    Hozzavalo *vege;
+}Lista_hoz;
+
+typedef struct Recept{
+    char nev[100];
+    char fajlnev[100];
+    int nehezseg;
+    int fozesi_ido;
+    Lista_hoz *hozzavalok;
+    int fo; //hány fő részére
+    int elkeszites_db;
+    char** elkeszites;
+    struct Recept *kovetkezo;
+    struct Recept *elozo;
+} Recept;
+
+//Láncolt lista adatszerkezet strázsája, pointerek a lista első és utolsó elemére
+typedef struct Lista_rec{
+    Recept *eleje;
+    Recept *vege;
+}Lista_rec;
+
+//char mertekegysegek_szovegben[][15]={"mg","g","dkg","kg","ml","cl","dl","l","db","teaskanal","kiskanal",
+//"evokanal","merokanal","pár","fej","gerezd","szelet","csomag",""};
+
+/*void Lista_hoz_beszur(Hozzavalo *uj,Lista_hoz *lista);
+void Lista_rec_beszur(Recept *uj,Lista_rec *lista);
+void Lista_hoz_init(Lista_hoz *lista);
+void Lista_rec_init(Lista_rec *lista);
+void Main_receptek(Lista_rec *lista);
+Recept* Beolvas_recept(FILE *fp,char * fajlnev);
+Hozzavalo* Beolvas_hozzavalo(char *str);
+void kiir(Lista_rec *lista);
+void szabadit_hozzavalok(Recept *eleje);
+void szabadit_elkeszites(char** pt,int db);
+void szabadit_receptek(Recept *eleje);*/
+
+#endif //FEJLEC
+
diff --git a/receptor/receptor.zip b/receptor/receptor.zip
deleted file mode 100644
index da94d664b111184fa8feee7cb5fbe4b0a8b2f4d7..0000000000000000000000000000000000000000
Binary files a/receptor/receptor.zip and /dev/null differ