home *** CD-ROM | disk | FTP | other *** search
/ Current Shareware 1994 January / SHAR194.ISO / homecook / mmconv15.zip / MMCONV15.DOC < prev    next >
Text File  |  1993-09-16  |  21KB  |  510 lines

  1.  
  2.          MMCONV
  3.  
  4.     MMCONV is designed to be used by those of us who frequent recipe
  5. conferences on BBSes and use MealMaster.  Often people enter intriguing
  6. recipes that are not in MM format.  This program avoids some of the
  7. drudgery of typing such recipes in by hand or manually reformatting them.
  8.  
  9.     It can also be used by QuikBook users since QuikBook will import
  10. MealMaster formatted recipes with no difficulty.
  11.  
  12.     MMCONV is designed to convert free-form recipes or recipes formatted
  13. for other recipe databases to MealMaster format with minimal manual
  14. effort.  The MM format is:
  15.  
  16.                units     measure        ingredients
  17.    Col 1:       1-7        9-10           13-39
  18.    Col 2:      42-48      50-51           54-81
  19.  
  20.     MMCONV knows the standard MealMaster measurement abbreviations and uses
  21. them.  I did not know small, large, and pinch had standard abbreviations,
  22. but they do.  Despite the temptation, I did not use CL (centiliter) to
  23. represent clove(s).  I have seen recipes using it this way.
  24.  
  25.     MMCONV detects the start and end of recipes in four different ways:
  26.  
  27.         Start of recipe:
  28.  
  29.                 --MM
  30.  
  31.                 -Begin Recipe Export-          QUIKBOOK
  32.  
  33.                 **********                      Compu-Chef
  34.                   (next line must have ** in it)
  35.  
  36.                 *** FROM SCRATCH RECIPE BEGINS *****
  37.  
  38.  
  39.         End of recipe:
  40.  
  41.                  ---
  42.  
  43.                  -End Recipe Export-
  44.  
  45.                  Recipe Via Compu-Chef
  46.  
  47.                   ********** RECIPE ENDS ********
  48.  
  49.     Beginning with version 2.00, there is a fundamental change in the way
  50. MMCONV works.  Those of you who used former versions can still use the
  51. standard parameter inputs to run the program.
  52.  
  53.     However, you can also run it with full screen input.  Just type MMCONV
  54. with no parameters.
  55.  
  56.     The following will display:
  57.  
  58. ---------------------------------------------------------------------------
  59.  
  60.               MMCONV - MM recipe formatter  2.0
  61.  
  62.          Recipe file:
  63.  
  64.          Output file:       MM0908.1
  65.  
  66.     Save extra lines:       XTRA0908.1
  67.  
  68.     Default category:       Maindish
  69.  
  70.          Left footer:
  71.  
  72.         Right footer:
  73.  
  74.        Title display:       Y
  75.  
  76.     Use generic head:       N
  77.  
  78.       Zap categories:       Y
  79.  
  80.  
  81.        Press Escape to Execute
  82.  
  83.  
  84. ---------------------------------------------------------------------------
  85.  
  86.     Recipe file is the input file normally specified after MMCONV.
  87.  
  88.     Save extra lines represents the relatively new -S option.  If the file
  89. name is cleared (hitting HOME will do this or you can backspace it out),
  90. extra lines will not be written to a file.
  91.  
  92.     Default category is normally Maindish.  You can modify this to whatever
  93. you prefer.  For example on a ZIP file of chicken recipes, Chicken would be
  94. appropriate.
  95.  
  96.     Left and Right footers allow you to override the use of From and Date.
  97. This could be used to add commentary, such as zip name and author to a zip
  98. file of recipes.  Or the conference or network to a collection of recipes
  99. off a BBS.
  100.  
  101.     Title display is whether MMCONV should show the Titles as it saves the
  102. recipes.
  103.  
  104.     Use generic header causes MMCONV to ignore SLMR or BlueWave format and
  105. just look for FROM: and DATE:, like the -X option recently added.
  106.  
  107.     Zap categories is an undocumented feature of 1.40.  With a -z
  108. parameter, you can cause 1.40 to not delete the odd categories I selected
  109. to get rid of.  This gives you explicit on-screen control of this feature.
  110.  
  111.     Press Escape to Execute is self-explanatory, I believe.  The ESC key
  112. (often in the upper left corner of a keyboard) causes MMCONV to run.  You
  113. can also carriage return off the Zap categories entry area, but I suspect
  114. most people won't change the default settings.
  115.  
  116.  
  117. ---------------------------------------------------------------------------
  118.  
  119.  
  120.     If a recipe does not have a QUIKBOOK, COMPU-CHEF, FromScratch or
  121. MealMaster header and footer, it must be manually marked.  Put --MM at the
  122. top and at least 3 dashes (---) at the bottom.  Both of these must be
  123. aligned with the left margin.
  124.  
  125.     DO NOT add a MealMaster format header to a non-MM recipe.  These
  126. recipes are copied as is.  Though with version 1.30 some of the categories
  127. are changed even in MM format recipes.  Any of the other headers could be
  128. used to mark a recipe, but the --MM and --- are fewer characters.
  129.  
  130.     The '-l' or '-L' and '-r' or '-R' parameters are ways to label a zip
  131. file or add a comment on the line after the author and date information if
  132. you run an prior MMCREDIT output file through again.  Up to 38 characters
  133. will be used for either.  Some flexibility is supported here.  As long as
  134. the total characters for both is under 76, the program will combine the
  135. input into a credit line.  If the length exceeds 76, the input will be
  136. adjusted to fit the 76 space limit and a message showing the resulting
  137. credit line will be displayed.
  138.  
  139.  To enter just type, for example:
  140.  
  141.  MMCONV mmrecipe -lFrom the ZIP file: MM00.zip -rOff    PC101 BBS
  142.  
  143.  This will add the following CREDIT line at the bottom of recipes:
  144.  
  145.   From the ZIP file: MM00.zip            Off PC101 BBS
  146.  
  147.  If you add quotes to the -r parameter, the extra spaces will be preserved
  148. so this input:
  149.  
  150.  MMCONVnn mmrecipe -lFrom the ZIP file: MM00.zip -r"Off    PC101 BBS"
  151.  
  152. produces this CREDIT line:
  153.  
  154.  From the ZIP file: MM00.zip             Off    PC101 BBS
  155.  
  156.  
  157.     MMCONV will handle a missing footer.  It will be stopped by the next
  158. header.  However, this may cause the inclusion of extra stuff such as
  159. taglines and message header information in some cases.  In Meal-Master
  160. format recipes, a flag message about "Unexpected End of Recipe" is placed
  161. at the end of the recipe to alert you to check for a problem.
  162.  
  163.     The MMCONV program will split lines that are too long for the basic MM
  164. format.  If these lines are in column 2, there will be a '-' inserted in
  165. column 1 if it would otherwise be blank.  This is required to force MM to
  166. treat the 2nd column as a separate column.  Without this, MM thinks it has
  167. a single line of input which is too long.
  168.  
  169.     Occasionally recipes have commentary between the title and the
  170. ingredients.  You must manually move these into the direction section of
  171. the recipe or delete them for MMCONV to process the recipe correctly.
  172.  
  173.     MMCONV will recognize categories headed with all the following in any
  174. combination of upper or lower case and format them for MM:
  175.  
  176.          Category:
  177.          Categories:
  178.          Keywords:
  179.          Cat:
  180.  
  181.     Servings will default to 1.  Serving information in the recipe will be
  182. picked up if recognized.  The program looks for these characters
  183. (case-blind) to occur on first non-blank line after the title and expects a
  184. colon or space to follow them:
  185.  
  186.     SERV  (serves or servings or serving detected)
  187.     MAKE  (make or makes)
  188.  
  189. If these are found and the servings is 0, it will be set to one.  If
  190. non-numeric serving is found, default of one will be used.  A message
  191. showing the problem line will print out so you can fix the servings:
  192.  
  193. TOMATO-CILANTRO BREAD
  194.  Problem with servings:
  195.          Makes one 9x5 loaf
  196.  
  197.     Starting with version 1.40, a change was made in the way ingredients
  198. versus directions are detected.  Ingredients begin after the title
  199. category and serving processing is done and any intervening blank lines are
  200. skipped.   If your recipe actually has no ingredients, put in "none" for
  201. ingredients followed by a blank line.
  202.  
  203.     The first blank line marks start of directions.  Everything after that
  204. is directions.  All directions will be aligned with the left margin.
  205.  
  206.     Any combination of 3 or more --- or ___ with no other characters on the
  207. line terminates recipes processing.
  208.  
  209.     I like to know who originated the recipe.  Typing this information on
  210. each recipe by hand is tedious.  This program will scan through a file and
  211. add a credit line at the end of each recipe based on the From:  and Date:
  212. information in the header.  If the recipes are read from QWK or BlueWave
  213. messages, the From:  and Date:  info is placed at the end of the recipe:
  214.  
  215.   From: Nancy Golden                    Date: 09-21-92
  216.  
  217. If there are no message headers detected, the following is used instead:
  218.  
  219. Converted by MMCONV vers. n.nn
  220.  
  221.     MMCONV can also be used to label recipes in a ZIP file or otherwise
  222. extracted MM format recipe file that does not have qwk headers.  In this
  223. case, the new -l and -r parameters are used to specify what you want stated
  224. at the bottom of the recipe.  Every recipe in this case would have the same
  225. comment on it.
  226.  
  227.     If there is a mixture of headed messages and recipes, the message
  228. header information will affect more recipes than the one associated with
  229. it.  Basically, the credit information from it will carry on till the next
  230. header is found.
  231.  
  232.     My approach to using MMCONV is to mark the recipes and then format the
  233. input file with MMCONV.  I then examine the output recipes.  Any recipes
  234. that were not correctly processed, I tweak in the input file and then
  235. reprocess the input file.  (If there are only minor irregularities, I fix
  236. the output file and proceed to import.)
  237.  
  238.     If the error is something I think the program should have handled, a
  239. new version is created or added to.  If you find something you think
  240. should be handled, please let me know.  I may not agree, but I'm willing
  241. to consider suggestions.  That is how the -x option and the new approach
  242. used in version 1.40 both came about.
  243.  
  244.     This process repeats until the recipes look right to me.  Or until a
  245. few manual changes are all that is required.  Typically, only two passes
  246. have been required.  You may take several until you get a handle on what
  247. the program expects.
  248.  
  249.     The following is a sample of what the program output looks like:
  250.  
  251. MMCONV rec.tst
  252.  
  253.  AL'S CHOCOLATE TO THE MAX
  254.  DATE BALLS
  255.  FLOURLESS CHOCOLATE CAKE
  256.  RASPBERRY SAUCE
  257.  RASPBERRY FOOL
  258.  RED LOBSTER GARLIC CHEESE ROLLS
  259.  M&M PIZZAS
  260.  CRUNCHY ALMOND STICKS
  261.  PINATA COOKIES
  262.  ST LOUIS' PEANUT BUTTER COOKIES
  263.  ST LOUIS' RUM BALLS
  264.  
  265.  MM0612.1:
  266.  Recipes saved: 11  (already MM: 2)
  267.     Lines read: 276
  268.  Lines written: 302
  269.  
  270.     The recipe titles display as they are extracted.  This is followed by
  271. the output file name and the number of recipes.  The parenthetical count is
  272. the number of these recipes that were found to already be in MM format.
  273. The lines read and written print out at the end.  These counts are also
  274. written to the output file.
  275.  
  276.     Like with MMCRDTxx, the default output file name is MMmmdd.n
  277. (current month and day followed by a file number).  If you provide your own
  278. output file name, the file numbering convention is used similarly to avoid
  279. overwriting existing files.  It is supposed to go up to 999 versions, so
  280. there should be little problem with running out.  I have had up to 30+
  281. versions in testing my programs.
  282.  
  283.     An example of the output produced by MMCONV functionality when
  284. encountering an MM recipe:
  285.  
  286. ---------- Recipe via Meal-Master (tm) v7.04
  287.  
  288.       Title: Mexican Fudge
  289.  Categories: Appetizers, Cheese/eggs
  290.    Servings:  1
  291.  
  292.       1 lb Monterey Jack cheese with           1 cn Evaporated milk (13 oz.)
  293.            Jalapeno pepper                     2    Eggs
  294.       1 lb Cheddar cheese                      3 tb Flour
  295.  
  296.           Grate cheese and lay in greased 9" x 13" pan.  Beat milk, eggs, and
  297.   flour together, pour over cheeses.  Bake 40 minutes at 350 degrees F. Cut
  298.   into squares or diamonds, serve hot or cold.
  299.  
  300.  
  301.   From: John Blackwell              Date: 03-02-93
  302. -----
  303.  
  304.     I find manually entering recipes a nuisance.  I also found trying to
  305. squeeze odd recipes into MM format very time consuming.  This program took
  306. a while to write.  But I expect to get some value from the time it saves
  307. me.
  308.  
  309.     I expect you will find that it saves you time as well.  If it does, I
  310. would like payment for the program.  I cannot imagine that it does not save
  311. you $5 worth of time if used a few times.
  312.  
  313.     If you want to register and be notified of upgrades, send your name
  314. and address and the BBS name and phone number where you got the program
  315. with $5 to:
  316.  
  317.               Rodney Grantham
  318.               770 Cranberry Tr.
  319.               Roswell, GA 30076
  320.  
  321.     Please include the version number which displays when MMCONV is run
  322. without any parameters.  If there is a newer version, you will be notified.
  323.  
  324.     If you have suggestions send them to the same address.  I can also be
  325. contacted via RIME or I-LINK CUISINE conferences.  I recently added the
  326. main FIDO recipe conference to my reading.
  327.  
  328.     If you use the program and don't register, drop me a postcard anyway.
  329. Include any comments and your name and address and BBS name and phone
  330. number where you got the program.  I won't nag you about the money.  I
  331. realize that sometimes people cannot afford $5.  I'd like to track the
  332. spread and usage just out of curiousity.  At least splurge enough to blow
  333. a quarter.  That's real close to freeware.
  334.  
  335.  
  336.     MARKIT, MSGSPLIT and MMSORT are freeware.  If you really like them, you
  337. might consider contributing for them as well, but it is not required.
  338.  
  339.     MARKIT formats recipes for processing by MMCONV.  With version 1.02 it
  340. also will format for QBOOK with a -Q option on the input line.
  341.  
  342.     MSGSPLIT divides up large files of messages (or other ASCII text) into
  343. smaller files for convenient processing by editors.
  344.  
  345.     MMSORT can divide up a file of MM recipes based on the category
  346. information in MMSORT.PRM.  For those with several databases of recipes
  347. this can ease recipe entry.
  348.  
  349.  
  350.     ver 1.1     - add TEAS to abbreviate
  351.                 - add OUNCES to abbreviate
  352.                 - translate ½ and ¼ (Stan Hall) to 1/2 and 1/4
  353.                 - activate -L & -R options to supply own footer
  354.                 - -T option suppresses display of Titles
  355.                         (opposite of MMCRDTnn functioning)
  356.                 - -C option to change ingredient line number of chars.
  357.                 - add SERVING detection
  358.                 - caseblind CompuChef & QUIKBOOK header/footer detect
  359.                 - CompuChef checks for "**********" & next line "**"
  360.                 - handle continuation in non-MM recipes
  361.                 - title: cap first char of words - lower the rest
  362.                 - no MM count display if it is zero
  363.                 - skip FAT GRAMS, CHOLESTEROL & INGREDIENT lines from
  364.                   COMPU-CHEF
  365.  
  366.  
  367.      ver 1.2
  368.                 - add TBSPS, TBLSP, TBL, #, SML, TEA, TBLS,
  369.                   QTS, TSPN, TSPNS, TBLSPNS, TBLSPN to abbreviate
  370.                 - add gallon which overlooked before
  371.                 - add standard metrics for MM: kg, g, l, etc.
  372.                 - modify SERV checking so won't pick up preserves
  373.                 - handle multiple fractions, e.g., 1/4-1/2 c water
  374.                 - extra recipe format:
  375.                      *** FROM SCRATCH RECIPE BEGINS *****
  376.                         ********** RECIPE ENDS ********
  377.                 - save 'FromScratch' servings & place correctly
  378.                 - skip lines with just '.' on them
  379.                 - mixed case credit line set from header info
  380.                 - print counts of recipes & lines at end of output file
  381.                   as well as on the screen (MM will ignore this)
  382.  
  383.  
  384.  
  385.      ver 1.3
  386.                 - fix dash handling, e.g., 4-6 pounds not split right
  387.                 - fix 2 6-1/4 oz cans handling
  388.                 - mix case categories
  389.                 - make sure space after servings in all cases
  390.                 - skip extra blank or '.' lines in directions- always
  391.                   keep at least one of the spaces between sections
  392.                 - in real MM recipe, don't stop on stars as CCHEF marker
  393.                 - make sure --MM marker aligns with margin:  H Peagram
  394.                   MM header includes a --MM sequence
  395.                 - handle Title:Spinach Tofu Lasagne - provide space
  396.                 - added PINT to PT, DASH to DS, fluid oz to FL & several
  397.                   additional variant spellings on existing
  398.                 - fix From Scratch to actually work with real recipe;
  399.                   used bad example to develop handling
  400.                 - take out leading blanks in DIRECTIONS: consistency &
  401.                   avoids being interpreted as ingredient.
  402.                 - set own default category - handy on ZIP files -D or -d
  403.                 - look for YIELD for servings
  404.                 - option to save what not seen as recipe -S or -s
  405.                 - fix to skip DIRECTIONS ----- and INGREDIENTS --- lines
  406.                   regardless of length
  407.                 - also INSTRUCTIONS & PROCEDURE lines
  408.                 - generic header: look for NAME: & DATE: -x -X
  409.                 - pick up KEY WORDS as category:  (Alvin Broughton)
  410.                 - must have at least one direction line, otherwise ---
  411.                   treated as normal rather than end of recipe
  412.                 - end marker of at least 3 hyphens need not be aligned
  413.                   with margin - but only hyphens and blanks allowed on
  414.                   the line
  415.                 - zap categories:
  416.                        ",MINE",
  417.                        " BEST",
  418.                        ",BEST",
  419.                        ",MOM'S",
  420.                        " MOM'S",
  421.                        ",ECHO",
  422.                        " ECHO",
  423.                        "CYBEREALM",
  424.                        "MY FAVORITE",
  425.                        "FAVORITE",
  426.                        ",MY",
  427.                        " MY",
  428.                        "*,"
  429.  
  430.      ver 1.4
  431.  
  432.     This version owes a debt to Fran McGee on FIDO.  She made a comment
  433. about the amount of work that got me thinking.  I think you will find
  434. MMCONV version 14 to be much more user friendly than preceding versions as
  435. a result.
  436.  
  437.  
  438.                 - Eliminate character count as guide to ingredient line;
  439.                   instead use first blank line as demarcation.
  440.                 - Skip Pileggi headings:
  441.                        Qty    Measurement       Ingredient
  442.                        ___----  --------
  443.                 - Recognize Pileggi ____ as end of recipe
  444.                 - combine clove or cloves with following word correctly
  445.  
  446.  
  447.      A point by point discussion of these items:
  448.  
  449.                 - Eliminate character count as guide to ingredient line;
  450.                   instead use first blank line as demarcation.
  451.  
  452.     You no longer have to divide up long ingredient lines.  MMCONV will
  453. format them for you.  If there are blank lines within ingredients, they
  454. should be removed.  If there is no blank between ingredients and
  455. directions, add one.
  456.  
  457.     You must have some sort of ingredients.  If there are none in the
  458. recipe, just stick in none with a blank line following before the
  459. directions and you're set.
  460.  
  461.  
  462.  
  463.                 - Skip Pileggi headings:
  464.                        Qty    Measurement       Ingredient
  465.                        ___----  --------
  466.  
  467.     Pileggi puts a lot of recipes out with these two odd headings.  MMCONV
  468. will now skip them and process ingredients.
  469.  
  470.                 - Recognize Pileggi ____ as end of recipe
  471.  
  472.     Pileggi uses ___ rather than --- at end of his recipes.  Difficult to
  473. spot as not a match.  So changed MMCONV to respond to it.
  474.  
  475.                 - combine clove or cloves with following word correctly
  476.  
  477.     I got tired of clove(s) followed by several spaces splitting the
  478. line.  Or having to take out the spaces.  I don't want to use CL for
  479. cloves since MM regards as centiliters.  So I added processing to close up
  480. the spacing for cloves.  That is:
  481.  
  482. 3 cloves    garlic     processes to 3     cloves garlic appropriately
  483. spaced.  Formerly thought garlic was a second column!
  484.  
  485.  
  486.      ver 1.5
  487.  
  488.                 - CLRSCR at start of processing
  489.                 - print counts of various types of recipes (generic
  490.                   are the --MM marked ones)
  491.                 - look for MAKE before SERV to handle "makes 8 servings"
  492.                 - put serving problem on one line rather than 2
  493.                 - provide a full screen input format
  494.                 - continue support of shorthand version as well
  495.                 - add file display if * in filename entered
  496.                 - handle head(s),stalk(s),pieces(s),bag(s),ear(s),
  497.                   glass(es), inch(es), box(es), of, env, bunch(es),
  498.                   like cloves in 1.40
  499.                 - if hit and skip "DIRECTION" line, switch from ingredient
  500.                   processing
  501.                 - skip duplicate KEYWORD or CATEGOR (VILLARREAL)
  502.                 - zap category OSG1966 & some others
  503.                 - CTN for carton, LAR for large and various others added
  504.                 - fix so recognizes SERV or MAKE or YIELD with '(' before
  505.                   it
  506.                 - print name of file processed in the output file & on
  507.                   screen
  508.  
  509.  
  510.