Einzelnen Beitrag anzeigen

Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.685 Beiträge
 
Delphi 11 Alexandria
 
#33

AW: führende null entfernen

  Alt 1. Aug 2018, 20:18
Ich hätte mittels Schleife den Index des ersten Nicht-Null-Zeichens ermittelt und ab da einfach kopiert.
Weicht Deine Methode von den gezeigten ab? (Vielleicht mittels Pointer-Operation fällt mir auf die schnelle noch ein)
Das ist doch was KodeZwerg als aller erstes gepostet hat oder nicht?
Ja. Das erschien mir die performanteste Umsetzung.
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 // den check kann man sich sparen
// if Input[1] = LeadChar then // fängt String nicht mit LeadChar an gibts nichts zu tun // den check kann man sich sparen
    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;
Gruß vom KodeZwerg

Geändert von KodeZwerg ( 1. Aug 2018 um 20:57 Uhr) Grund: code optimiert
  Mit Zitat antworten Zitat