diff --git a/receptor/00.txt b/receptor/00.txt
new file mode 100644
index 0000000000000000000000000000000000000000..1794372ea2321e047044df2815bfbba2aba5914d
--- /dev/null
+++ b/receptor/00.txt
@@ -0,0 +1,2 @@
+1
+01.txt
diff --git a/receptor/01.txt b/receptor/01.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e7106a66951ee15fc84c0fe22c32c4fe9158b919
--- /dev/null
+++ b/receptor/01.txt
@@ -0,0 +1,25 @@
+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
new file mode 100644
index 0000000000000000000000000000000000000000..d18d41846b5b87e130c6e528fe304606e96f544e
--- /dev/null
+++ b/receptor/main.c
@@ -0,0 +1,359 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <ctype.h>
+//#include "debugmalloc.h"
+
+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;
+
+char mertekegysegek_szovegben[][15]={"mg","g","dkg","kg","ml","cl","dl","l","db","teaskanal","kiskanal",
+"evokanal","merokanal","pár","fej","gerezd","szelet","csomag",""};
+
+//Hozzávalók tárolására szolgáló struktúra
+typedef struct Hozzavalo{
+    char nev[100];
+    int mennyiseg;
+    mertek mertekegyseg;
+    struct hozzavalo_struct *elozo;
+    struct Hozzavalot *kovetkezo;
+} Hozzavalo;
+
+typedef struct Lista_hoz{
+    Hozzavalo *eleje;
+    Hozzavalo *vege;
+}Lista_hoz;
+
+//Recept adatstruktúra, mag
+typedef struct Recept{
+    char nev[100];
+    char fajlnev[100];
+    int nehezseg;
+    int fozesi_ido; //percben kifejezve
+    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;
+
+void beszur_a_hoz_listaba(Hozzavalo * uj,Lista_hoz *lista)
+{
+    Hozzavalo *temp;
+    temp=lista->eleje->kovetkezo;
+    temp->elozo=uj;
+    uj->kovetkezo=lista->eleje->kovetkezo;
+    uj->elozo=lista->eleje;
+    lista->eleje->kovetkezo=uj;
+
+}
+
+void beszur_a_rec_listaba(Recept *uj,Lista_rec *lista)
+{
+    lista->eleje->kovetkezo->elozo=uj;
+    uj->kovetkezo=lista->eleje->kovetkezo;
+    uj->elozo=lista->eleje;
+    lista->eleje->kovetkezo=uj;
+}
+
+//új hozzavalót befűzi a lista elejére
+//!Minden egyes hozzávalóhoz külön foglalunk helyet, ami felszabadítása a hívó kötelessége
+Hozzavalo* hozzavalo_beolvas(char *str)
+{
+    Hozzavalo* ujelem=(Hozzavalo*)malloc(sizeof(Hozzavalo));
+    //új értékek beolvasása
+    char ujmenny[255],ujmertek[255],ujnev[255];
+    sscanf(str,"%s %s ",ujmenny,ujmertek);
+    //!!le kell kezelni, hogy ne csak ilyen formátumban fogadja el és, hogy ha több fázisa van a hozzávalóknak: (1 dl tej)... Bevonó hozzávalói:
+    if(isdigit(ujmenny[0]))
+    {
+        ujelem->mennyiseg=atoi(ujmenny);
+        //állapítsuk meg milyen mértékegység
+        int i,k;
+        i=0;
+        while(strcmp(mertekegysegek_szovegben[i],ujmertek) && strcmp(mertekegysegek_szovegben[i],"")) i++;
+
+        if(!strcmp(mertekegysegek_szovegben[i],ujmertek)) ujelem->mertekegyseg=i;
+        else ujelem->mertekegyseg=ismeretlen;
+
+
+        k=strlen(ujmenny)+strlen(ujmertek)+2;
+        for(i=0;k<=(strlen(str));i++) ujnev[i]=str[k++];
+    }
+    else
+    {
+        strcpy(ujnev,str);
+        ujelem->mennyiseg=-1;
+        ujelem->mertekegyseg=-1;
+    }
+
+    //név eltárolása
+    strcpy(ujelem->nev,ujnev);
+
+    //visszatérünk az újdonsult elemmel
+    return ujelem;
+}
+
+Recept* beolvas(FILE *fp,char * fajlnev)
+{
+    Recept* ujelem_2=(Recept*)malloc(sizeof(Recept));
+    char temp[100];
+    int temp_int;
+
+    strcpy(ujelem_2->fajlnev,fajlnev);
+
+    //NÉV beolvasása
+    fgets(temp,100,fp);
+    strcpy(ujelem_2->nev,temp);
+
+    //nehézségi szint beolvasása
+    fgets(temp,100,fp);
+    sscanf(temp,"%d ",&temp_int);
+    ujelem_2->nehezseg=temp_int;
+
+    //becsült elkészítési idő beolvasása
+    fgets(temp,100,fp);
+    sscanf(temp,"%d ",&temp_int);
+    ujelem_2->fozesi_ido=temp_int;
+
+    //Hozzávalók beolvasása
+    beolvasas allapot;
+    allapot=elso_szakasz;
+
+    Lista_hoz *ujlista=(Lista_hoz*)malloc(sizeof(Lista_hoz));
+    ujlista->eleje=(Hozzavalo*)malloc(sizeof(Hozzavalo));
+    ujlista->vege=(Hozzavalo*)malloc(sizeof(Hozzavalo));
+
+    ujlista->eleje->kovetkezo=ujlista->vege;
+    ujlista->eleje->elozo=NULL;
+    ujlista->vege->kovetkezo=NULL;
+    ujlista->vege->elozo=ujlista->eleje;
+    Hozzavalo *ujhozza;
+    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);
+                ujelem_2->fo=temp_int;
+            }
+            break;
+
+            case hozzavalok_beolvas:
+            ujhozza=hozzavalo_beolvas(temp);
+            beszur_a_hoz_listaba(ujhozza,ujlista);
+            break;
+
+            /*
+            //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;*/
+        }
+    }
+    return ujelem_2;
+}
+
+//
+void lista_letrehoz(Lista_rec *lista)
+{
+    char temp[100]="";
+    char fajlnev[50];
+    int i;
+    FILE *fp_0=NULL;
+    FILE *fp=NULL;
+    Recept *ujelem;
+
+    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;
+
+    fp_0=fopen("00.txt","rt");
+    if(fp_0==NULL) printf("Nem sikerult megnyitni a fajlt!");
+    else{
+        //Beolvassuk hány db recept van
+        int db_rec;
+        fgets(temp,5,fp_0);
+        db_rec=atoi(temp);
+        for(i=0;i<db_rec;i++)
+        {
+            char c;
+            i=0;
+            fgets(temp,50,fp_0);
+            while(temp[i]!='\n')
+            {
+                fajlnev[i++]=temp[i];
+            }
+            fajlnev[i]='\0';
+            fp=fopen(fajlnev, "rt");
+            if (fp==NULL) printf("Nem sikerult megnyitni a fajlt!");
+            else
+            {
+                ujelem=beolvas(fp,fajlnev);
+                beszur_a_rec_listaba(ujelem,lista);
+            }
+        }
+    }
+}
+
+
+void beker_alapanyagok();
+
+//Kiir egy Recept struktúrát, úgy hogx beolvassa az elkészítés menetétét is.
+void kiir(Lista_rec *lista)
+{
+    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);
+    Recept *egyik;
+    Hozzavalo *i;
+    egyik=lista->eleje->kovetkezo;
+    i=egyik->hozzavalok->vege;
+    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)
+{
+    Recept *aktrec=eleje;
+    Hozzavalo *akt;
+    Hozzavalo *kov=NULL;
+    while(akt)
+    {
+        akt=aktrec->hozzavalok->eleje;
+        while(akt)
+        {
+            kov=akt->kovetkezo;
+            free(akt);
+            akt=kov;
+        }
+        akt=aktrec->hozzavalok->eleje->kovetkezo;
+    }
+}
+
+//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)
+{
+    Recept *akt=eleje;
+    Recept *kov=NULL;
+    while(akt)
+    {
+        kov=akt->kovetkezo;
+        free(akt);
+        akt=kov;
+    }
+}
+
+int main()
+{
+    //debugmalloc_naplofajl("dmalloc.txt");
+    Lista_rec receptek;
+    Recept *temp;
+    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)
+    {
+        switch(fomenu)
+        {
+            case alap:
+            scanf("%d",&fomenu);
+            break;
+            case betolt_adatok:
+            printf("Ezen dolgozom\n");
+            lista_letrehoz(&receptek);
+            kiir(&receptek);
+            szabadit_hozzavalok(receptek.eleje);
+            //szabadit_elkeszites(receptek.)
+            szabadit_receptek(receptek.eleje);
+            fomenu=alap;
+            break;
+            case alapanyagok_beker:
+            printf("Ezen is dolgozom\n");
+            fomenu=alap;
+            break;
+            case kereses:
+            printf("Funkcio meg nem elerheto\n");
+            fomenu=alap;
+            break;
+            default:
+            break;
+        }
+    }
+    return 0;
+}
diff --git a/receptor/receptor.cbp b/receptor/receptor.cbp
new file mode 100644
index 0000000000000000000000000000000000000000..86b4e18581cb0964d9dfcff7c2c8ac581abee15b
--- /dev/null
+++ b/receptor/receptor.cbp
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
+<CodeBlocks_project_file>
+	<FileVersion major="1" minor="6" />
+	<Project>
+		<Option title="receptor" />
+		<Option pch_mode="2" />
+		<Option compiler="gcc" />
+		<Build>
+			<Target title="Debug">
+				<Option output="bin/Debug/receptor" prefix_auto="1" extension_auto="1" />
+				<Option object_output="obj/Debug/" />
+				<Option type="1" />
+				<Option compiler="gcc" />
+				<Compiler>
+					<Add option="-g" />
+				</Compiler>
+			</Target>
+		</Build>
+		<Compiler>
+			<Add option="-Wall" />
+		</Compiler>
+		<Unit filename="debugmalloc.h" />
+		<Unit filename="main.c">
+			<Option compilerVar="CC" />
+		</Unit>
+		<Unit filename="receptor.h" />
+		<Extensions>
+			<code_completion />
+			<debugger />
+			<envvars />
+		</Extensions>
+	</Project>
+</CodeBlocks_project_file>
diff --git a/receptor/receptor.h b/receptor/receptor.h
new file mode 100644
index 0000000000000000000000000000000000000000..7fa759bb345c15e68bc30462ed189f8e894a95df
--- /dev/null
+++ b/receptor/receptor.h
@@ -0,0 +1,16 @@
+typedef enum menu;
+typedef struct Hozzavalo Hozzavalo;
+typedef struct Lista_hoz Lista_hoz;
+typedef struct Recept Recept;
+typedef struct lista_recept Lista_rec;
+
+void beszur_a_hoz_listaba(Hozzavalo*,Lista_hoz*);
+void beszur_a_rec_listaba(Recept*,Lista_rec*);
+Hozzavalo* hozzavalo_beolvas(char*);
+Recept* beolvas(FILE*,char*);
+void lista_letrehoz(Lista_rec*);
+void beker_alapanyagok();
+void kiir(Recept*);
+void szabadit_hozzavalok(Hozzavalo*);
+void szabadit_elkeszites(char**,int db);
+void szabadit_receptek(Recept*);