Str16.pas
上传用户:hylc_2004
上传日期:2014-01-23
资源大小:46800k
文件大小:2k
源码类别:

Delphi控件源码

开发平台:

Delphi

  1. {*******************************************************}
  2. {                                                       }
  3. {         Delphi VCL Extensions (RX)                    }
  4. {         For 16-bit applications only                  }
  5. {                                                       }
  6. {         Copyright (c) 1995, 1996 AO ROSNO             }
  7. {                                                       }
  8. {*******************************************************}
  9. unit Str16;
  10. interface
  11. {$IFNDEF WIN32}
  12. {$I RX.INC}
  13. type
  14.   ShortString = string;
  15.   PShortString = ^ShortString;
  16.   AnsiChar = Char;
  17.   PAnsiChar = ^AnsiChar;
  18. { System32 unit functions and procedures }
  19. procedure SetLength(var S: string; NewLength: Byte);
  20. procedure SetString(var S: string; Buffer: PChar; Len: Byte);
  21. procedure UniqueString(var S: string);
  22. { SysUtils32 unit functions and procedures }
  23. function Trim(const S: string): string;
  24. function TrimLeft(const S: string): string;
  25. function TrimRight(const S: string): string;
  26. function QuotedStr(const S: string): string;
  27. {$ENDIF WIN32}
  28. implementation
  29. {$IFNDEF WIN32}
  30. uses SysUtils;
  31. procedure SetLength(var S: string; NewLength: Byte);
  32. begin
  33.   S[0] := Char(NewLength);
  34. end;
  35. procedure SetString(var S: string; Buffer: PChar; Len: Byte);
  36. begin
  37.   S[0] := Char(Len);
  38.   if Buffer <> nil then begin
  39.     if StrLen(Buffer) < Len then Len := StrLen(Buffer);
  40.     Move(Buffer^, S[1], Len);
  41.   end;
  42. end;
  43. procedure UniqueString(var S: string);
  44. begin
  45. end;
  46. function Trim(const S: string): string;
  47. var
  48.   I, L: Byte;
  49. begin
  50.   L := Length(S);
  51.   I := 1;
  52.   while (I <= L) and (S[I] <= ' ') do Inc(I);
  53.   if I > L then Result := ''
  54.   else begin
  55.     while S[L] <= ' ' do Dec(L);
  56.     Result := Copy(S, I, L - I + 1);
  57.   end;
  58. end;
  59. function TrimLeft(const S: string): string;
  60. var
  61.   I, L: Byte;
  62. begin
  63.   L := Length(S);
  64.   I := 1;
  65.   while (I <= L) and (S[I] <= ' ') do Inc(I);
  66.   Result := Copy(S, I, 255);
  67. end;
  68. function TrimRight(const S: string): string;
  69. var
  70.   I: Byte;
  71. begin
  72.   I := Length(S);
  73.   while (I > 0) and (S[I] <= ' ') do Dec(I);
  74.   Result := Copy(S, 1, I);
  75. end;
  76. function QuotedStr(const S: string): string;
  77. var
  78.   I: Byte;
  79. begin
  80.   Result := S;
  81.   for I := Length(Result) downto 1 do
  82.     if Result[I] = '''' then Insert('''', Result, I);
  83.   Result := '''' + Result + '''';
  84. end;
  85. {$ENDIF WIN32}
  86. end.