diff --git a/receptor/.goutputstream-VJU57W b/receptor/.goutputstream-VJU57W
new file mode 100644
index 0000000000000000000000000000000000000000..f9e04f24a60391553f5c626264e884e4a1f0150a
--- /dev/null
+++ b/receptor/.goutputstream-VJU57W
@@ -0,0 +1,25 @@
+Paradicsomos-kolb�szos t�szta
+4 (nehezseg)
+30 perc
+Hozzavalok:
+4 f�re
+3-4 szelet bacon
+2 evokanal ol�vaolaj
+1 fej hagyma
+2 gerezd fokhagyma
+1 db k�pia paprika
+30 dkg puh�bb parasztkolb�sz
+bazsalikom
+oreg�n�
+kakukkf�
+zs�lya
+rozmaring
+1 nagy � paradicsomsz�sz - kb. 6-700 g
+1-2 l�ttyint�s v�r�sbor �s pici cs�p�s paprika
+s�, bors
+petrezselyem
+sajt a t�lal�shoz
+0,5 kg t�szta
+
+Elkeszites:
+6 l�p�sb
\ No newline at end of file
diff --git a/receptor/Paradicsomos_kolbaszos.txt b/receptor/Paradicsomos_kolbaszos.txt
index 07fb2b8714af3a07f31d22f831c3f371c934de6b..9de09ec5ea20d0a8ea3ef692b5fce54751197393 100644
--- a/receptor/Paradicsomos_kolbaszos.txt
+++ b/receptor/Paradicsomos_kolbaszos.txt
@@ -1,36 +1,31 @@
-Paradicsomos-kolb�szos t�szta
+Paradicsomos-kolbászos tészta
 4 (nehezseg)
 30 perc
 Hozzavalok:
-4 f�re
+4 fõre
 3-4 szelet bacon
-2 evokanal ol�vaolaj
+2 evokanal olívaolaj
 1 fej hagyma
 2 gerezd fokhagyma
-1 db k�pia paprika
-30 dkg puh�bb parasztkolb�sz
+1 db kápia paprika
+30 dkg puhább parasztkolbász
 bazsalikom
-oreg�n�
-kakukkf�
-zs�lya
+oregánó
+kakukkfû
+zsálya
 rozmaring
-1 nagy � paradicsomsz�sz - kb. 6-700 g
-1-2 l�ttyint�s v�r�sbor �s pici cs�p�s paprika
-s�, bors
+1 nagy ü paradicsomszósz - kb. 6-700 g
+1-2 löttyintés vörösbor és pici csípõs paprika
+só, bors
 petrezselyem
-sajt a t�lal�shoz
-0,5 kg t�szta
+sajt a tálaláshoz
+0,5 kg tészta
 
 Elkeszites:
-
-1.Feltessz�k a t�sztavizet, ha forr, megs�zzuk, beledobjuk a t�szt�t, 1 percig fed� alatt forraljuk, majd elz�rjuk alatta a g�zt, �s hagyjuk megpuhulni. Ennyi id� alatt �pp elk�sz�l a sz�sz is.
-
-2.A t�sztav�z felrak�sa ut�n egy nagy serpeny�ben a felcs�kozott bacont az ol�vaolajon pir�tani kezdj�k, majd hozz�adjuk az apr�ra v�gott hagym�t, paprik�t, v�g�l a pici kock�kra v�gott fokhagym�t. Ha kell, kev�s vizet tesz�nk al�.
-
-3.Az �sszepirult z�lds�gekhez adjuk a f�lkarik�ra v�gott kolb�szt, �s �zl�s szerint megf�szerezz�k.
-
-4.R��ntj�k a paradicsomsz�szt �s a v�r�sbort, �s kis l�ngon �sszef�zz�k, a v�g�n apr�tott petrezselyemmel megsz�rjuk.
-
-5.A sz�szt �s a t�szt�t �sszekeverj�k, �s ha kell, a t�szta f�z�viz�b�l tesz�nk m�g hozz�.
-
-6.Reszelt sajttal t�laljuk. (Szerintem juhsajt illik hozz� a legjobban.)
+6 lépésből áll
+1. Feltesszük a tésztavizet, ha forr, megsózzuk, beledobjuk a tésztát, 1 percig fedõ alatt forraljuk, majd elzárjuk alatta a gázt, és hagyjuk megpuhulni. Ennyi idõ alatt épp elkészül a szósz is.
+2. A tésztavíz felrakása után egy nagy serpenyõben a felcsíkozott bacont az olívaolajon pirítani kezdjük, majd hozzáadjuk az apróra vágott hagymát, paprikát, végül a pici kockákra vágott fokhagymát. Ha kell, kevés vizet teszünk alá.
+3. Az összepirult zöldségekhez adjuk a félkarikára vágott kolbászt, és ízlés szerint megfûszerezzük.
+4. Ráöntjük a paradicsomszószt és a vörösbort, és kis lángon összefõzzük, a végén aprított petrezselyemmel megszórjuk.
+5. A szószt és a tésztát összekeverjük, és ha kell, a tészta fõzõvizébõl teszünk még hozzá.
+6. Reszelt sajttal tálaljuk. (Szerintem juhsajt illik hozzá a legjobban.)
diff --git a/receptor/Paradicsomos_kolbaszos.txt~ b/receptor/Paradicsomos_kolbaszos.txt~
new file mode 100644
index 0000000000000000000000000000000000000000..9de09ec5ea20d0a8ea3ef692b5fce54751197393
--- /dev/null
+++ b/receptor/Paradicsomos_kolbaszos.txt~
@@ -0,0 +1,31 @@
+Paradicsomos-kolbászos tészta
+4 (nehezseg)
+30 perc
+Hozzavalok:
+4 fõre
+3-4 szelet bacon
+2 evokanal olívaolaj
+1 fej hagyma
+2 gerezd fokhagyma
+1 db kápia paprika
+30 dkg puhább parasztkolbász
+bazsalikom
+oregánó
+kakukkfû
+zsálya
+rozmaring
+1 nagy ü paradicsomszósz - kb. 6-700 g
+1-2 löttyintés vörösbor és pici csípõs paprika
+só, bors
+petrezselyem
+sajt a tálaláshoz
+0,5 kg tészta
+
+Elkeszites:
+6 lépésből áll
+1. Feltesszük a tésztavizet, ha forr, megsózzuk, beledobjuk a tésztát, 1 percig fedõ alatt forraljuk, majd elzárjuk alatta a gázt, és hagyjuk megpuhulni. Ennyi idõ alatt épp elkészül a szósz is.
+2. A tésztavíz felrakása után egy nagy serpenyõben a felcsíkozott bacont az olívaolajon pirítani kezdjük, majd hozzáadjuk az apróra vágott hagymát, paprikát, végül a pici kockákra vágott fokhagymát. Ha kell, kevés vizet teszünk alá.
+3. Az összepirult zöldségekhez adjuk a félkarikára vágott kolbászt, és ízlés szerint megfûszerezzük.
+4. Ráöntjük a paradicsomszószt és a vörösbort, és kis lángon összefõzzük, a végén aprított petrezselyemmel megszórjuk.
+5. A szószt és a tésztát összekeverjük, és ha kell, a tészta fõzõvizébõl teszünk még hozzá.
+6. Reszelt sajttal tálaljuk. (Szerintem juhsajt illik hozzá a legjobban.)
diff --git a/receptor/beolvasofv.c b/receptor/beolvasofv.c
index f18a7558dc9d7d9c6e31a4f87b53cb1530fa5ea9..abd9c51b4e0cfe4e62107f737af97047e80ed396 100644
--- a/receptor/beolvasofv.c
+++ b/receptor/beolvasofv.c
@@ -62,7 +62,7 @@ void Lista_rec_init(Lista_rec *lista)
 */
 void Main_receptek(Lista_rec *lista)
 {
-#ifdef TESZT2
+#ifdef TESZT3
 fprintf(stdout,"Main receptek függvény: \n");
 #endif
     char temp[100]="";
@@ -100,7 +100,9 @@ fprintf(stdout,"Main receptek függvény: \n");
             }
         }
     }
-    #ifdef TESZT2
+    fclose(fp);
+    fclose(fp_00);
+    #ifdef TESZT3
     fprintf(stdout,"----Main Receptek Vége\n");
     #endif
 }
@@ -119,7 +121,7 @@ fprintf(stdout,"Main receptek függvény: \n");
 */
 Recept* Beolvas_recept(FILE *fp,char * fajlnev)
 {
-    #ifdef TESZT2
+    #ifdef TESZT3
     fprintf(stdout,"Beolvas_recept függvény: \n");
     #endif
 
@@ -132,6 +134,7 @@ Recept* Beolvas_recept(FILE *fp,char * fajlnev)
         strcpy(uj_rec->fajlnev,fajlnev);
 
         fgets(temp,100,fp);
+        temp[strlen(temp)-2]='\0';
         strcpy(uj_rec->nev,temp);
 
         fgets(temp,100,fp);
@@ -155,7 +158,7 @@ Recept* Beolvas_recept(FILE *fp,char * fajlnev)
             Lista_hoz_init(lista_hozza);
 
             Hozzavalo *temp_hozza;
-            #ifdef TESZT2
+            #ifdef TESZT3
             fprintf(stdout,"Hozzávalók beolvasása: \n");
             #endif
             while(fgets(temp,100,fp) && strstr(temp,"Elkeszites:")==NULL)
@@ -182,7 +185,7 @@ Recept* Beolvas_recept(FILE *fp,char * fajlnev)
             uj_rec->hozzavalok=lista_hozza;
         }
     }
-    #ifdef TESZT2
+    #ifdef TESZT3
     fprintf(stdout,"----Beolvas_recept Vége");
     #endif
     return uj_rec;
@@ -199,7 +202,7 @@ Recept* Beolvas_recept(FILE *fp,char * fajlnev)
 Hozzavalo* Beolvas_hozzavalo(char *str)
 {
     int i;
-    #ifdef TESZT2
+    #ifdef TESZT3
     fprintf(stdout,"Beolvas_hozzavalo függvény: \n");
     #endif
     Hozzavalo* uj_hozz=(Hozzavalo*)malloc(sizeof(Hozzavalo));
@@ -215,7 +218,7 @@ Hozzavalo* Beolvas_hozzavalo(char *str)
         {
             int i,k;
             uj_hozz->mertekegyseg=Mertekegyseg_init(ujmertek,atoi(ujmenny));
-            uj_hozz->mertekegyseg=Mertekegyseg_atvalto(uj_hozz->mertekegyseg,hash2(uj_hozz->mertekegyseg));
+            uj_hozz->mertekegyseg_SI=Mertekegyseg_atvalto(uj_hozz->mertekegyseg,hash2(uj_hozz->mertekegyseg));
             k=strlen(ujmenny)+strlen(ujmertek)+2;
             for(i=0;k<=(strlen(str));i++) ujnev[i]=str[k++];
         }
@@ -228,31 +231,13 @@ Hozzavalo* Beolvas_hozzavalo(char *str)
         ujnev[strlen(ujnev)-1]='\0';
 
         strcpy(uj_hozz->nev,ujnev);
-        #ifdef TESZT2
+        #ifdef TESZT3
         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 otthoni_hozzavalok_fajlbol(char * fajlnev,Lista_hoz *strazsa)
 {
@@ -264,19 +249,23 @@ void otthoni_hozzavalok_fajlbol(char * fajlnev,Lista_hoz *strazsa)
     Hozzavalo *uj;
     Lista_hoz_init(strazsa);
     fp=fopen(fajlnev,"rt");
-
-    while(fgets(temp,100,fp) && strcmp(temp,"###\n"))
+    if(fp==NULL) fprintf(stdout,"Nem letezik a hozzavalok fajl!");
+    else
     {
-        uj=(Hozzavalo*)malloc(sizeof(Hozzavalo));
-        sscanf(temp,"%[^:]:%d:%s",ujnev,&ujmenny,ujmertek);
-        uj->mertekegyseg=Mertekegyseg_init(ujmertek,ujmenny);
-        uj->mertekegyseg=Mertekegyseg_atvalto(uj->mertekegyseg,hash2(uj->mertekegyseg));
-        ujnev[strlen(ujnev)]='\0';
-        strcpy(uj->nev,ujnev);
-        Lista_hoz_beszur(uj,strazsa);
-        #ifdef TESZT
-        printf("%.0f %s %s\n",uj->mertekegyseg.mennyiseg,Mertekegyseg_szovegben(uj->mertekegyseg.egyseg),uj->nev);
-        #endif
+        while(fgets(temp,100,fp) && strcmp(temp,"###\n"))
+        {
+            uj=(Hozzavalo*)malloc(sizeof(Hozzavalo));
+            sscanf(temp,"%[^:]:%d:%s",ujnev,&ujmenny,ujmertek);
+            uj->mertekegyseg=Mertekegyseg_init(ujmertek,ujmenny);
+            uj->mertekegyseg_SI=Mertekegyseg_atvalto(uj->mertekegyseg,hash2(uj->mertekegyseg));
+            ujnev[strlen(ujnev)]='\0';
+            strcpy(uj->nev,ujnev);
+            Lista_hoz_beszur(uj,strazsa);
+            #ifdef TESZT
+            printf("%.0f %s %s\n",uj->mertekegyseg.mennyiseg,Mertekegyseg_szovegben(uj->mertekegyseg.egyseg),uj->nev);
+            #endif
+        }
+        fclose(fp);
     }
 }
 
@@ -290,6 +279,7 @@ void megad_hozzavalok(Lista_hoz *strazsa)
     Lista_hoz_init(strazsa);
 
     while(getchar()!='\n');
+    printf("Írj \"Mutasd\"-ot ha befejezted a felsorolast");
     printf("Kerem adja meg a rendelkezesre allo hozzavalokat:(alapanyag_neve:mennyiseg:mertekegyseg)\n");
     fgets(temp,150,stdin);
     while(!strstr(temp,"Mutasd"))
@@ -297,7 +287,7 @@ void megad_hozzavalok(Lista_hoz *strazsa)
         uj=(Hozzavalo*)malloc(sizeof(Hozzavalo));
         sscanf(temp,"%[^:]:%d:%s",ujnev,&ujmenny,ujmertek);
         uj->mertekegyseg=Mertekegyseg_init(ujmertek,ujmenny);
-        uj->mertekegyseg=Mertekegyseg_atvalto(uj->mertekegyseg,hash2(uj->mertekegyseg));
+        uj->mertekegyseg_SI=Mertekegyseg_atvalto(uj->mertekegyseg,hash2(uj->mertekegyseg));
         ujnev[strlen(ujnev)]='\0';
         strcpy(uj->nev,ujnev);
         Lista_hoz_beszur(uj,strazsa);
@@ -309,26 +299,23 @@ void megad_hozzavalok(Lista_hoz *strazsa)
     }
 }
 
-void kiir_hozzavalok(Lista_hoz *hozzavalok)
+void kiir_hozzavalok(Lista_hoz *hozzavalok, FILE *out)
 {
     Hozzavalo *i;
-    Mertek kilogramm,deciliter,temp;
+    Mertek kilogramm,deciliter;
     kilogramm.egyseg=kg;
     deciliter.egyseg=dl;
     i=hozzavalok->vege->elozo;
-    printf("Hozzavalók: \n");
+    fprintf(out,"Hozzavalók: \n");
     while(i!=hozzavalok->eleje)
     {
         if(i->mertekegyseg.mennyiseg>0)
         {
-            temp=i->mertekegyseg;
-            if(temp.egyseg==mg) temp=Mertekegyseg_visszavalto(temp,hash2(kilogramm));
-            if(temp.egyseg==ml) temp=Mertekegyseg_visszavalto(temp,hash2(deciliter));
-            printf("%.0f %s %s\n",temp.mennyiseg,Mertekegyseg_szovegben(temp.egyseg),i->nev);
+            fprintf(out,"%.0f %s %s\n",i->mertekegyseg.mennyiseg,Mertekegyseg_szovegben(i->mertekegyseg.egyseg),i->nev);
         }
         else
         {
-            printf("%s\n",i->nev);
+            fprintf(out,"%s\n",i->nev);
         }
         i=i->elozo;
     }
@@ -336,12 +323,33 @@ void kiir_hozzavalok(Lista_hoz *hozzavalok)
 
 void kiir_recept(Recept *recept)
 {
-    printf("Az on valasztasa a %s receptje\n",recept->nev);
-    printf("Nehezsegi szint: %2d/10\n",recept->nehezseg);
-    printf("\r");
-    printf("Varhato idotartam: %d perc\n",recept->fozesi_ido);
-    printf("Hozzavalók: \n");
-    kiir_hozzavalok(recept->hozzavalok);
+    FILE *out;
+    out=fopen("eredmeny.txt","wt");
+    fprintf(out,"%s\n",recept->nev);
+    fprintf(out,"Nehezsegi szint: %2d/10\n",recept->nehezseg);
+    fprintf(out,"Varhato idotartam: %d perc\n\n",recept->fozesi_ido);
+    kiir_hozzavalok(recept->hozzavalok,out);
+    beolvas_kiir_elkeszites(recept->fajlnev,out);
+    fclose(out);
+}
+
+void beolvas_kiir_elkeszites(char *fajlnev, FILE *out)
+{
+    FILE *fp;
+    int i,db;
+    char temp[1000+1];
+    fp=fopen(fajlnev,"rt");
+    while(fgets(temp,1000,fp) && strncmp(temp,"Elkeszites:",11));
+    fgets(temp,1000,fp);
+    db=atoi(temp);
+    fprintf(out,"\nElkeszites:\n");
+    for(i=1;i<=db;i++)
+    {
+        fgets(temp,1000,fp);
+        fprintf(out,"%s",temp);
+    }
+    fclose(fp);
+    fprintf(out,"\nJo etvagyat!");
 }
 
 /*A hozzávalóknak foglalt dinamikus memória területet felszabadítja*/
diff --git a/receptor/hozzavalok.txt b/receptor/hozzavalok.txt
new file mode 100644
index 0000000000000000000000000000000000000000..091c6c97d6b0f1f422735da80acb792f9dac0b31
--- /dev/null
+++ b/receptor/hozzavalok.txt
@@ -0,0 +1,8 @@
+liszt:1:kg 
+tej:250:ml 
+cukor:1:evokanal 
+élesztõ:2:kocka 
+olivaolaj:1:dl 
+langyos víz:4:dl
+###
+ 
diff --git a/receptor/hozzavalok.txt~ b/receptor/hozzavalok.txt~
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/receptor/kereses.c b/receptor/kereses.c
index f6ccb7ba339515432c00892a0bf2da0f3b631f63..4a8ee0e0d7ee34c0d25adf71aaf4a1ba1f0d30aa 100644
--- a/receptor/kereses.c
+++ b/receptor/kereses.c
@@ -8,6 +8,110 @@
 #endif
 #define TESZT
 
+int Receptek_szama(Lista_rec *receptek)
+{
+   Recept *mozgo;
+   int db=0;
+   for(mozgo=receptek->eleje->kovetkezo;mozgo!=receptek->vege;mozgo=mozgo->kovetkezo) db++;
+   return db;
+}
+
+void Receptek_listaz(Lista_rec *receptek)
+{
+    Recept *mozgo;
+    int db=0;
+    printf("Meglevo receptek az adatbazisban:\n");
+    for(mozgo=receptek->eleje->kovetkezo;mozgo!=receptek->vege;mozgo=mozgo->kovetkezo)
+    {
+        db++;
+        printf("%d. %s\n",db,mozgo->nev);
+    }
+}
+
+KeresesiLista *Keresesi_lista_letrehoz(Lista_rec *receptek, Lista_hoz *alapanyagok,int *meret)
+{
+    int i_rec,db;
+    double kapcsolat,temp;
+    Recept *mozgo;
+    Hozzavalo *mozgo_inrec;
+    Hozzavalo *mozgo_inalap;
+    KeresesiLista *tomb;
+    *meret=Receptek_szama(receptek);
+    tomb=(KeresesiLista*)malloc((*meret)*sizeof(KeresesiLista));
+    i_rec=0;
+    //végigmegy a recepteken
+    for(mozgo=receptek->eleje->kovetkezo;mozgo!=receptek->vege;mozgo=mozgo->kovetkezo)
+    {
+        kapcsolat=0;
+        db=0;
+        //túlindexelés ellen
+        if(i_rec<meret)
+        {
+            tomb[i_rec].rec=mozgo;
+            //végigmegy a hozzávalókon a receptben
+            for(mozgo_inrec=mozgo->hozzavalok->eleje->kovetkezo;mozgo_inrec!=mozgo->hozzavalok->vege;mozgo_inrec=mozgo_inrec->kovetkezo)
+            {
+
+                //végigmegy a megadott hozzávalókon
+                for(mozgo_inalap=alapanyagok->eleje->kovetkezo;mozgo_inalap->kovetkezo!=NULL;mozgo_inalap=mozgo_inalap->kovetkezo)
+                {
+                    temp=0;
+                    if(strstr(mozgo_inrec->nev,mozgo_inalap->nev))
+                    {
+                        if((mozgo_inalap->mertekegyseg_SI.egyseg)==(mozgo_inrec->mertekegyseg_SI.egyseg)) temp+=2;
+                        temp+=((double)strlen(mozgo_inrec->nev)/strlen(mozgo_inalap->nev))*2.5;
+                        temp+=(double)(mozgo_inalap->mertekegyseg.mennyiseg)/(mozgo_inrec->mertekegyseg.mennyiseg)*1.5;
+                    }
+                    else temp+=1;
+                    temp/=2;
+                    kapcsolat+=temp;
+                }
+                db++;
+            }
+            tomb[i_rec].ertek=kapcsolat/db;
+            i_rec++;
+        }
+    }
+    return tomb;
+}
+
+int Keresesi_Lista_hasonlit_ertek(void const *a,void const *b)
+{
+    KeresesiLista const *egyik=(KeresesiLista*) a;
+    KeresesiLista const *masik=(KeresesiLista*) b;
+    return ((masik->ertek)-(egyik->ertek));
+}
+int Keresesi_Lista_hasonlit_nehezseg(void const *a,void const *b)
+{
+    KeresesiLista const *egyik=(KeresesiLista*) a;
+    KeresesiLista const *masik=(KeresesiLista*) b;
+    return((egyik->rec->nehezseg)-(masik->rec->nehezseg));
+}
+int Keresesi_Lista_hasonlit_fozesiido(void const *a,void const *b)
+{
+    KeresesiLista const *egyik=(KeresesiLista*) a;
+    KeresesiLista const *masik=(KeresesiLista*) b;
+    return((egyik->rec->fozesi_ido)-(masik->rec->fozesi_ido));
+}
+
+void KeresesiLista_rendez(KeresesiLista *tomb, int meret,int nehezseg,int ido)
+{
+    int i;
+    qsort(tomb,meret,sizeof(KeresesiLista),Keresesi_Lista_hasonlit_ertek);
+    if((tomb[0].rec->nehezseg)>nehezseg)
+    {
+        qsort(tomb,meret,sizeof(KeresesiLista),Keresesi_Lista_hasonlit_nehezseg);
+        for(i=0;i<meret && ((tomb[i].rec->nehezseg)<nehezseg);i++);
+        qsort(tomb,i+1,sizeof(KeresesiLista),Keresesi_Lista_hasonlit_ertek);
+    }
+    if((tomb[0].rec->fozesi_ido)>ido)
+    {
+        qsort(tomb,meret,sizeof(KeresesiLista),Keresesi_Lista_hasonlit_fozesiido);
+        for(i=0;i<meret && ((tomb[i].rec->fozesi_ido)<ido);i++);
+        qsort(tomb,i+1,sizeof(KeresesiLista),Keresesi_Lista_hasonlit_ertek);
+    }
+}
+
 
 KeresesiFa *Faba_beszur(double feltetel,Recept *rec_ptr,KeresesiFa *gyoker)
 {
@@ -35,7 +139,7 @@ KeresesiFa *Fa_epit(Lista_rec *rec_strazsa, Lista_hoz *alapanyagok, KeresesiFa *
     Hozzavalo *mozgo_inrec;
     Hozzavalo *mozgo_inalap;
     //végigmegy a recepteken
-    for(mozgo=rec_strazsa->eleje->kovetkezo;mozgo->kovetkezo!=NULL;mozgo=mozgo->kovetkezo)
+    for(mozgo=rec_strazsa->eleje->kovetkezo;mozgo=NULL;mozgo=mozgo->kovetkezo)
     {
         db=0;
         kapcsolat=0;
diff --git a/receptor/lencsefozelek.txt b/receptor/lencsefozelek.txt
index db6ccb156b94e96d024ad4a9263ac1f6f570448f..f3ab84c2c6d60a8f10af173c3e11f7d48074617d 100644
--- a/receptor/lencsefozelek.txt
+++ b/receptor/lencsefozelek.txt
@@ -19,26 +19,12 @@ só
 4 csipet pirospaprika
 100 ml víz
 Elkeszites:
-1
-A lencsét elõzõ este alaposan átmossuk, beáztatjuk. Bõ vízben hagyjuk állni egész nap. Sok vizet öntsünk rá, mert könnyen felszívja reggelre mindet!
-
-2
-A hozzávalóknál olvasható alaplevet feltesszük fõni a kiázott, átmosott lencsével. Beleteszünk pár darab füstölt szalonnabõrt, az íze kedvéért, majd babérlevelet, az egész vöröshagymát, és sót adunk hozzá.
-
-3
-Lefedjük, és addig fõzzük, míg puhára nem fõ a lencsénk. Ha szükséges, közben adjunk hozzá még csontlevet. Mikor kész, kivesszük belõle az egész vöröshagymát.
-
-4
-Mikor kész a lencsénk, még a tûzön hagyjuk, és vele párhuzamosan gyorsan elkészítjük a rántást. Az olajat egy serpenyõbe tesszük, hozzáadjuk a finomra vágott vöröshagymát, megpirítjuk, hozzáadjuk a lisztet. Gyors kavargatással simára keverjük.
-
-5
-Levesszük a tûzrõl, hozzáadjuk az összezúzott fokhagymát, és a pirospaprikát. Ehhez azért vesszük le a tûzrõl a rántást, hogy a paprika és a fokhagyma ne égjen meg, ha megég, keserû lesz.
-
-6
-A hozzávalók közt írt hideg vizet adjuk hozzá, és simára keverjük. FONTOS! Csak hideg vizet adjunk a rántáshoz, hogy ne legyen csomós!
-
-7
-A rántást hozzákeverjük a forrásban lévõ lencséhez. Egyet forralunk rajta, majd ízlés szerint adunk hozzá sót, cukrot, mustárt, frissen reszelt citromhéjat, és kevés ecetet.
-
-8
-A kész lencsefõzeléket füstölt csülökkel tálaljuk, ízlés szerint, tálalás elõtt tejfölt keverhetünk hozzá ízlés szerint.
+8 lépésből áll
+1. A lencsét elõzõ este alaposan átmossuk, beáztatjuk. Bõ vízben hagyjuk állni egész nap. Sok vizet öntsünk rá, mert könnyen felszívja reggelre mindet!
+2. A hozzávalóknál olvasható alaplevet feltesszük fõni a kiázott, átmosott lencsével. Beleteszünk pár darab füstölt szalonnabõrt, az íze kedvéért, majd babérlevelet, az egész vöröshagymát, és sót adunk hozzá.
+3. Lefedjük, és addig fõzzük, míg puhára nem fõ a lencsénk. Ha szükséges, közben adjunk hozzá még csontlevet. Mikor kész, kivesszük belõle az egész vöröshagymát.
+4. Mikor kész a lencsénk, még a tûzön hagyjuk, és vele párhuzamosan gyorsan elkészítjük a rántást. Az olajat egy serpenyõbe tesszük, hozzáadjuk a finomra vágott vöröshagymát, megpirítjuk, hozzáadjuk a lisztet. Gyors kavargatással simára keverjük.
+5. Levesszük a tûzrõl, hozzáadjuk az összezúzott fokhagymát, és a pirospaprikát. Ehhez azért vesszük le a tûzrõl a rántást, hogy a paprika és a fokhagyma ne égjen meg, ha megég, keserû lesz.
+6. A hozzávalók közt írt hideg vizet adjuk hozzá, és simára keverjük. FONTOS! Csak hideg vizet adjunk a rántáshoz, hogy ne legyen csomós!
+7. A rántást hozzákeverjük a forrásban lévõ lencséhez. Egyet forralunk rajta, majd ízlés szerint adunk hozzá sót, cukrot, mustárt, frissen reszelt citromhéjat, és kevés ecetet.
+8. A kész lencsefõzeléket füstölt csülökkel tálaljuk, ízlés szerint, tálalás elõtt tejfölt keverhetünk hozzá ízlés szerint.
diff --git a/receptor/lencsefozelek.txt~ b/receptor/lencsefozelek.txt~
index db6ccb156b94e96d024ad4a9263ac1f6f570448f..ca716c7f9b19e01fd624151570c84f07c14eb2e2 100644
--- a/receptor/lencsefozelek.txt~
+++ b/receptor/lencsefozelek.txt~
@@ -19,26 +19,11 @@ só
 4 csipet pirospaprika
 100 ml víz
 Elkeszites:
-1
-A lencsét elõzõ este alaposan átmossuk, beáztatjuk. Bõ vízben hagyjuk állni egész nap. Sok vizet öntsünk rá, mert könnyen felszívja reggelre mindet!
-
-2
-A hozzávalóknál olvasható alaplevet feltesszük fõni a kiázott, átmosott lencsével. Beleteszünk pár darab füstölt szalonnabõrt, az íze kedvéért, majd babérlevelet, az egész vöröshagymát, és sót adunk hozzá.
-
-3
-Lefedjük, és addig fõzzük, míg puhára nem fõ a lencsénk. Ha szükséges, közben adjunk hozzá még csontlevet. Mikor kész, kivesszük belõle az egész vöröshagymát.
-
-4
-Mikor kész a lencsénk, még a tûzön hagyjuk, és vele párhuzamosan gyorsan elkészítjük a rántást. Az olajat egy serpenyõbe tesszük, hozzáadjuk a finomra vágott vöröshagymát, megpirítjuk, hozzáadjuk a lisztet. Gyors kavargatással simára keverjük.
-
-5
-Levesszük a tûzrõl, hozzáadjuk az összezúzott fokhagymát, és a pirospaprikát. Ehhez azért vesszük le a tûzrõl a rántást, hogy a paprika és a fokhagyma ne égjen meg, ha megég, keserû lesz.
-
-6
-A hozzávalók közt írt hideg vizet adjuk hozzá, és simára keverjük. FONTOS! Csak hideg vizet adjunk a rántáshoz, hogy ne legyen csomós!
-
-7
-A rántást hozzákeverjük a forrásban lévõ lencséhez. Egyet forralunk rajta, majd ízlés szerint adunk hozzá sót, cukrot, mustárt, frissen reszelt citromhéjat, és kevés ecetet.
-
-8
-A kész lencsefõzeléket füstölt csülökkel tálaljuk, ízlés szerint, tálalás elõtt tejfölt keverhetünk hozzá ízlés szerint.
+1. A lencsét elõzõ este alaposan átmossuk, beáztatjuk. Bõ vízben hagyjuk állni egész nap. Sok vizet öntsünk rá, mert könnyen felszívja reggelre mindet!
+2. A hozzávalóknál olvasható alaplevet feltesszük fõni a kiázott, átmosott lencsével. Beleteszünk pár darab füstölt szalonnabõrt, az íze kedvéért, majd babérlevelet, az egész vöröshagymát, és sót adunk hozzá.
+3. Lefedjük, és addig fõzzük, míg puhára nem fõ a lencsénk. Ha szükséges, közben adjunk hozzá még csontlevet. Mikor kész, kivesszük belõle az egész vöröshagymát.
+4. Mikor kész a lencsénk, még a tûzön hagyjuk, és vele párhuzamosan gyorsan elkészítjük a rántást. Az olajat egy serpenyõbe tesszük, hozzáadjuk a finomra vágott vöröshagymát, megpirítjuk, hozzáadjuk a lisztet. Gyors kavargatással simára keverjük.
+5. Levesszük a tûzrõl, hozzáadjuk az összezúzott fokhagymát, és a pirospaprikát. Ehhez azért vesszük le a tûzrõl a rántást, hogy a paprika és a fokhagyma ne égjen meg, ha megég, keserû lesz.
+6. A hozzávalók közt írt hideg vizet adjuk hozzá, és simára keverjük. FONTOS! Csak hideg vizet adjunk a rántáshoz, hogy ne legyen csomós!
+7. A rántást hozzákeverjük a forrásban lévõ lencséhez. Egyet forralunk rajta, majd ízlés szerint adunk hozzá sót, cukrot, mustárt, frissen reszelt citromhéjat, és kevés ecetet.
+8. A kész lencsefõzeléket füstölt csülökkel tálaljuk, ízlés szerint, tálalás elõtt tejfölt keverhetünk hozzá ízlés szerint.
diff --git a/receptor/main.c b/receptor/main.c
index 8c73702d13e6f9fc7ab486f0205ff145fb29e6f5..6b4e616efe0190f87d1b38317950d44292e392f8 100644
--- a/receptor/main.c
+++ b/receptor/main.c
@@ -13,12 +13,15 @@ int main()
 {
     //debugmalloc_naplofajl("dmalloc.txt");
     Lista_rec receptek;
-    int i,exi=1,db;
+    int i,quit=0,db,nehezseg,ido,lista_meret,temp;
+    char *str;
+    char c;
     menu fomenu;
     fomenu=alap;
     Lista_hoz alapanyagok;
-    KeresesiFa *gyoker;
-    while(fomenu>=0 && fomenu<6 && exi)
+    KeresesiLista *lista;
+    //KeresesiFa *gyoker;
+    while(!quit)
     {
 
         switch(fomenu)
@@ -27,6 +30,7 @@ int main()
             scanf("%d",&i);
             fomenu=i;
             break;
+
             case alap:
             printf("Udvozlom a Receptor programban!\n");
             printf("Valasszon a felsorolt lehetosegek kozul:\n");
@@ -37,31 +41,58 @@ int main()
             printf("5. Kilépés\n\n");
             fomenu=var;
             break;
+
             case betolt_adatok:
             Main_receptek(&receptek);
             #ifdef TESZT
             fprintf(stdout,"Betoltottem\n");
             #endif
-            kiir_recept((*receptek.eleje).kovetkezo);
+            printf("\n%d darab recept\n",Receptek_szama(&receptek));
+            Receptek_listaz(&receptek);
+            //kiir_recept((*receptek.eleje).kovetkezo);
             fomenu=var;
             break;
+
             case alapanyagok_beker:
-            //megad_hozzavalok(&alapanyagok);
-            otthoni_hozzavalok_fajlbol("hozzavalok.txt",&alapanyagok);
+            printf("Fajlbol szeretne betolteni az otthoni hozzavalokat? i/n");
+            do{
+                scanf("%c",&c);
+            }
+            while(c!='i' && c!='I' && c!='n' && c!='N');
+            if(c=='n' || c=='N') megad_hozzavalok(&alapanyagok);
+            else otthoni_hozzavalok_fajlbol("hozzavalok.txt",&alapanyagok);
             fomenu=var;
             break;
+
             case kereses:
-            gyoker=Fa_epit(&receptek,&alapanyagok,NULL);
+            printf("Adjon meg keresesi parametereket: \n");
+            printf("Maximum mennyi ideje van a fozeshez? <percben> ");
+            scanf("%d",&ido);
+            printf("\nEgy 10-es skalan mennyire tud fozni? ");
+            scanf("%d",&nehezseg);
+            printf("\n");
+            lista=Keresesi_lista_letrehoz(&receptek,&alapanyagok,&lista_meret);
+            KeresesiLista_rendez(lista,lista_meret,nehezseg,ido);
+            for(i=0;i<lista_meret;i++)
+            {
+                temp=lista[i].ertek;
+                str=lista[i].rec->nev;
+                printf("%2.2lf %s\n",temp,str);
+            }
+            free(lista);
+            lista=NULL;
+            /*gyoker=Fa_epit(&receptek,&alapanyagok,NULL);
             printf("Kesz a fa\n");
             Fa_kirajzol(gyoker);
-            db=Fa_szabadit(&gyoker);
+            db=Fa_szabadit(&gyoker);*/
             fomenu=var;
             break;
+
             case kilep:
             szabadit_hozzavalok(receptek.eleje);
             //szabadit_elkeszites(receptek.)
             szabadit_receptek(receptek.eleje);
-            exi=0;
+            quit=1;
             break;
 
         }
diff --git a/receptor/mustaros_virslisporkolt.txt b/receptor/mustaros_virslisporkolt.txt
index 0ad9e0f5f45cd4e3abc6283613304a5cef8d4915..2a3a69112b73e6d3cd352d5d31e54b6ebf9ed788 100644
--- a/receptor/mustaros_virslisporkolt.txt
+++ b/receptor/mustaros_virslisporkolt.txt
@@ -13,6 +13,7 @@ só
 1 db húsleveskocka
 1 csomag orsó tészta
 Elkeszites:
+4 lépésből áll
 1. Olajon megdinszteljük a kockára vágott hagymát és a felkarikázott virslit.
 2. Ezután hozzáadjuk a húsleveskockát, ketchupot és a mustárt.
 3. Felöntjük kevés vízzel, és ha elpárolog pótoljuk.
diff --git a/receptor/mustaros_virslisporkolt.txt~ b/receptor/mustaros_virslisporkolt.txt~
index d6ee42bb7f1a9dada8f64a77ba099afb756880ab..2a3a69112b73e6d3cd352d5d31e54b6ebf9ed788 100644
--- a/receptor/mustaros_virslisporkolt.txt~
+++ b/receptor/mustaros_virslisporkolt.txt~
@@ -1,18 +1,20 @@
-Must�ros virsilis p�rk�lt
+Mustáros virsilis pörkölt
 1(nehezseg)
 20 perc
 Hozzavalok:
+2 fő részére
 40 dkg virsli
-1 fej v�r�shagyma
-s�
-�r�lt fekete bors
-1,5 dl f�z�tejsz�n
+1 fej vöröshagyma
+só
+õrölt fekete bors
+1,5 dl fõzõtejszín
 0,5 dl ketchup
-3 te�skan�l must�r
-1 db h�sleveskocka
-1 csomag ors� t�szta
+3 teáskanál mustár
+1 db húsleveskocka
+1 csomag orsó tészta
 Elkeszites:
-1. Olajon megdinsztelj�k a kock�ra v�gott hagym�t �s a felkarik�zott virslit.
-2. Ezut�n hozz�adjuk a h�sleveskock�t, ketchupot �s a must�rt.
-3. Fel�ntj�k kev�s v�zzel, �s ha elp�rolog p�toljuk.
-4. �sszeforraljuk, majd fel�ntj�k tejsz�nnel, s�zzuk, borsozzuk, �s m�g 5 percig f�zz�k.
+4 lépésből áll
+1. Olajon megdinszteljük a kockára vágott hagymát és a felkarikázott virslit.
+2. Ezután hozzáadjuk a húsleveskockát, ketchupot és a mustárt.
+3. Felöntjük kevés vízzel, és ha elpárolog pótoljuk.
+4. Összeforraljuk, majd felöntjük tejszínnel, sózzuk, borsozzuk, és még 5 percig fõzzük.
diff --git a/receptor/receptor.h b/receptor/receptor.h
index 53ad593540002625c546166843121ddd92dc0bec..b31926053d6cf78687927ddde8eb84366fc18c4b 100644
--- a/receptor/receptor.h
+++ b/receptor/receptor.h
@@ -42,6 +42,7 @@ typedef enum beolvasas{
 typedef struct Hozzavalo{
     char nev[100];
     Mertek mertekegyseg;
+    Mertek mertekegyseg_SI;
     struct Hozzavalo *elozo;
     struct Hozzavalo *kovetkezo;
 } Hozzavalo;
@@ -69,6 +70,11 @@ typedef struct Lista_rec{
     Recept *vege;
 }Lista_rec;
 
+typedef struct KeresesiLista{
+    Recept *rec;
+    double ertek;
+} KeresesiLista;
+
 typedef struct KeresesiFa
 {
     Recept * recept;
@@ -83,15 +89,24 @@ 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);
+Hozzavalo* Beolvas_hozzavalo(char *str);
+void otthoni_hozzavalok_fajlbol(char * fajlnev,Lista_hoz *strazsa);
 void megad_hozzavalok(Lista_hoz *strazsa);
-void kiir_hozzavalok(Lista_hoz *hozzavalok);
-void kiir_recept(Recept *recept);
+void kiir_hozzavalok(Lista_hoz *hozzavalok, FILE *out);
+void kiir_recept(Recept *recept);
+void beolvas_kiir_elkeszites(char * fajlnev, FILE *out);
 void szabadit_hozzavalok(Recept *eleje);
 void szabadit_elkeszites(char** pt,int db);
 void szabadit_receptek(Recept *eleje);
 
 /*kereses.c*/
+int Receptek_szama(Lista_rec *receptek);
+void Receptek_listaz(Lista_rec *receptek);
+KeresesiLista *Keresesi_lista_letrehoz(Lista_rec *receptek, Lista_hoz *alapanyagok,int *meret);
+void KeresesiLista_rendez(KeresesiLista *tomb, int meret,int nehezseg,int ido);
+
+int Receptek_szama(Lista_rec *receptek);
+void Receptek_listaz(Lista_rec *receptek);
 KeresesiFa *Faba_beszur(double feltetel,Recept *rec_ptr,KeresesiFa *gyoker);
 KeresesiFa *Fa_epit(Lista_rec *rec_strazsa, Lista_hoz *alapanyagok, KeresesiFa **gyoker);
 int Fa_szabadit(KeresesiFa **gyoker);