22 Maret 2009

Trim Function

// Since I didn't find a Visual Basic LTrim, RTrim and Trim functions
// equivalents in Delphi I wrote the functions that follow:

unit GlbFuncs;

interface

function LTrim(sS : string) : string;
function RTrim(sS : string) : string;
function Trim(sS : string) : string;

implementation

function LTrim(sS : string) : string;
var
iX, iLen : integer;
begin
iLen := Length(sS);
if iLen > 0 then
begin
iX := 1;
while Copy(sS,iX,1) = ' ' do iX := iX + 1;
LTrim := Copy(sS,iX,iLen-(iX-1));
end
else
LTrim := sS;
end;

function RTrim(sS : string) : string;
var
iX, iLen : integer;
begin
iLen := Length(sS);
if iLen > 0 then
begin
iX := iLen;
while Copy(sS,iX,1) = ' ' do iX := iX - 1;
RTrim := Copy(sS,0,iX);
end
else
RTrim := sS;
end;

function Trim(sS : string) : string;
begin
Trim := LTrim(RTrim(sS));
end;

end.

--------------------------

unit TrimStr;
{$B-}
{
File: TrimStr
Author: Bob Swart [100434,2072]
Purpose: routines for removing leading/trailing spaces from strings,
and to take parts of left/right of string (a la Basic).
Version: 2.0

LTrim() - Remove all spaces from the left side of a string
RTrim() - Remove all spaces from the right side of a string
Trim() - Remove all extraneous spaces from a string
RightStr() - Take a certain portion of the right side of a string
LeftStr() - Take a certain portion of the left side of a string
MidStr() - Take the middle portion of a string
}

interface
Const
Space = #$20;

function LTrim(Const Str: String): String;
function RTrim(Str: String): String;
function Trim(Str: String): String;
function RightStr(Const Str: String; Size: Word): String;
function LeftStr(Const Str: String; Size: Word): String;
function MidStr(Const Str: String; Size: Word): String;

implementation

function LTrim(Const Str: String): String;
var len: Byte absolute Str;
i: Integer;
begin
i := 1;
while (i < = len) and (Str[i] = Space) do Inc(i); LTrim := Copy(Str,i,len) end {LTrim}; function RTrim(Str: String): String; var len: Byte absolute Str; begin while (Str[len] = Space) do Dec(len); RTrim := Str end {RTrim}; function Trim(Str: String): String; begin Trim := LTrim(RTrim(Str)) end {Trim}; function RightStr(Const Str: String; Size: Word): String; var len: Byte absolute Str; begin if Size > len then Size := len;
RightStr := Copy(Str,len-Size+1,Size)
end {RightStr};

function LeftStr(Const Str: String; Size: Word): String;
begin
LeftStr := Copy(Str,1,Size)
end {LeftStr};

function MidStr(Const Str: String; Size: Word): String;
var len: Byte absolute Str;
begin
if Size > len then Size := len;
MidStr := Copy(Str,((len - Size) div 2)+1,Size)
end {MidStr};
end.