home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / cpm / turbopas / lineinp.lbr / LINEINP.DQC / LINEINP.DOC
Text File  |  1986-04-07  |  7KB  |  175 lines

  1.                   DOCUMENTATION FOR LINEINP.INC
  2.                   -----------------------------
  3.  
  4.   LINEINP.IN├ i≤ ß genera∞ purposσ inpu⌠ modulσ witΦ suppor⌠ ì
  5. routine≤ writteε iε Turb∩ Pascal«  Man∙ program≤ requirσ formateΣ ì
  6. input for dates, dollar amounts, etc.  LINEINP.INC was born out
  7. of the need for a common, easy to use interface.
  8.  
  9.   Thσ modulσ i≤ mean⌠ t∩ bσ includeΣ (i.e« {$ILINEINP.INC}⌐ witΦ ì
  10. your Turbo source.  It provides many of the standard input forms:
  11. ASCII¼ numeric¼ dollars¼ anΣ formateΣ (anΣ verified⌐ date«  I⌠ ì
  12. also can capitalize the input or not echo it (useful for password
  13. entry).
  14.  
  15. Description of individual procedures and functions:
  16.  
  17. functioε JDAT┼  
  18.  
  19.   Thi≤ i≤ useΣ t∩ returε ß juliaε datσ (° numbe≥ oµ day≤ pas⌠ da∙ ì
  20. 0)«  Yo⌡ cal∞ i⌠ witΦ ß hopefull∙ valiΣ datσ iε thσ mm/dd/y∙ ì
  21. forma⌠ anΣ i⌠ return≤ ß rea∞ numbe≥ correspondinτ t∩ thσ juliaε ì
  22. date«  
  23.  
  24.   Yo⌡ ma∙ wisΦ t∩ referencσ you≥ juliaε basσ t∩ somσ othe≥ value«  ì
  25. Iµ yo⌡ wisΦ t∩ convert¼ fo≥ example¼  t∩ thσ MP/═ basσ datσ oµ ì
  26. 12/31/7╕ theε simpl∙ subtrac⌠ 722464 froφ thσ juliaε datσ ì
  27. returned.  
  28.  
  29.        Example:  Julian:=JDATE('01/01/86');
  30.  
  31. ---------------------------------------------------------------
  32.  
  33. functioε GDAT┼  
  34.  
  35.   Thi≤ i≤ useΣ t∩ Gregorian date (mm/dd/yy) from ß given datσ.
  36. You must supply the julian date (real) and GDate will return
  37. the corresponding date in the mm/dd/yy format.
  38.  
  39.        Example:  DueDate:=GDATE(722464.0); [ Returns '12/31/78' ]
  40.  
  41. --------------------------------------------------------------- 
  42.  
  43. functioε DATECALC;  
  44.  
  45.   Thi≤ i≤ ß ver∙ hand∙ function«  Giveε ß datσ iε thσ standarΣ ì
  46. mm/dd/y∙ forma⌠ anΣ ß giveε numbe≥ oµ day≤ (+-32767)¼ DATECAL├ ì
  47. wil∞ returε ß datσ (mm/dd/yy⌐ tha⌠ i≤ tha⌠ numbe≥ oµ day≤ iε thσ ì
  48. future or past.  
  49.  
  50.        Examples: NewDate:=DATECALC('01/01/86',30);
  51.                  NewDate:=DATECALC('02/28/84',-45);
  52.  
  53. --------------------------------------------------------------- 
  54.  
  55. functioε GOODDATE  è
  56.   Thi≤ functioε return≤ TRU┼ iµ thσ datσ passeΣ t∩ i⌠ i≤ ß valiΣ ì
  57. date or FALSE if it is invalid.
  58.  
  59.        Examples: Ok:=GoodDate('02/29/84');     [ Returns TRUE ]
  60.                  Ok:=GoodDate('02/29/86');     [ Returns FALSE ]
  61.  
  62. --------------------------------------------------------------- 
  63.    
  64. function MakeStr
  65.   
  66.   This simply returns a string of a given number of characters.
  67.  
  68.        Example║  Write(MakeStr(5,'*'))╗  █ write≤ '*****º ]
  69.  
  70. --------------------------------------------------------------- 
  71.  
  72. Procedure INPUT
  73.  
  74. Format:  INPUT( Variable to store string (may be preset),
  75.                 Maximum length of input string,
  76.                 Row (1-24),
  77.                 Column (1-80),
  78.                 Type (1-4),
  79.                 EscCode);
  80.  
  81. The variable that stores the string is defined as a string[255].
  82. Iµ yo⌡ arσ enterinτ ß numeriπ value¼ yo⌡ mus⌠ conver⌠ thσ strinτ ì
  83. variablσ t∩ ß numeriπ variablσ outsidσ oµ thi≤ routinσ (usinτ thσ ì
  84. VA╠ procedurσ o≥ othe≥ method)«  Iµ yo⌡ cal∞ INPU╘ witΦ thσ ì
  85. string variable preset to some value, you may edit that value
  86. using all the cursor keys described below.
  87.  
  88. Maximuφ lengtΦ oµ thσ inpu⌠ strinτ ma∙ bσ betweeε 1-255«  Yo⌡ ma∙ ì
  89. no⌠ (makσ tha⌠ shoulΣ not¼ a≤ thσ procedure doesn'⌠ bothe≥ t∩ ì
  90. check⌐ ente≥ morσ tha⌠ 25╡ characters«  Iµ yo⌡ se⌠ thσ lengtΦ t∩ ì
  91. ß negativσ number¼ use≥ inpu⌠ wil∞ no⌠ bσ echoeΣ a≤ i⌠ i≤ ì
  92. entered«  Fo≥ example¼ callinτ INPU╘ witΦ ß lengtΦ oµ -╢ wil∞ ì
  93. allo≈ thσ use≥ t∩ ente≥ ß strinτ u≡ t∩ ╢ characte≥ lonτ bu⌠ ì
  94. his/he≥ inpu⌠ wil∞ no⌠ bσ echoeΣ bacδ fo≥ other≤ t∩ see.
  95.  
  96. Ro≈ anΣ Columε refe≥ t∩ thσ screeε positioε tha⌠ yo⌡ wan⌠ t∩ ì
  97. ente≥ thσ value«  I⌠ i≤ useΣ fo≥ thσ edito≥ a≤ wel∞ a≤ thσ ì
  98. reformatter part of the procedure.
  99.  
  100. Type codes currently implemented are:
  101.  
  102.        1 - ASCII.  Will allow any characters to be entered.
  103.       
  104.        2 - NUMERIC. Only  '0'-'9','.', and .'-' may be entered.
  105.                     any other characters (other than the ESC
  106.                     characters) will ring your bell.
  107.  
  108.        3 - DOLLARS. Allows only numeric data (see above) but
  109.                     additionally formats the string to twoè                    digits past the decimal point.  I don't
  110.                     round up, I truncate so be careful (i.e
  111.                     123.456 is returned as 123.45 not 123.46).
  112.  
  113.        ┤ - DATE«    Numeriπ datß only«  Return≤ aε ╕ bytσ strinτ ì
  114.                     correspondinτ t∩ mm/dd/y∙ (i.e« 02048╢ ì
  115.                     returns 02/04/86).   If you enter an invalid
  116.                     date, the program should return 00/00/00 and
  117.                     als∩ no⌠ prin⌠ thσ formatteΣ datσ t∩ thσ ì
  118.                     screen.  Note: A user program may verify the
  119.                     date returned by INPUT by using the GoodDate
  120.                     function included in this module.
  121.  
  122. Thσ ESCcodσ i≤ thσ ASCI╔ valuσ oµ thσ ke∙ useΣ t∩ exi⌠ thσ INPU╘ ì
  123. procedure«  I⌠ caε bσ useΣ t∩ spacσ forwarΣ o≥ backwarΣ ß field¼ ì
  124. or to detect an ESCAPE request.  Currently, INPUT will exit with
  125. the following keys:  <RETURN>    , code 13
  126.                      <ESC>       , code 27
  127.                      <TAB>       , code 9
  128.                      ^E,^X,^J,^K , Up, Down arrow keys
  129.  
  130. Iµ yo⌡ ente≥ ß negativσ typσ valuσ (-1¼ -2¼ -3¼ o≥ -4)¼ thσ use≥ ì
  131. input will be capitialized.  Obviously, this is only meaningful
  132. for type 1 data!
  133.  
  134. Edito≥ commands║
  135.   
  136.    ╔ havσ trieΣ t∩ kee≡ thσ command≤ a≤ simple¼ bu⌠ flexiblσ a≤ ì
  137. possible«  Thσ command≤ arσ patterneΣ afte≥ WordSta≥ anΣ thσ ì
  138. Turb∩ editor«   
  139.  
  140.      ^A  - Advances to the front of your input string.
  141.  
  142.      ^─  - Move≤ curso≥ righ⌠ onσ spacσ non-destructively«  ╔ ì
  143.            have also made ^L (a Qume right arrow) do the same.
  144.  
  145.      ^F  - Advances the cursor forward to the end of your string.
  146.  
  147.      ^G  - Deletes character under cursor.
  148.  
  149.      DEL - Backspaces and erases character.
  150.  
  151.      ^S  - Moves the cursor backward one space non-destructively.
  152.            I have also made ^H (Backspace) do the same.
  153.  
  154.      ^Y  - Erases line from cursor to end of the string.
  155.  
  156.      ^V  - Toggles insert mode.  Initially, you are in overstrike
  157.            mode.
  158.  
  159. -----------------------------------------------------------------
  160.  
  161.     A WORD OF CAUTION:  IF YOU ARE RUNNING THE Z80 VERSION OF
  162.     TURBO PASCA╠ O╥ TH┼ 1╢ BI╘ VERSIO╬ PRIO╥ T╧ 3.0¼ D╧ NO╘ US┼
  163.     GDAT┼ O╥ JDAT┼ I╬ ┴ WRIT┼ O╥ WRITEL╬ STATEMEN╘ (i.e« è    Write(GDate(X)))«  INSTEAD¼ ASSIG╬ ┴ VARIABL┼ (i.e« 
  164.     X:=GDate(x)) AND THEN USE A WRITE PROCEDURE (Write(X)).
  165.  
  166.     BOT╚ THES┼ ROUTINE╙ US┼ TH┼ VA╠ AND/O╥ ST╥ PROCEDURE╙ I╬ 
  167.     TURB╧ AND TURBO CANNOT PROPERLY PROCESS THE WRITE, WRITELN 
  168.     FUNCTION.  CONSIDER YOURSELF WARNED!  
  169.  
  170.     Enjo∙ anΣ pleasσ le⌠ mσ kno≈ oµ an∙ enhancements¼ bugs¼ o≥ ì
  171. improvements you might make to this module.  You may reach me
  172. via the Master Silicon RCP/M system at (312) 386-9271.
  173.  
  174.                                        Ralph Iden
  175.