Das ist ja das schöne bei Delphi, jeder kann seine persönliche Note einbringen
Müssen viele LeadChars entfernt werden ist mein Vorschlag bestimmt nen takken schneller ^_^
Mini Upgrade vs Leerstrings
Delphi-Quellcode:
function RemLeadChar(const Input: string; const LeadChar: Char): string;
var
i, ii: Integer;
begin
ii := 0;
if Length(Input) > 0 then // ein zeichen minimum um weiter zu kommen
if Input[1] = LeadChar then // fängt String nicht mit LeadChar an gibts nichts zu tun
for i := 1 to Length(Input) do // komplette stringlänge abarbeiten initialisieren
if Input[i] = LeadChar then ii := i else Break; // kommt vorne ein LeadChar vor Position merken
if ii > 0 then Result := Copy(Input, ii+1, Length(Input)) // entweder anfang verwerfen
else Result := Input; // oder eingabe zurück
if Result = '' then Result := LeadChar; // falls input leer oder nur aus LeadChars bestand, gib wenigstens ein LeadChar zurück
end;
und noch ein Vorschlag zu dem While Delete
Delphi-Quellcode:
function RemDelLeadChar(const Input: string; const LeadChar: Char): string;
var
i: Integer;
begin
i := 1;
Result := Input;
if ((Length(Input) > 0) and (Input[1] = LeadChar)) then
begin
while (Input[i] = LeadChar) do inc(i);
Delete(Result, 1, i-1);
end;
if Result = '' then Result := LeadChar;
end;