home *** CD-ROM | disk | FTP | other *** search
/ Black Box 4 / BlackBox.cdr / progpas / tspas18.arj / TSUNTD.INT < prev    next >
Text File  |  1990-02-24  |  4KB  |  95 lines

  1. {$B-,D-,F-,I+,N-,R-,S+,V+}
  2.  
  3. (*
  4. Timo Salmi UNiT D
  5. A Turbo Pascal 5.0 unit for string manipulation and so on.
  6. All rights reserved 2-Aug-89,
  7. Updated 3-Aug-89, 19-Aug-89, 26-Sep-89
  8.  
  9. This unit contains mainly string manipulation routines. There is not anything
  10. novel about them. Just that I have tried to make them compact and fast.
  11. No inline code, though, is involved in this (nor the other) units.
  12.  
  13. This unit may be used and distributed freely for PRIVATE, NON-COMMERCIAL,
  14. NON-INSTITUTIONAL purposes, provided it is not changed in any way. For
  15. ANY other usage, contact the author.
  16.  
  17. The units are under development. Comments and contacts are solicited. If
  18. you have any questions, please do not hesitate to use electronic mail for
  19. communication.
  20. InterNet address: ts@chyde.uwasa.fi         (preferred)
  21. Funet address:    GADO::SALMI
  22. Bitnet address:   SALMI@FINFUN
  23. FidoNet address:  2:515/1 (Micro Maniacs Opus, To: Timo Salmi)
  24.  
  25. The author shall not be liable to the user for any direct, indirect or
  26. consequential loss arising from the use of, or inability to use, any unit,
  27. program or file howsoever caused. No warranty is given that the units and
  28. programs will work under all circumstances.
  29.  
  30. Timo Salmi
  31. Professor of Accounting and Business Finance
  32. School of Business Studies, University of Vaasa
  33. P.O. BOX 297, SF-65101 Vaasa, Finland
  34. *)
  35.  
  36. unit TSUNTD;
  37.  
  38. (* ======================================================================= *)
  39.                           interface
  40. (* ======================================================================= *)
  41.  
  42. uses Dos;
  43.  
  44. (* Trim a string right *)
  45. function TRIMRGFN (original : string; atcolumn : byte) : string;
  46.  
  47. (* Trim a string left *)
  48. function TRIMLFFN (original : string; atcolumn : byte) : string;
  49.  
  50. (* Lead a string with a suitable number of chosen characters *)
  51. function LEADFN (original     : string;
  52.                  total_length : byte;
  53.                  leadwith     : char) : string;
  54.  
  55. (* Trail a string with a suitable number of chosen characters *)
  56. function TRAILFN (original     : string;
  57.                   total_length : byte;
  58.                   trailwith    : char) : string;
  59.  
  60. (*
  61. Turbo Pascal's own units may occasionally cause problems when run on
  62. poorly compatible computers. In particular, the Ctr unit is problematic
  63. in this respect. The dosdelay procedure is a replacement of Turbo Pascal's
  64. own Delay procedure which is in the Crt unit. The accuracy of dosdelay
  65. is not as good as Delay's.
  66. *)
  67. procedure DOSDELAY (milliseconds : word);
  68.  
  69. const parse_parts_max   = 255;
  70. type parseVectorType    = array [1..parse_parts_max] of string;
  71.      parseVectorPtrType = ^parseVectorType;
  72.  
  73. (* Extract all substrings from a string *)
  74. procedure PARSE
  75.   (original          : string;
  76.    parse_parts_max   : integer;
  77.    separators        : string;
  78.    var nber_of_parts : integer;
  79.    var partPtr       : parseVectorPtrType;
  80.    var ok            : boolean);          {no errors detected}
  81.  
  82. (* This, and the following function, are alternatives to the PARSE procedure.
  83.    STRCNTFN and SPARTFN resemble more closely the inbuilt ParamCount and
  84.    ParamStr function. They do not require using pointers as PARSE does.
  85.    These two functions first appear in release tspas14.arc.
  86.    The purpose of STRCNTFN is to return the number of substrings in a string
  87. *)
  88. function STRCNTFN (s : string; separators : string) : integer;
  89.  
  90. (* Returns the specified substring in a string *)
  91. function SPARTFN (s          : string;
  92.                   separators : string;
  93.                   PartNumber : integer) : string;
  94.  
  95.