home *** CD-ROM | disk | FTP | other *** search
/ On Disk Monthly 62 / odm62.zip / GDSOURCE.EXE / STRINGS.PAS < prev   
Pascal/Delphi Source File  |  1991-10-14  |  4KB  |  165 lines

  1. unit strings;
  2.  
  3. interface
  4.  
  5. {$F+}
  6. FUNCTION StrI(I: integer): string;
  7. FUNCTION StrIF(I: integer; Field: integer): string;
  8. FUNCTION StrL(L: longint): string;
  9. FUNCTION StrLF(L: longint; Field: integer): string;
  10. FUNCTION StrR(R: real): string;
  11. FUNCTION StrRF(R: real; Field: integer): string;
  12. FUNCTION StrRFD(R: real; Field, Decimals: integer): string;
  13. FUNCTION UpperCase(S : string): string;
  14. FUNCTION LowerCase(S : string): string;
  15. FUNCTION StringOf(C : char; StringLength : byte): string;
  16. FUNCTION StripChar(S : string; C : char): string;
  17. FUNCTION PadSpaces(S : string; StringLength : byte): string;
  18. FUNCTION LeftPad(S : string; C : char; StringLength : byte): string;
  19. FUNCTION CenterPad(S : string; C : char; StringLength : byte): string;
  20. FUNCTION RightPad(S : string; C : char; StringLength : byte): string;
  21.  
  22. implementation
  23.  
  24. FUNCTION StrI(I: integer): string;
  25. VAR  StrResult: ^string;
  26. BEGIN
  27.   Inline( $89/$EC/$16/$FF/$76/$08);
  28.   Str(I, StrResult^);
  29. END;
  30.  
  31. FUNCTION StrIF(I: integer; Field: integer): string;
  32. VAR  StrResult: ^string;
  33. BEGIN
  34.   Inline($89/$EC/$16/$FF/$76/$0A);
  35.   Str(I:Field, StrResult^);
  36. END;
  37.  
  38. FUNCTION StrL(L: longint): string;
  39. VAR  StrResult: ^string;
  40. BEGIN
  41.   Inline($89/$EC/$16/$FF/$76/$0A);
  42.   Str(L, StrResult^);
  43. END;
  44.  
  45. FUNCTION StrLF(L: longint; Field: integer): string;
  46. VAR  StrResult: ^string;
  47. BEGIN
  48.   Inline($89/$EC/$16/$FF/$76/$0C);
  49.   Str(L:Field, StrResult^);
  50. END;
  51.  
  52. FUNCTION StrR(R: real): string;
  53. VAR  StrResult: ^string;
  54. BEGIN
  55.   Inline($89/$EC/$16/$FF/$76/$0C);
  56.   Str(R, StrResult^);
  57. END;
  58.  
  59. FUNCTION StrRF(R: real; Field: integer): string;
  60. VAR  StrResult: ^string;
  61. BEGIN
  62.   Inline($89/$EC/$16/$FF/$76/$0E);
  63.   Str(R:Field, StrResult^);
  64. END;
  65.  
  66. FUNCTION StrRFD(R: real; Field, Decimals: integer): string;
  67. VAR  StrResult: ^string;
  68. BEGIN
  69.   Inline($89/$EC/$16/$FF/$76/$10);
  70.   Str(R:Field:Decimals, StrResult^);
  71. END;
  72. {$F-}
  73.  
  74. FUNCTION UpperCase(S : string): string;
  75. VAR  I : byte;
  76. BEGIN
  77.   FOR I := 1 TO Length(S) DO
  78.     S[I] := UpCase(S[I]);
  79.   UpperCase := S;
  80. END;
  81.  
  82. FUNCTION LowerCase(S : string): string;
  83. VAR  I : byte;
  84. BEGIN
  85.   FOR I := 1 TO Length(S) DO
  86.     IF (S[I] >= 'A') AND (S[I] <= 'Z') THEN
  87.       S[I] := Chr(Ord(UpCase(S[I])) + 32);
  88.   LowerCase := S;
  89. END;
  90.  
  91. FUNCTION StringOf(C : char; StringLength : byte): string;
  92. VAR  I : byte;
  93. BEGIN
  94.   FOR I := 1 TO StringLength DO
  95.     StringOf[I] := C;
  96.   StringOf[0] := Chr(StringLength);
  97. END;
  98.  
  99. FUNCTION StripChar(S : string; C: char): string;
  100. VAR  I : byte;
  101.      L : byte;
  102. BEGIN
  103.   L := 1;
  104.   FOR I := 1 TO Length(S) DO
  105.   BEGIN
  106.     IF S[I] <> C THEN
  107.     BEGIN
  108.       StripChar[L] := S[I];
  109.       inc(L);
  110.     END;
  111.   END;
  112.   StripChar[0] := Chr(Pred(L));
  113. END;
  114.  
  115. FUNCTION PadSpaces(S : string; StringLength : byte): string;
  116. VAR  I : byte;
  117.      L : byte;
  118. BEGIN
  119.   L := Length(S);
  120.   IF L > StringLength THEN
  121.     L := StringLength;
  122.   PadSpaces := Copy(S, 1, L) + StringOf(' ', StringLength - L)
  123. END;
  124.  
  125. FUNCTION LeftPad(S : string; C : char; StringLength : byte): string;
  126. VAR  I : byte;
  127.      L : byte;
  128. BEGIN
  129.   L := Length(S);
  130.   IF L > StringLength THEN
  131.     L := StringLength;
  132.   LeftPad := Copy(S, 1, L) + StringOf(C, StringLength - L);
  133. END;
  134.  
  135. FUNCTION CenterPad(S : string; C : char; StringLength : byte): string;
  136. VAR  I : byte;
  137.      L : byte;
  138. BEGIN
  139.   L := (StringLength - Length(S)) shr 1;
  140.   IF L > 128 THEN
  141.   BEGIN
  142.     L := 0;
  143.     I := StringLength;
  144.   END
  145.   ELSE
  146.     I := Length(S);
  147.   CenterPad := StringOf(C, L) + Copy(S, 1, I) + StringOf(C, StringLength - I - L);
  148. END;
  149.  
  150. FUNCTION RightPad(S : string; C : char; StringLength : byte): string;
  151. VAR  I : byte;
  152.      L : byte;
  153. BEGIN
  154.   L := StringLength - Length(S);
  155.   I := 1;
  156.   IF L > 128 THEN
  157.   BEGIN
  158.     L := 0;
  159.     I := Length(S) - StringLength + 1;
  160.   END;
  161.   RightPad := StringOf(C, L) + Copy(S, I, StringLength);
  162. END;
  163.  
  164. END.
  165.