Forum: Algorithmen, Datenstrukturen und Klassendesign
by KodeZwerg,
1. Aug 2018
Habe zwei überflüssige checks entfernt, nun schauts sogut wie gleich aus, ich geh halt mit break und worauf es reagiert anders um.
Forum: Algorithmen, Datenstrukturen und Klassendesign
by KodeZwerg,
1. Aug 2018
Weicht Deine Methode von den gezeigten ab? (Vielleicht mittels Pointer-Operation fällt mir auf die schnelle noch ein)
Ja. Das erschien mir die performanteste Umsetzung.
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...
Forum: Algorithmen, Datenstrukturen und Klassendesign
by KodeZwerg,
1. Aug 2018
Das führt bei mir zu einer Endlos-Schleife, aber so klappts:
function DelLeadChar(const Input: string; const LeadChar: Char): string;
var
i: Integer;
begin
i:=0;
Result := Input;
if length(Input)>0 then
begin
repeat
Forum: Algorithmen, Datenstrukturen und Klassendesign
by KodeZwerg,
1. Aug 2018
:thumb::thumb: Danke fürs Nase drauf stubsen!
Ps: Bei meinen Samples könnte man die schleifen auch ab zweite position laufen lassen um einen doppelten check zu vermeiden aber da fehlt dann erst mal ein längen check ob überhaupt content eine länge von 2 besitzt. Ich wollte halt string operationen auf einen einzigen manipulator bringen, jeweils basierend auf einem count index-wert.
Forum: Algorithmen, Datenstrukturen und Klassendesign
by KodeZwerg,
1. Aug 2018
Ich versuche gerade Nachzuvollziehen an welcher Stelle es böse ausgehen könnte, deswegen kommentare rangeklebt damit ihr seht was ich anstellen wollte, vielleicht ist umsetzung falsch
function RemDelLeadChar(const Input: string; const LeadChar: Char): string;
var
i: Integer;
begin
i := 1; // String Index auf 1 (der erste) setzen
Result := Input; // result mit input initialisieren
...
Forum: Algorithmen, Datenstrukturen und Klassendesign
by KodeZwerg,
1. Aug 2018
Kann ich ein Beispiel bekommen wo der genannte Code nicht funktioniert? Ich habe es mit allerlei kram getestet ohne auf Fehler zu stossen. Ein Delete bzw Cut kommt bei mir ja auch nur einmal vor.
Forum: Algorithmen, Datenstrukturen und Klassendesign
by KodeZwerg,
1. Aug 2018
Das ist ja das schöne bei Delphi, jeder kann seine persönliche Note einbringen :love:
Müssen viele LeadChars entfernt werden ist mein Vorschlag bestimmt nen takken schneller ^_^
Mini Upgrade vs Leerstrings
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
Forum: Algorithmen, Datenstrukturen und Klassendesign
by KodeZwerg,
1. Aug 2018
Ich habe auch noch etwas herumgespielt, sowas kam dabei raus:
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 = LeadChar then // fängt String nicht mit LeadChar an gibts nichts zu tun
for i := 1 to Length(Input) do // komplette stringlänge...