xaromz zeigt
hier ein Funktion, mit der es möglich ist, von einem String beliebige Zeichen, die sich am Rand befinden, zu löschen. Dies können beispielsweise Leerzeichen sein, die sich rechts und/oder links im String befinden, doch es können auch beliebige weitere Zeichen sein, sogar mehrere verschiedene, die zu entfernen sind.
Delphi-Quellcode:
type
TTrimDirection =
set of (tdLeft, tdRight);
function PATrimChars(
const S:
String; CS: TSysCharSet; Direction: TTrimDirection):
String;
var
L, Left, Right: Integer;
begin
L := Length(S);
Left := 1;
if tdLeft
in Direction
then
begin
while (Left <= L)
and (S[Left]
in CS)
do
Inc(Left);
if Left > L
then
begin
Result := '
';
Exit;
end;
end;
Right := L;
if tdRight
in Direction
then
begin
while (Right > 0)
and (S[Right]
in CS)
do
Dec(Right);
end;
Result := Copy(S, Left, Right - Left + 1);
end;
Hier zwei Beispielaufrufe:
Delphi-Quellcode:
ShowMessage(PATrimChars('hallo!!!', ['!'], [tdRight])); // ergibt: hallo;
ShowMessage(PATrimChars('_#hallo/{', ['_', '#', '/', '{'], [tdLeft, tdRight])); // ergibt: hallo;
[edit=CalganX]Aktualisierter Quellcode. Mfg, CalganX[/edit]