diff --git a/receptor/00.txt~ b/receptor/00.txt~
deleted file mode 100644
index 1794372ea2321e047044df2815bfbba2aba5914d..0000000000000000000000000000000000000000
--- a/receptor/00.txt~
+++ /dev/null
@@ -1,2 +0,0 @@
-1
-01.txt
diff --git a/receptor/01.txt~ b/receptor/01.txt~
deleted file mode 100644
index 9b6399e5481eb48af7cc3faeaae608190e834667..0000000000000000000000000000000000000000
--- a/receptor/01.txt~
+++ /dev/null
@@ -1,26 +0,0 @@
-Kelt tészta (pizza)
-2 (nehezseg)
-45 perc
-Hozzavalok:
-5 fő részére
-1 kg liszt
-250 ml tej
-1 evokanal cukor
-2 kocka élesztõ
-1 dl olivaolaj
-4 dl langyos víz
-fokhagyma granulátum
-pizzafûszerkeverék
-só
-
-Elkeszites:
-9 lépésből áll
-1. egy korsóba: langyos tej, cukor, élesztõ
-2. korsó tartallmát villával elkeverni és valamivel lefedni 3-4 percre
-3. lisztbe bele a korsó tartalma és ujjal kicsit elkeverni
-4. takarja le 15 perce
-5. adja hozzá az olajat, fokh. granulátumot, sót, fûszerkeveréket
-6. kézzel elkeverni a vizet amit kis adagokban adunk hozzá a liszthez
-7. két kézzel összegyúrni
-8. 15 percet hagyd állni
-9. serpenyõ alját lissztel vagy olajjal kend ki....
diff --git a/receptor/main.c b/receptor/main.c
index b0e5e993927e1500d9d4b63027b209850a1e8595..c65d15165afa36a43ef9194e1c9e1451a98783b2 100644
--- a/receptor/main.c
+++ b/receptor/main.c
@@ -1,242 +1,12 @@
+#ifndef INCLUDES
+#define INCLUDES
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <ctype.h>
+#endif
 #include "receptor.h"
 #define TESZT
-
-Recept* Beolvas_recept(FILE *fp,char * fajlnev);
-Hozzavalo* Beolvas_hozzavalo(char *str);
-
-
-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{
-        //Beolvassuk hány db recept van
-        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);
-
-        //NÉV beolvasása
-        fgets(temp,100,fp);
-        strcpy(uj_rec->nev,temp);
-
-        //nehézségi szint beolvasása
-        fgets(temp,100,fp);
-        sscanf(temp,"%d ",&temp_int);
-        uj_rec->nehezseg=temp_int;
-
-        //becsült elkészítési idő beolvasása
-        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
-
-        //Hozzávalók beolvasása
-        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 uj_hozz
-* @param ujmenny
-* @param ujmertek
-* @param ujnev
-* @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;
-}
 
 int main()
 {
@@ -245,29 +15,25 @@ int main()
     int i;
     menu fomenu;
     fomenu=alap;
-    printf("Udvozlom a Receptor programban!\n");
-    printf("Válasszon a felsorolt lehetőségek közül:\n");
-    printf("1. Recept fajlok betoltese.\n");
-    printf("2. Rendelkezesre allo alapanyagok megadasa:");
-    printf("3. Keresd meg a legalkalmasabb receptet.\n");
-    printf("4. Kilépés\n\n");
     while(fomenu>=0 && fomenu<4)
-    {
+    {
+        printf("\nUdvozlom a Receptor programban!\n");
+        printf("Valasszon a felsorolt lehetosegek kozul:\n");
+        printf("1. Recept fajlok betoltese.\n");
+        printf("2. Rendelkezesre allo alapanyagok megadasa:\n");
+        printf("3. Keresd meg a legalkalmasabb receptet.\n");
+        printf("4. Kilépés\n\n");
         switch(fomenu)
         {
             case alap:
             scanf("%d",&i);
-            fomenu=betolt_adatok;
+            fomenu=i;
             break;
             case betolt_adatok:
             Main_receptek(&receptek);
             #ifdef TESZT
             fprintf(stdout,"MAIN PROGRAM\n");
             #endif
-            //kiir(&receptek);
-            szabadit_hozzavalok(receptek.eleje);
-            //szabadit_elkeszites(receptek.)
-            szabadit_receptek(receptek.eleje);
             fomenu=alap;
             break;
             case alapanyagok_beker:
@@ -275,10 +41,13 @@ int main()
             fomenu=alap;
             break;
             case kereses:
-            printf("Funkcio meg nem elerheto\n");
+            kiir(&receptek);
             fomenu=alap;
             break;
-            default:
+            default:
+            szabadit_hozzavalok(receptek.eleje);
+            //szabadit_elkeszites(receptek.)
+            szabadit_receptek(receptek.eleje);
             break;
         }
     }
diff --git a/receptor/receptor.cbp b/receptor/receptor.cbp
index 86b4e18581cb0964d9dfcff7c2c8ac581abee15b..4d73c13de2b7416272e9b881687b19bf14ac2542 100644
--- a/receptor/receptor.cbp
+++ b/receptor/receptor.cbp
@@ -19,6 +19,9 @@
 		<Compiler>
 			<Add option="-Wall" />
 		</Compiler>
+		<Unit filename="beolvasofv.c">
+			<Option compilerVar="CC" />
+		</Unit>
 		<Unit filename="debugmalloc.h" />
 		<Unit filename="main.c">
 			<Option compilerVar="CC" />
diff --git a/receptor/receptor.h b/receptor/receptor.h
index 61b55ed608e9e3707eec9499087b655352f7fc2b..138f81c3090991f14776877099c14d7550e07a39 100644
--- a/receptor/receptor.h
+++ b/receptor/receptor.h
@@ -1,5 +1,12 @@
-#define TESZT
-
+#ifndef FEJLEC
+#ifndef INCLUDES
+#define INCLUDES
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <ctype.h>
+#endif
+#define FEJLEC
 typedef enum menu {
     alap=0,
     betolt_adatok=1,
@@ -33,7 +40,7 @@ typedef struct Recept{
     char nev[100];
     char fajlnev[100];
     int nehezseg;
-    int fozesi_ido; //percben kifejezve
+    int fozesi_ido;
     Lista_hoz *hozzavalok;
     int fo; //hány fő részére
     int elkeszites_db;
@@ -47,120 +54,18 @@ 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 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);
-    break;*/
-}
-
-void kiir(Lista_rec *lista)
-{
-    Recept *egyik;
-    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;
-    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);
-}
+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);
 
-//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 //FEJLEC