Július Pastierik / 17. 07. 2008, 00:00
Dnes opäť pokračujeme v uverejňovaní makra pre prípravu slov pre slovenský slovník a dokončíme časť pre základnú prípravu.
V minulom dieli sme si uviedli prvú časť funkcií, ktoré sú uložené v module „Slovnik_init“ a sú určené pre počiatočnú prípravu rozšírenia pre spracovanie slova. Dnes budeme pokračovať týmto modulom a uvedieme si funkciu, ktorá číta definičný súbor tvarovania slov, podľa počtu definícii mení dimenziu polí a načítava príslušné časti tvarovania.
function spracuj_riadok(riadok as string, prvy as long) as long
dim prefix_sufix, co, za, podmienka as string
dim poznamka as boolean
dim znak, cast as string
dim dlzka, i, ktora as integer
dim kolko, pomprvy as long
dlzka=len(riadok)
pomprvy=prvy
cast=""
poznamka=false
ktora=0
for i=1 to dlzka
if not poznamka then
znak=mid(riadok,i,1)
if znak="#" then
poznamka=true
else
if znak=" " then
ktora=ktora+1
' Ukončenie definície jednej časti
select case ktora
case 1 ' Či ide o prefix/sufix
rem Toto nespracovávame
cast=""
case 2 ' Vlastný prefix/sufix
prefix_sufix=cast
cast=""
case 3 ' Ak je prvý, tak Y/N, inak "co"
if pomprvy<>0 then
co=cast
endif
cast=""
case 4 ' Ak je prvý, tak počet, inak "za"
if pomprvy=0 then
kolko=val(cast)
else
za=cast
endif
cast=""
case 5 ' Podmienka
podmienka=cast
cast=""
end select
else
cast=cast+znak
endif
endif
endif
next i
if (pomprvy=0) and (ktora=3) then
kolko=val(cast)
cast=""
endif
if (pomprvy<>0) and (ktora=4) then
' Koniec definície bez poznámky alebo medzery na konci riadku
podmienka=cast
cast=""
endif
if pomprvy=0 then
def_pfx_sfx=0
pomprvy=kolko
select case prefix_sufix
case "N"
redim preserve pfx_N_d(3,pomprvy)
pfx_N_p=pomprvy
case "F"
redim preserve pfx_F_d(3,pomprvy)
pfx_F_p=pomprvy
case "Z"
redim preserve sfx_Z_d(3,pomprvy)
sfx_Z_p=pomprvy
case "z"
redim preserve sfx_mz_d(3,pomprvy)
sfx_mz_p=pomprvy
case "U"
redim preserve sfx_U_d(3,pomprvy)
sfx_U_p=pomprvy
case "D"
redim preserve sfx_D_d(3,pomprvy)
sfx_D_p=pomprvy
case "K"
redim preserve sfx_K_d(3,pomprvy)
sfx_K_p=pomprvy
case "M"
redim preserve sfx_M_d(3,pomprvy)
sfx_M_p=pomprvy
case "S"
redim preserve sfx_S_d(3,pomprvy)
sfx_S_p=pomprvy
case "V"
redim preserve sfx_V_d(3,pomprvy)
sfx_V_p=pomprvy
case "A"
redim preserve sfx_A_d(3,pomprvy)
sfx_A_p=pomprvy
case "C"
redim preserve sfx_C_d(3,pomprvy)
sfx_C_p=pomprvy
case "H"
redim preserve sfx_H_d(3,pomprvy)
sfx_H_p=pomprvy
case "B"
redim preserve sfx_B_d(3,pomprvy)
sfx_B_p=pomprvy
case "b"
redim preserve sfx_mb_d(3,pomprvy)
sfx_mb_p=pomprvy
case "o"
redim preserve sfx_mo_d(3,pomprvy)
sfx_mo_p=pomprvy
case "O"
redim preserve sfx_O_d(3,pomprvy)
sfx_O_p=pomprvy
case "J"
redim preserve sfx_J_d(3,pomprvy)
sfx_J_p=pomprvy
case "L"
redim preserve sfx_L_d(3,pomprvy)
sfx_L_p=pomprvy
case "Q"
redim preserve sfx_Q_d(3,pomprvy)
sfx_Q_p=pomprvy
case "Y"
redim preserve sfx_Y_d(3,pomprvy)
sfx_Y_p=pomprvy
case "I"
redim preserve sfx_I_d(3,pomprvy)
sfx_I_p=pomprvy
case "P"
redim preserve sfx_P_d(3,pomprvy)
sfx_P_p=pomprvy
case "X"
redim preserve sfx_X_d(3,pomprvy)
sfx_X_p=pomprvy
case "E"
redim preserve sfx_E_d(3,pomprvy)
sfx_E_p=pomprvy
case "W"
redim preserve sfx_W_d(3,pomprvy)
sfx_W_p=pomprvy
case "T"
redim preserve sfx_T_d(3,pomprvy)
sfx_T_p=pomprvy
case "R"
redim preserve sfx_R_d(3,pomprvy)
sfx_R_p=pomprvy
case "č"
redim preserve sfx_c_c_d(3,pomprvy)
sfx_c_c_p=pomprvy
end select
else
def_pfx_sfx=def_pfx_sfx+1
if pomprvy=def_pfx_sfx then
' Spracovávame posledný riadok, bude nový
pomprvy=0
endif
if co="0" then co=""
if za="0" then za=""
select case prefix_sufix
case "N"
pfx_N_d(1,def_pfx_sfx)=co
pfx_N_d(2,def_pfx_sfx)=za
pfx_N_d(3,def_pfx_sfx)=podmienka
case "F"
pfx_F_d(1,def_pfx_sfx)=co
pfx_F_d(2,def_pfx_sfx)=za
pfx_F_d(3,def_pfx_sfx)=podmienka
case "Z"
sfx_Z_d(1,def_pfx_sfx)=co
sfx_Z_d(2,def_pfx_sfx)=za
sfx_Z_d(3,def_pfx_sfx)=podmienka
case "z"
sfx_mz_d(1,def_pfx_sfx)=co
sfx_mz_d(2,def_pfx_sfx)=za
sfx_mz_d(3,def_pfx_sfx)=podmienka
case "U"
sfx_U_d(1,def_pfx_sfx)=co
sfx_U_d(2,def_pfx_sfx)=za
sfx_U_d(3,def_pfx_sfx)=podmienka
case "D"
sfx_D_d(1,def_pfx_sfx)=co
sfx_D_d(2,def_pfx_sfx)=za
sfx_D_d(3,def_pfx_sfx)=podmienka
case "K"
sfx_K_d(1,def_pfx_sfx)=co
sfx_K_d(2,def_pfx_sfx)=za
sfx_K_d(3,def_pfx_sfx)=podmienka
case "M"
sfx_M_d(1,def_pfx_sfx)=co
sfx_M_d(2,def_pfx_sfx)=za
sfx_M_d(3,def_pfx_sfx)=podmienka
case "S"
sfx_S_d(1,def_pfx_sfx)=co
sfx_S_d(2,def_pfx_sfx)=za
sfx_S_d(3,def_pfx_sfx)=podmienka
case "V"
sfx_V_d(1,def_pfx_sfx)=co
sfx_V_d(2,def_pfx_sfx)=za
sfx_V_d(3,def_pfx_sfx)=podmienka
case "A"
sfx_A_d(1,def_pfx_sfx)=co
sfx_A_d(2,def_pfx_sfx)=za
sfx_A_d(3,def_pfx_sfx)=podmienka
case "C"
sfx_C_d(1,def_pfx_sfx)=co
sfx_C_d(2,def_pfx_sfx)=za
sfx_C_d(3,def_pfx_sfx)=podmienka
case "H"
sfx_H_d(1,def_pfx_sfx)=co
sfx_H_d(2,def_pfx_sfx)=za
sfx_H_d(3,def_pfx_sfx)=podmienka
case "B"
sfx_B_d(1,def_pfx_sfx)=co
sfx_B_d(2,def_pfx_sfx)=za
sfx_B_d(3,def_pfx_sfx)=podmienka
case "b"
sfx_mb_d(1,def_pfx_sfx)=co
sfx_mb_d(2,def_pfx_sfx)=za
sfx_mb_d(3,def_pfx_sfx)=podmienka
case "o"
sfx_mo_d(1,def_pfx_sfx)=co
sfx_mo_d(2,def_pfx_sfx)=za
sfx_mo_d(3,def_pfx_sfx)=podmienka
case "O"
sfx_O_d(1,def_pfx_sfx)=co
sfx_O_d(2,def_pfx_sfx)=za
sfx_O_d(3,def_pfx_sfx)=podmienka
case "J"
sfx_J_d(1,def_pfx_sfx)=co
sfx_J_d(2,def_pfx_sfx)=za
sfx_J_d(3,def_pfx_sfx)=podmienka
case "L"
sfx_L_d(1,def_pfx_sfx)=co
sfx_L_d(2,def_pfx_sfx)=za
sfx_L_d(3,def_pfx_sfx)=podmienka
case "Q"
sfx_Q_d(1,def_pfx_sfx)=co
sfx_Q_d(2,def_pfx_sfx)=za
sfx_Q_d(3,def_pfx_sfx)=podmienka
case "Y"
sfx_Y_d(1,def_pfx_sfx)=co
sfx_Y_d(2,def_pfx_sfx)=za
sfx_Y_d(3,def_pfx_sfx)=podmienka
case "I"
sfx_I_d(1,def_pfx_sfx)=co
sfx_I_d(2,def_pfx_sfx)=za
sfx_I_d(3,def_pfx_sfx)=podmienka
case "P"
sfx_P_d(1,def_pfx_sfx)=co
sfx_P_d(2,def_pfx_sfx)=za
sfx_P_d(3,def_pfx_sfx)=podmienka
case "X"
sfx_X_d(1,def_pfx_sfx)=co
sfx_X_d(2,def_pfx_sfx)=za
sfx_X_d(3,def_pfx_sfx)=podmienka
case "E"
sfx_E_d(1,def_pfx_sfx)=co
sfx_E_d(2,def_pfx_sfx)=za
sfx_E_d(3,def_pfx_sfx)=podmienka
case "W"
sfx_W_d(1,def_pfx_sfx)=co
sfx_W_d(2,def_pfx_sfx)=za
sfx_W_d(3,def_pfx_sfx)=podmienka
case "T"
sfx_T_d(1,def_pfx_sfx)=co
sfx_T_d(2,def_pfx_sfx)=za
sfx_T_d(3,def_pfx_sfx)=podmienka
case "R"
sfx_R_d(1,def_pfx_sfx)=co
sfx_R_d(2,def_pfx_sfx)=za
sfx_R_d(3,def_pfx_sfx)=podmienka
case "č"
sfx_c_c_d(1,def_pfx_sfx)=co
sfx_c_c_d(2,def_pfx_sfx)=za
sfx_c_c_d(3,def_pfx_sfx)=podmienka
end select
endif
spracuj_riadok=pomprvy
end function
Copyright © 2002 - 2013 inet.sk, s. r. o. | Všetky práva vyhradené | Neprešlo jazykovou úpravou | ISSN 1336-1899
Využívame kvalitný webhosting za rozumnú cenu od Inet.sk