home *** CD-ROM | disk | FTP | other *** search
/ Hall of Fame / HallofFameCDROM.cdr / misc3 / recipe.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1986-11-08  |  10.8 KB  |  384 lines

  1. 10  REM RECEIPE PROGRAM REVISED 11/83,1/84, FOR IBM 3/86
  2. 20  DIM C$(50),RECN%(26,50)
  3. 30  DEFINT Z,J,I,X,L,P,R
  4. 40  CLS:PRINT TAB(30)"Receipe Program":PRINT TAB(30)"By Jim Laurent"
  5. 50  PRINT:PRINT,,"Reading Index file":PRINT
  6. 60  ON ERROR GOTO 70:GOTO 90
  7. 70  OPEN "O",3,"RCINDEX.FIL":CLOSE
  8. 80  FOR X=65 TO 90:RECN%(X-64,1)=X:NEXT X:RESUME
  9. 90  OPEN "I",3,"RCINDEX.FIL"
  10. 100  ON ERROR GOTO 0
  11. 110  IF EOF(3) THEN CLOSE:GOTO 190
  12. 120  INPUT #3,HIREC%
  13. 130  FOR L=1 TO 26:J=1
  14. 140  WHILE J
  15. 150  INPUT #3,RECN%(L,J)
  16. 160  IF RECN%(L,J)=0 GOTO 180
  17. 170  J=J+1:WEND
  18. 180  NEXT L:CLOSE
  19. 190  OPEN "R",1,"RECIPE.FIL",55
  20. 200  FIELD 1,5 AS TAG$,30 AS F$,20 AS SPA$
  21. 210  PRINT TAB(20)"Select an option:":PRINT
  22. 220  PRINT TAB(10)"Command","Function":PRINT
  23. 230  PRINT TAB(13)"I)","Input a new Receipe"
  24. 240  PRINT TAB(13)"C)","A Catalog of receipes"
  25. 250  PRINT TAB(13)"F)","Find a previously stored receipe"
  26. 260  PRINT TAB(13)"D)","Delete a previously stored receipe"
  27. 270  PRINT TAB(13)"E)","Edit a reciepe"
  28. 280  PRINTTAB(13)"S)","Strighten up files (cleanup deleted records)"
  29. 290  PRINT TAB(13)"N)","Nutritional Analyzer"
  30. 300  PRINT TAB(13)"Q)","Quit - Go to DOS"
  31. 310  A$=INKEY$:IF A$="" THEN 310
  32. 320  ON INSTR("ICFDESNQ",A$) GOTO 350,830,1010,1890,1460,2240,2880,2220
  33. 330  IF ASC(A$)>90 THEN A$=CHR$(ASC(A$)-32):GOTO 320
  34. 340  PRINTCHR$(7);:GOTO 310
  35. 350  GOSUB 2610
  36. 360  PRINT:PRINT TAB(10)"Enter receipe name (May be up to 30 letters long)"
  37. 370  PRINT:PRINT TAB(10)"|" SPC(30) "|":PRINT TAB(11):INPUT "",B$
  38. 380  IF LEN(B$)>30 THEN PRINT CHR$(7);:GOTO 360
  39. 390  PRINT:PRINT TAB(10)"Is this correct Y/N? "
  40. 400  W$=INKEY$:IF W$="" THEN 400
  41. 410  IF W$<>"Y" AND W$<>"y" THEN 360
  42. 420  DUMM$=B$:GOSUB 2660:B$=DUMM$
  43. 430  PRINT:PRINT " Enter successive lines for the body. If you make an error on"
  44. 440  PRINT " a line and would like to correct it enter '#' and the number"
  45. 450  PRINT " of the line (eg.#5) as any other line."
  46. 460  PRINT:PRINT TAB(10)"Type 'END' when finished"
  47. 470   X=1 
  48. 480  PRINT TAB(6)"|" SPC(50) "|"
  49. 490  PRINT "#";USING " ##  ";X;:LINE INPUT C$(X)
  50. 500  IF LEN(C$(X))>50 THEN PRINT CHR$(7):PRINT"  Entery too long ":GOTO 480
  51. 510  IF LEFT$(C$(X),1)="#"THEN 550
  52. 520  IF C$(X)="END" OR C$(X)="end"THEN 600
  53. 530  X=X+1:GOTO 480
  54. 540  ' +++++++++++ ENTRY EDIT ROUTINE ++++++++++
  55. 550  Y=VAL(RIGHT$(C$(X),LEN(C$(X))-1))
  56. 560  PRINT "   Re-enter entire line"
  57. 570  PRINT TAB(5+(INT(LOG(Y)/LOG(10))))"|" SPC(50) "|"
  58. 580  PRINT "#";Y;" ";:LINE INPUT C$(Y)
  59. 590  X=X-1:GOTO 530
  60. 600  D$=LEFT$(B$,1):I=1:POSS%=0:W%=1
  61. 610  FOR J=1 TO 26
  62. 620  IF RECN%(J,1)=ASC(D$) THEN POSS%=J:J=26:GOTO 630
  63. 630  NEXT
  64. 640  W%=W%+1:IF RECN%(POSS%,W%)<>0 GOTO 640
  65. 650  RECN%(POSS%,W%)=HIREC%+1
  66. 660  PRINT"ENTERING ";B$:LSET TAG$=RIGHT$(STR$(HIREC%+1),5)
  67. 670  LSET F$=B$:LSET SPA$=""
  68. 680  IF AN$="Y" THEN GOSUB 2570
  69. 690  LSET TAG1$=RIGHT$(STR$(HIREC%+1),5)
  70. 700  LSET F1$=B$:LSET SPA1$=""
  71. 710  PUT 1,HIREC%+1:IF AN$="Y" THEN PUT 2,HIREC%+1
  72. 720  FIELD 1,5 AS TAG$,50 AS G$
  73. 730  IF AN$="Y"THEN FIELD 2,5 AS TAG1$,50 AS G1$
  74. 740  IF I>X-1 THEN 800
  75. 750  LSET TAG$=RIGHT$(STR$(HIREC%+1),5):LSET TAG1$=RIGHT$(STR$(HIREC%+1),5)
  76. 760  LSET G$=C$(I):LSET G1$=C$(I)
  77. 770  PUT 1,HIREC%+1+I:IF AN$="Y" THEN PUT 2,HIREC%+1+I
  78. 780  I=I+1
  79. 790  GOTO 740
  80. 800  HIREC%=HIREC%+I
  81. 810  GOSUB 2700
  82. 820  CLOSE:GOTO 190
  83. 830  CLS:PRINT TAB(10)"Select : 1) A catalog of all items on file"
  84. 840  PRINT TAB(19)"2) Go back to menu"
  85. 850  I$=INKEY$:IF I$="" THEN 850
  86. 860  ON VAL(I$) GOTO 880,210
  87. 870  GOTO 850
  88. 880  PRINT"Sector","Name",,"Sector","Name":PRINT:P=0
  89. 890  FOR L=1 TO 26
  90. 900  FOR J=2 TO 50
  91. 910  IF RECN%(L,J)=0 THEN J=50:GOTO 970
  92. 920  GET 1,RECN%(L,J)
  93. 930  IF VAL(TAG$)<>RECN%(L,J) THEN PRINT"Something Wrong":STOP
  94. 940  P=P+1:PRINT USING "   #####  ";RECN%(L,J);:PRINT F$;
  95. 950  IF P MOD 42 <>0 GOTO 970
  96. 960  IF INKEY$="" GOTO 960
  97. 970  NEXT J
  98. 980  NEXT L
  99. 990  PRINT:PRINT:PRINT,"Touch <cr> to return to menu";:INPUT W$
  100. 1000  IF A$="S" THEN CLOSE:GOTO 90 ELSE GOTO 210
  101. 1010   CLS:PRINT TAB(30)"Find Routine":PRINT
  102. 1020  PRINT TAB(25)"<cr> To return to menu"
  103. 1030  PRINT:INPUT "Enter receipe first letter : ",B$:PRINT
  104. 1040  IF B$="" THEN 210
  105. 1050  IF ASC(B$)>90 THEN B$=CHR$(ASC(B$)-32)
  106. 1060  B$=LEFT$(B$,1):POSS%=0:IFLAG=0
  107. 1070  FOR X=1 TO 26
  108. 1080  IF RECN%(X,1)=ASC(B$) THEN POSS%=X:X=26
  109. 1090  NEXT X:W%=1
  110. 1100  IF POSS%=0 THEN PRINT:PRINT,"Something wrong":CLOSE:STOP
  111. 1110  PRINT"   Sector       Name","              Sector         Name":PRINT
  112. 1120  W%=W%+1:IF RECN%(POSS%,W%)=0 GOTO 1160
  113. 1130  GET 1,RECN%(POSS%,W%):IFLAG=1
  114. 1140  PRINT USING "   #####  ";RECN%(POSS%,W%);:PRINT F$;
  115. 1150  GOTO 1120
  116. 1160  IF IFLAG=0 THEN PRINT:PRINT,"Nothing on file starts with ";B$:GOTO 1030
  117. 1170  PRINT:PRINT:INPUT " Enter the sector # : ",Z
  118. 1180  IF Z=0 GOTO 210
  119. 1190  GET 1,Z
  120. 1200  IF VAL(TAG$)<>Z THEN PRINT:PRINT" Sector number incorrect":GOTO 1170
  121. 1210  CLS
  122. 1220  PRINT:PRINT "Receipe:",LEFT$(F$,INSTR(F$,"  ")),"Sector:";Z
  123. 1230  S=Z
  124. 1240  FIELD 1,5 AS TAG$,50 AS G$
  125. 1250  Z=Z+1:IF Z>HIREC% THEN 1300
  126. 1260  GET 1,Z
  127. 1270  IF VAL(TAG$)<>S THEN 1300
  128. 1280  PRINT G$
  129. 1290  GOTO 1250
  130. 1300  PRINT:PRINT,"Touch P(rint), anyother key for No"
  131. 1310  Q$=INKEY$:IF Q$="" THEN 1310
  132. 1320  IF Q$<>"P" AND Q$<>"p" GOTO 200
  133. 1330  PRINT TAB(15)"Ready printer touch <cr> when ready";:INPUT Q
  134. 1340  Z=S
  135. 1350  GET 1,Z
  136. 1360  PRINT,"Printing "F$
  137. 1370  LPRINT"Receipe for :   ";F$
  138. 1380  LPRINT
  139. 1390  FIELD 1,5 AS TAG$,50 AS G$
  140. 1400  Z=Z+1:IF Z>HIREC% GOTO 1450
  141. 1410  GET 1,Z
  142. 1420  IF VAL(TAG$)<>S THEN 1450
  143. 1430  LPRINT G$
  144. 1440  GOTO 1400
  145. 1450  GOTO 200
  146. 1460  CLS:PRINT TAB(25)"Edit Routine":PRINT:ZFLAG=0
  147. 1470  PRINT TAB(20)"<cr> To return to nemu"
  148. 1480  GOSUB 2610
  149. 1490  PRINT:INPUT " Enter letter of file to be edited";B$
  150. 1500  IF B$="" THEN 210
  151. 1510  IF ASC(B$)>90 THEN B$=CHR$(ASC(B$)-32)
  152. 1520  B$=LEFT$(B$,1):POSS%=0:IFLAG=0
  153. 1530  FOR X=1 TO 26
  154. 1540  IF RECN%(X,1)=ASC(B$) THEN POSS%=X:X=26
  155. 1550  NEXT X:W%=1
  156. 1560  IF POSS%=0 THEN PRINT:PRINT,"Something Wrong ":CLOSE:STOP
  157. 1570  IF AN$="Y" THEN GOSUB 2570
  158. 1580  PRINT"Sector          Name","           Sector          Name"
  159. 1590  W%=W%+1:IF RECN%(POSS%,W%)=0 GOTO 1630
  160. 1600  GET 1,RECN%(POSS%,W%):IFLAG=1
  161. 1610  PRINT USING "   #####  ";RECN%(POSS%,W%);:PRINTF$;
  162. 1620  GOTO 1590
  163. 1630  IF IFLAG=0 THEN PRINT:PRINT,"Nothing on file starts with ";B$:GOTO 1490
  164. 1640  PRINT:INPUT "Enter Sector # ",Z:S=Z
  165. 1650  IF Z=0 GOTO 210
  166. 1660  IF Z>HIREC% THEN PRINT:PRINT,"Sector # too High":GOTO 1640
  167. 1670  GET 1,Z
  168. 1680  IF VAL(TAG$)<>Z THEN PRINT:PRINT" Not proper Sector number":GOTO 1640
  169. 1690  PRINT:PRINT TAB(10)F$:PRINTTAB(9)"|"SPC(30)"|"
  170. 1700  PRINTTAB(10);:INPUT "",B$
  171. 1710  IF LEN(B$)>30 THEN 1690
  172. 1720  IF B$="" GOTO 1750
  173. 1730  DUMM$=B$:GOSUB 2660:B$=DUMM$:LSET F$=B$:IF AN$="Y" THEN LSET F1$=B$
  174. 1740  PUT 1,Z:ZFLAG=1:IF AN$="Y" THEN PUT 2,Z
  175. 1750  FIELD 1,5 AS TAG$,50 AS G$
  176. 1760  IF AN$="Y" THEN FIELD 2,5 AS TAG1$,50 AS G1$
  177. 1770  Z=Z+1:IF Z>HIREC% GOTO 1870
  178. 1780  GET 1,Z:IF VAL(TAG$)<>S GOTO 1870
  179. 1790  PRINT:PRINT TAB(5)G$:INPUT"Change this ? (1=Yes,<cr>=No,3=Exit)",Y
  180. 1800  IF Y=3 AND ZFLAG%=0 GOTO 210
  181. 1810  IF Y=3 AND ZFLAG=1 THEN CLOSE:GOTO 190
  182. 1820  IF Y=0 GOTO 1770
  183. 1830  PRINTTAB(4)"|"SPC(50)"|":PRINTTAB(5);:LINE INPUT "",C$
  184. 1840  LSET G$=C$:IF AN$="Y" THEN LSET G1$=C$
  185. 1850  ZFLAG%=1:PUT 1,Z:IF AN$="Y" THEN PUT 2,Z
  186. 1860  GOTO 1770
  187. 1870  PRINT:PRINT TAB(15)"End Edit  ":PRINT
  188. 1880  IF ZFLAG=1 THEN CLOSE:GOTO 190 ELSE GOTO 200
  189. 1890  CLS:PRINT TAB(30)"Delete Routine":PRINT
  190. 1900  PRINT TAB(25)"Enter <cr> to return to menu":PRINT
  191. 1910  GOSUB 2610
  192. 1920  PRINT:INPUT "Enter the First Letter or the Name";B$:PRINT
  193. 1930  IF B$="" THEN 210
  194. 1940  IF ASC(B$)>90 THEN B$=CHR$(ASC(B$)-32)
  195. 1950  D$=LEFT$(B$,1):POSS%=0:W%=1:IFLAG=0
  196. 1960  FOR J=1 TO 26
  197. 1970  IF RECN%(J,1)=ASC(D$) THEN POSS%=J:J=26:GOTO 1980
  198. 1980  NEXT J
  199. 1990  IF POSS%=0 THEN PRINT,"Reenter Letter":GOTO 1920
  200. 2000  PRINT"Sector          Name","           Sector           Name"
  201. 2010  W%=W%+1:IF RECN%(POSS%,W%)=0 GOTO 2050
  202. 2020  GET 1,RECN%(POSS%,W%):IFLAG=1
  203. 2030  PRINT USING "   #####  ";RECN%(POSS%,W%);:PRINT F$;
  204. 2040  GOTO 2010
  205. 2050  IF IFLAG=0 THEN PRINT:PRINT,"Nothing on file starts with ";B$:GOTO 1920
  206. 2060  PRINT:INPUT " Enter the sector # : ",Z
  207. 2070  IF Z=0 GOTO 210
  208. 2080  GET 1,Z
  209. 2090  IF VAL(TAG$)<>Z THEN PRINT" Sector Number incorrect":GOTO 2060
  210. 2100  CLS:S=Z
  211. 2110  PRINT "Name: ";F$
  212. 2120  PRINT:INPUT "Delete this record Y(es) <cr>";Y$
  213. 2130  IF Y$<>"Y" AND Y$<>"y" GOTO 210
  214. 2140  PRINT"Deleting ";F$
  215. 2150  FOR X=2 TO 50
  216. 2160  IF RECN%(POSS%,X)=Z THEN W%=X:X=50
  217. 2170  NEXT X
  218. 2180  FOR X=W% TO 49
  219. 2190  RECN%(POSS%,X)=RECN%(POSS%,X+1)
  220. 2200  NEXT X:RECN%(POSS%,50)=0
  221. 2210  GOSUB 2700:GOTO 210
  222. 2220  CLS:RESET:SYSTEM
  223. 2230  ' recipe cleanup routine
  224. 2240  CLS:PRINT:PRINT TAB(20)"File cleanup Routine"
  225. 2250  PRINT:PRINT,:INPUT "<cr> to continue with routine";Q
  226. 2260  DIM RC%(26,50)
  227. 2270  R=1:FOR X=65 TO 90
  228. 2280  RC%(X-64,1)=X
  229. 2290  NEXT X
  230. 2300  OPEN "R",2,"CLNRC.FIL",55
  231. 2310  FIELD 2,5 AS TAG1$,30 AS F1$,20 AS SPA1$
  232. 2320  FOR X=1 TO 26
  233. 2330  W%=1
  234. 2340   FOR P=2 TO 50
  235. 2350  IF RECN%(X,P)=0 THEN 2430
  236. 2360  Z=RECN%(X,P):S=Z:W%=W%+1:RC%(X,W%)=R:RS=R
  237. 2370  GET 1,Z:IF VAL(TAG$)<>S GOTO 2420
  238. 2380  LSET TAG1$=RIGHT$(STR$(RS),5):LSET F1$=F$:LSET SPA1$=SPA$
  239. 2390  PUT 2,R:R=R+1
  240. 2400  Z=Z+1:IF Z>HIREC% GOTO 2420
  241. 2410  GOTO 2370
  242. 2420  NEXT P
  243. 2430  NEXT X
  244. 2440  HIR%=R-1
  245. 2450  OPEN "O",3,"CLNRCDX.FIL"
  246. 2460  WRITE #3,HIR%
  247. 2470  FOR L=1 TO 26:P=1
  248. 2480   WHILE P
  249. 2490   WRITE #3,RC%(L,P)
  250. 2500   IF RC%(L,P)=0 GOTO 2520
  251. 2510   P=P+1:WEND
  252. 2520  NEXT L
  253. 2530  CLOSE :NAME"RECIPE.FIL"AS"OLDRC.FIL":NAME"CLNRC.FIL"AS"RECIPE.FIL"
  254. 2540  NAME"RCINDEX.FIL"AS"OLDRCDX.FIL":NAME"CLNRCDX.FIL"AS"RCINDEX.FIL"
  255. 2550  ERASE RC%:GOTO 90
  256. 2560  ' *** SUBROUTINES ****
  257. 2570  OPEN "R",2,"B:RECIPE.FIL",55
  258. 2580  FIELD 2,5 AS TAG1$,30 AS F1$,20 AS SPA1$
  259. 2590  RETURN
  260. 2600  ' update backup disk?
  261. 2610  PRINT:PRINT"Will you be wanting to update backup file ? Y(es) anyother key for No"
  262. 2620  AN$=INKEY$:IF AN$="" THEN 2620
  263. 2630  IF AN$="Y" OR AN$="y" THEN AN$="Y"
  264. 2640  RETURN
  265. 2650  ' convert to upper case
  266. 2660  FOR I=1 TO LEN(DUMM$)
  267. 2670  IF ASC(MID$(DUMM$,I,1))>90 THEN                                                 MID$(DUMM$,I,1)=CHR$(ASC(MID$(DUMM$,I,1))-32)
  268. 2680  NEXT:RETURN
  269. 2690  ' Get file info from disk and decode
  270. 2700  OPEN "O",3,"RCINDEX.FIL"
  271. 2710  WRITE #3,HIREC%
  272. 2720  FOR L=1 TO 26:J=1
  273. 2730   WHILE J
  274. 2740   WRITE #3,RECN%(L,J)
  275. 2750  IF RECN%(L,J)=0 GOTO 2770
  276. 2760   J=J+1:WEND
  277. 2770  NEXT L
  278. 2780  CLOSE 3:IF AN$<>"Y" THEN RETURN
  279. 2790  OPEN "O",3,"B:RCINDEX.FIL"
  280. 2800  WRITE #3,HIREC%
  281. 2810  FOR L=1 TO 26:J=1
  282. 2820   WHILE J
  283. 2830   WRITE #3,RECN%(L,J)
  284. 2840  IF RECN%(L,J)=0 GOTO 2860
  285. 2850   J=J+1:WEND
  286. 2860  NEXT L
  287. 2870  CLOSE 3:RETURN
  288. 2880  CLS
  289. 2890  PRINT TAB(25)"Nutritional Advisor"
  290. 2900  PRINT
  291. 2910  PRINT TAB(25)"Type in the Recipe"
  292. 2920  PRINT TAB(22)"Ingredients, One Per Line"
  293. 2930  CA=0:PR=0:CB=0:FA=0
  294. 2940  PRINT:PRINT "Ingredient (Type <cr> When done)";
  295. 2950  IG$="":INPUT IG$
  296. 2960  IF IG$="" THEN 3300
  297. 2970  RESTORE 3430
  298. 2980  READ N$,U$,N1,N2,N3,N4
  299. 2990  IF N$="END" THEN 3070
  300. 3000  IF N$<>IG$ THEN 2980
  301. 3010  PRINT:PRINT "How Many ";U$;"(s) are used";:INPUT U
  302. 3020  CA=CA+N1*U
  303. 3030  PR=PR+N2*U
  304. 3040  CB=CB+N3*U
  305. 3050  FA=FA+N4*U
  306. 3060  GOTO 2940
  307. 3070  PRINT:PRINT "NO DATA AVAILABLE ON: ";IG$
  308. 3080  PRINT:PRINT TAB(15)"TYPE 1 TO SEE FOOD LIST "
  309. 3090  PRINT TAB(15)"     2 TO ENTER STAT FOR ";IG$
  310. 3100  PRINT TAB(15)"     3 TO ENTER A NEW INGREDIENT."
  311. 3110  S$=INKEY$:IF S$="" THEN 3110
  312. 3120  IF VAL(S$)<1 OR VAL(S$)>3 THEN 3080
  313. 3130  ON VAL(S$) GOTO 3140,3190,2940
  314. 3140  RESTORE 3430
  315. 3150  READ N$,U$,N1,N2,N3,N4
  316. 3160  IF N$="END" THEN 2940
  317. 3170  PRINT N$,
  318. 3180  GOTO 3150
  319. 3190  PRINT "Enter Measurement Unit For ";IG$;
  320. 3200  INPUT U$
  321. 3210  PRINT "Calories Per ";U$
  322. 3220  INPUT N1
  323. 3230  PRINT "Protein Grams (G) Per ";U$
  324. 3240  INPUT N2
  325. 3250  PRINT "Carbohydrate (G) Per ";U$
  326. 3260  INPUT N3
  327. 3270  PRINT "Fat (G) Per ";U$
  328. 3280  INPUT N4
  329. 3290  GOTO 3010
  330. 3300  PRINT:PRINT "How many servings does the Recipe make ";:INPUT NS
  331. 3310  IF NS<1 THEN 3300
  332. 3320  PRINT:PRINT "Each Serving Contains:"
  333. 3330  PRINT TAB(23) USING "###.#";CA/NS;:PRINT" Calories"
  334. 3340  PRINT TAB(23) USING "###.#";PR/NS;:PRINT" Grams Protein"
  335. 3350  PRINT TAB(23) USING "###.#";CB/NS;:PRINT" Grams Carbohydrate"
  336. 3360  PRINT TAB(23) USING "###.#";FA/NS;:PRINT" Grams Fat"
  337. 3370  PRINT:PRINT TAB(15)"TYPE 1 TO ANALYZE ANOTHER RECIPE"
  338. 3380  PRINT TAB(20)"2 TO GOTO MENU"
  339. 3390  S$=INKEY$:IF S$="" THEN 3390
  340. 3400  IF VAL(S$)<1 OR VAL(S$)>2 THEN 3370
  341. 3410  ON VAL(S$) GOTO 2890,3420
  342. 3420  GOTO 220
  343. 3430  DATA MILK,CUP,165,8,12,10
  344. 3440  DATA WHIPPING CREAM,CUP,860,4,6,94
  345. 3450  DATA COTTAGE CHEESE,CUP,240,30,6,11
  346. 3460  DATA CHEDDAR CHEESE,1-INCH CUBE,70,4,0,6
  347. 3470  DATA EGGS,1 EGG,75,6,0,6
  348. 3480  DATA CREAM CHEESE,OZ.,105,2,1,11
  349. 3490  DATA BUTTER,I/4-LB.STICK,800,0,0,90
  350. 3500  DATA MARGARINE,1/4-LB.STICK,806,0,0,91
  351. 3510  DATA VEGETABLE OIL,TBS.,125,0,0,14
  352. 3520  DATA GROUND BEEF,LB.,1307,112,0,91
  353. 3530  DATA CHICKEN,LB.,1326,114,0,91
  354. 3540  DATA HAM,LB.,1547,85,0,117
  355. 3550  DATA TUNA,LB.,907,133,0,37
  356. 3560  DATA GREEN BEANS,CUP,25,1,6,0
  357. 3570  DATA BROCCULI,CUP,45,5,8,0
  358. 3580  DATA CABBAGE,CUP,40,2,9,0
  359. 3590  DATA CARROTS,CUP,45,1,10,0
  360. 3600  DATA CAULIFLOWER,CUP,30,3,6,0
  361. 3610  DATA CORN,CUP,170,5,41,0
  362. 3620  DATA COOL WHIP,OZ,98,0,7,7
  363. 3630  DATA ONIONS,CUP,80,2,18,0
  364. 3640  DATA POTATOES,1 MED.,100,2,22,0
  365. 3650  DATA TOMATOES,CUP(CANNED),50,2,9,0
  366. 3660  DATA SPINACH,CUP,26,3,3,0
  367. 3670  DATA APPLES,CUP,100,0,26,0
  368. 3680  DATA BANANAS,1 MED.,85,0,23,0
  369. 3690  DATA PEACHES,CUP(CANNED),200,0,52,0
  370. 3700  DATA PINEAPPLE,SLICE(CANNED),95,0,26,0
  371. 3710  DATA CORNMEAL,CUP,360,9,74,4
  372. 3720  DATA FLOUR,CUP,400,12,84,0
  373. 3730  DATA WHOLE WHEAT FLOUR,CUP,390,13,79,2
  374. 3740  DATA WHITE RICE,CUP,692,14,150,0
  375. 3750  DATA NOODLES,CUP,200,7,37,2
  376. 3760  DATA OATMEAL,CUP,150,5,26,3
  377. 3770  DATA SUGAR,CUP,770,0,199,0
  378. 3780  DATA POWDERED SUGAR,CUP,493,0,127,0
  379. 3790  DATA ALMONDS,1/2 CUP,425,13,13,38
  380. 3800  DATA INSTANT CHOLOLATE PUDDING,OZ,17,0,4.3,0
  381. 3810  DATA INSTANT VANILLA PUDDING,OZ,15,0,3.8,0
  382. 3820  DATA PECANS,1/2 CUP,343,5,7,35
  383. 3830  DATA END,"",0,0,0,0
  384.