diff --git a/receptor/mertekegysegek.c b/receptor/mertekegysegek.c
new file mode 100644
index 0000000000000000000000000000000000000000..b61039ae32beb365aa86b979aaa89c451e6efd1e
--- /dev/null
+++ b/receptor/mertekegysegek.c
@@ -0,0 +1,85 @@
+#include "receptor.h"
+/**
+1 merőkanál 65 ml / 65 g
+1 evőkanál 15 ml / 15 g
+1 kiskanál/teáskanál 5 ml / 5g
+*/
+
+char mertekegysegek_szovegben[][15]={"mg","g","dkg","kg","ml","cl","dl","l","db","teáskanál","teaskanal","tk",
+                                     "kiskanál","kiskanal","kk","evőkanál","evokanal","ek","merőkanál","merokanal",
+                                     "mk","pár","par","fej","gerezd","szelet","sz","csomag","cs","kocka",""};
+
+
+MERTEKEGYSEGEK hash(char *str)
+{
+    int i=0;
+    while(strcmp(mertekegysegek_szovegben[i],str) && strcmp(mertekegysegek_szovegben[i],"")) i++;
+    if(i>8 && i<12) return teaskanal;
+    if(i>11 && i<15) return kiskanal;
+    if(i>14 && i<18) return evokanal;
+    if(i>17 && i<21) return merokanal;
+    if(i==20 || i==22) return par;
+    if(i==25 || i==26) return szelet;
+    if(i==27 || i==28) return csomag;
+    return i;
+}
+
+Mertek Mertekegyseg_init(char *str,int menny)
+{
+    Mertek uj;
+    uj.egyseg=hash(str);
+    uj.mennyiseg=menny;
+    strcpy(uj.nev,str);
+    return uj;
+}
+
+char* Mertekegyseg_szovegben(MERTEKEGYSEGEK i)
+{
+    switch(i)
+    {
+        case teaskanal: return mertekegysegek_szovegben[9];
+        case kiskanal: return mertekegysegek_szovegben[12];
+        case evokanal: return mertekegysegek_szovegben[15];
+        case merokanal: return mertekegysegek_szovegben[18];
+        case par: return mertekegysegek_szovegben[20];
+        case szelet: return mertekegysegek_szovegben[25];
+        case csomag: return mertekegysegek_szovegben[27];
+        default: break;
+    }
+    return mertekegysegek_szovegben[i];
+}
+
+Mertek hash2(Mertek alany)
+{//mg=0,g,dkg,kg,ml,cl,dl,l,db,teaskanal,kiskanal,evokanal,merokanal
+    Mertek uj;
+    uj.egyseg=alany.egyseg;
+    uj.mennyiseg=1;
+    switch(alany.egyseg)
+    {
+        case mg:        uj.egyseg=mg; uj.mennyiseg=v_mg;break;
+        case g:         uj.egyseg=mg; uj.mennyiseg=v_g;break;
+        case dkg:       uj.egyseg=mg; uj.mennyiseg=v_dkg;break;
+        case kg:        uj.egyseg=mg; uj.mennyiseg=v_kg;break;
+        case ml:        uj.egyseg=ml; uj.mennyiseg=v_ml;break;
+        case cl:        uj.egyseg=ml; uj.mennyiseg=v_cl;break;
+        case dl:        uj.egyseg=ml; uj.mennyiseg=v_dl;break;
+        case l:         uj.egyseg=ml; uj.mennyiseg=v_l;break;
+        case teaskanal: uj.egyseg=ml; uj.mennyiseg=v_teaskanal_ml;break;
+        case kiskanal:  uj.egyseg=ml; uj.mennyiseg=v_kiskanal_ml;break;
+        case evokanal:  uj.egyseg=ml; uj.mennyiseg=v_evokanal_ml;break;
+        case merokanal: uj.egyseg=ml; uj.mennyiseg=v_merokanal_ml;break;
+        default: break;
+    }
+    return uj;
+}
+//Mertekegyseg_atvalto(uj->mertekegyseg,hash2(uj->mertekegyseg))
+Mertek Mertekegyseg_atvalto(Mertek alany,Mertek referencia)
+{
+    alany.egyseg=referencia.egyseg;
+    alany.mennyiseg*=referencia.mennyiseg;
+    return alany;
+}
+Mertek Mertekegyseg_visszavalto(Mertek alany, Mertek referencia)
+{
+
+}