home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: InfoMgt
/
InfoMgt.zip
/
pmmeal10.zip
/
cnvkochb.cmd
next >
Wrap
OS/2 REXX Batch file
|
1994-07-15
|
9KB
|
302 lines
/* */
anzarg=arg();
if anzarg=0 | arg(1)="?" | arg(1)="/?" then do
say "Konvertierungsprogramm für die PC-KOCHBUCH-Reihe von BOEDER"
say "Das Programm Schreibt die Daten in das Meal-Master-Format"
say ""
say "In Abwandlung zum Orginalformat werden die Bild-Informationen"
say "mitabgespeichert."
say ""
say "PMMEAL wertet diese Bild-Informationen aus. (ab Version 0.9)"
say ""
say "SYNTAX : CNVKOCHB.CMD <rezdatei> <mmrdatei> [<einheitenfehler>]"
say " <rezdatei> Die KOCHBUCH-Rezeptdatei"
say " <mmrdatei> die Ausgabedatei"
say " <einheitenfehler> 1 = Fehlerhafte Einheiten werden durch"
say " Leerstellen ersetzt. "
signal ende
end
parse value arg(1) with filename" "output" "eherror
if output="" then output="MMREZEPT.ASC"
eherror=\(eherror<>"")
kochbuch.0=33
kochbuch.1=""; einheit.1="xx"
kochbuch.2="EL"; einheit.2="tb"
kochbuch.3="TL"; einheit.3="ts"
kochbuch.4="TASSE"; einheit.4="c "
kochbuch.5="TASSEN"; einheit.5="c "
kochbuch.6="G"; einheit.6="g "
kochbuch.7="KG"; einheit.7="kg"
kochbuch.8="PRISE"; einheit.8="pn"
kochbuch.9="PRISEN"; einheit.9="pn"
kochbuch.10="L"; einheit.10="l "
kochbuch.11="ML"; einheit.11="ml"
kochbuch.12="DOSE"; einheit.12="cn"
kochbuch.13="STÜCK"; einheit.13="x "
kochbuch.14="STÜCKE"; einheit.14="x "
kochbuch.15="STÜCKCHEN"; einheit.15="x "
kochbuch.16="STANGE"; einheit.16=""
kochbuch.17="STANGEN"; einheit.17=""
kochbuch.18="SCHEIBE"; einheit.18="sl"
kochbuch.19="SCHEIBEN"; einheit.19="sl"
kochbuch.20="SCHALE"; einheit.20=""
kochbuch.21="TROPFEN"; einheit.21="dr"
kochbuch.22="BD"; einheit.22="bn"
kochbuch.23="BUND"; einheit.23="bn"
kochbuch.24="BLOCK"; einheit.24=""
kochbuch.25="MSP"; einheit.25="pn"
kochbuch.26="BLÄTTER"; einheit.26=""
kochbuch.27="STENGEL"; einheit.27=""
kochbuch.28="SPRITZER"; einheit.28="ds"
kochbuch.29="PK"; einheit.29="pk"
kochbuch.30="PÄCKCHEN"; einheit.30="pk"
kochbuch.31="GLAS"; einheit.31=""
kochbuch.32="GLÄSER"; einheit.32=""
kochbuch.33="-"; einheit.33=""
meal.yield="Personen"
meal.titel=""
meal.category.0=0
meal.ingred.0=0
meal.direct.0=0
meal.pict=""
c=0
i=0
d=0
zt=""
vg=""
eh=";"
call stream filename,"C","Open read"
do while lines(filename)
xx=linein(filename)
art=left(xx,3)
text=translate(strip(substr(xx,5)),"ÄÖÜäöüß°","─╓▄Σ÷ⁿ▀░")
select
when art="-- " then
if meal.titel<>"" then do
p=0
vg=strip(vg,"L")" "
d=d+1
meal.direct.d=""
x=pos("+",vg)
do while x<>0
vg=left(vg,x-1)substr(vg,x+1)
x=pos("+",vg,x)
end
do until vg=""
d=d+1
t=lastpos(" ",vg,75)
if p>0 then do
meal.direct.d=""
p=0;
end; else do
p=pos("\",left(vg,t))
if p>0 then t=p
meal.direct.d=left(vg,t-1)
vg=substr(vg,t+1)
end
end
meal.category.0=c
meal.ingred.0=i
meal.direct.0=d
call saveindex
meal.titel=""
meal.pict=""
meal.category.0=0
meal.ingred.0=0
meal.direct.0=0
c=0
i=0
d=0
zt=""
end
when art=";NA" then
meal.titel=text
when art=";TY" | art=";BK" then do
c=c+1
text=word(text,1)
if length(text)>11 then do
x=pos("gericht",text)
if x>2 then text=left(text,x-1)
end
meal.category.c=strip(left(text,11))
end
when art=";PS" then
meal.anzyield=text
when art=";SV" then do
d=d+1; meal.direct.d=""
d=d+1; meal.direct.d="Serviervorschlag :"
d=d+1; meal.direct.d=text
end
when art=";BG" then do
d=d+1; meal.direct.d=""
d=d+1; meal.direct.d="Benötigte Gerätschaften :"
d=d+1; meal.direct.d=text
end
when art=";ZT" then do
i=i+1; meal.ingred.i=text
meal.anz.i=" "
meal.einheit.i=" "
if zt="" then
zt=text
else
zt=zt", "text
end
when art=";ME" then do
parse value text with meal.anz.i" "e
meal.anz.i=right(meal.anz.i,7)
if meal.anz.i=" -" then
meal.anz.i=left("",7)
ok=testzahl(meal.anz.i)
ok2=0
if ok then do
if anzpkt=0 & anzsch=0 & e<>"" then do
ok2=testzahl(word(e,1))
if ok2 then do
meal.anz.i=right(strip(meal.anz.i)" "word(e,1),7)
e=strip(substr(e,pos(" ",e)+1))
end
end
end; else do
e=text
meal.anz.i=left("",7)
end
et=translate(e)
et=translate(et,"ÄÖÜ","äöü")
found=0; n=0;
do until found | n=kochbuch.0
n=n+1;
found=et=kochbuch.n
end
me=meal.ingred.i
if found then do
if einheit.n<>"" then
if einheit.n="xx" then
meal.einheit.i=" "
else
meal.einheit.i=einheit.n
else do
meal.einheit.i=" "
me=e" "me
end
end; else do
if eherror then
meal.einheit.i="__"
else
meal.einheit.i=" "
me=e" "me
if pos(";"e";",eh)=0 then
eh=eh||e";"
end
me=me" "
do until me="- "
t=lastpos(" ",me,28)
meal.ingred.i=left(me,t-1)
i=i+1
meal.anz.i=left("",7)
meal.einheit.i=" "
me="- "substr(me,t+1)
end
i=i-1
zt=zt"("text")"
end
when art=";VG" | art=";VO" then do
x=lastpos(", ",zt)
if x>0 then zt=left(zt,x-1)" und "substr(zt,x+2)
vg=vg" "zt" "text
zt=""
end
when art=";BI" then do
meal.pict=text
end
when art=";Z1" then do
d=d+1; meal.direct.d="Kochzeit : "text" min"
end
when art=";Z2" then do
d=d+1; meal.direct.d="Gesamt : "text" min"
end
when art=";Z3" then do
d=d+1; meal.direct.d="Ruhezeit : "text" min"
end
otherwise
say xx
end
end
call lineout "Kochbuch.err",eh
signal ende
makerezept: procedure expose meal.
crlf="0d0a"x
t=0
if strip(meal.titel)="" then meal.titel="Titel unbekannt"
meal=right("Title: ",12)meal.titel||crlf
meal=meal||right("Categories: ",12)meal.category.1
do n=2 to meal.category.0
if meal.category.n<>"" then meal=meal", "meal.category.n
end
meal=meal||crlf
meal=meal||right("Yield: ",12)strip(meal.Anzyield)" "meal.Yield||crlf
meal=meal||crlf
do n=1 to meal.ingred.0
eh=meal.einheit.n
az=meal.anz.n
if az="-------" then do
meal=meal||center(strip(meal.ingred.n),75,"-")||crlf
end; else do
meal=meal||az" "eh" "meal.ingred.n||crlf
end
end
meal=meal||crlf
if meal.pict<>"" then
meal=meal"-----PICTURE: "left(meal.pict,60,"-")||crlf||crlf
do n=1 to meal.direct.0
xx=strip(meal.direct.n,"T")
if xx<>"" & left(xx,1)=" " then
xx=":"substr(xx,2)
meal=meal||" "xx||crlf
end
return meal
saveindex:
call lineout output,"----- PMMEAL-Rezept. Ausgabe im Meal-Masterformat -----"
call lineout output,""
call lineout output,makerezept()
call lineout output,"-----"
call lineout output,""
return
testzahl: procedure expose error meal. anzpkt anzsch
test=arg(1)
error=0
if test<>"" & substr(test,8,1)=" " & substr(test,11,1)=" " & substr(test,40,2)=" "& substr(test,49,1)=" " & substr(test,52,1)=" " then do
test=left(test,7)
if test<>" " then do
anzpkt=0
anzsch=0
do m=1 to 7
x=substr(test,m,1)
if (x<0 | x>9) & x<>"." & x<>" " & x<>"/" then do
error=6
m=8
end; else do
if x="." then anzpkt=anzpkt+1
if x="/" then anzsch=anzsch+1
end
end
if error=0 then do
if anzpkt>1 then error=7
if anzsch>1 then error=8
end
end
end; else
error=-1
found=error=0
return found
ende: