Einzelnen Beitrag anzeigen

Dennis07

Registriert seit: 19. Sep 2011
Ort: Deutschland
488 Beiträge
 
Delphi 11 Alexandria
 
#17

AW: String vorne mit Nullen auffüllen

  Alt 12. Sep 2022, 14:47
Der Zwerg kann auch ohne Schleife
Najaaaa, wenn du die Schleife einfach nach "Move" auslagerst, dann ja.

Delphi-Quellcode:
function FillString(const AString: AnsiString; const AChar: AnsiChar; const ALength: Integer): AnsiString;
var
  Len: Integer;
begin
  Len := ALength - Length(AString); // padding "berechnen"
  if (Len > 0) then // kurzer check
    begin
      SetLength(Result, ALength); // länge setzen
      FillChar(Result[1], Len, AChar); // padding einfügen
      Move(AString[1], Result[Succ(Len)], Length(AString)); // zusammenfügen
    end
    else
      Result := AString; // das original so belassen
end;
Jo, aber wieso nicht einfach:
Delphi-Quellcode:
function FillString(const AString: AnsiString; const AChar: AnsiChar; const ALength: Integer): AnsiString;
var
  Len: Integer;
begin
  Len := ALength - Length(AString);
  Result := StringOfChar(AChar, Len) + AString;
end;
Das klappt dann nebenbei auch mit UnicodeString.
Dennis
  Mit Zitat antworten Zitat