Forum: Algorithmen, Datenstrukturen und Klassendesign
by Neutral General,
2. Aug 2018
Man kann auch bei WideStrings ganz normal ohne Probleme über den Index zugreifen.
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Neutral General,
1. Aug 2018
Das ist doch was KodeZwerg als aller erstes gepostet hat oder nicht?
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Neutral General,
1. Aug 2018
KodeZwerg das Problem ist diese Zeile:
while (Input = LeadChar) do inc(i);
Das kann bei einem String der komplett aus LeadChars besteht in die Hose gehen, weil zumindest mal Input gecheckt wird, was mit ein bisschen Pech knallen kann.
Deswegen müsste es
while (i <= Length(Input)) and (Input = LeadChar) do inc(i);
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Neutral General,
1. Aug 2018
"Einfach downto" ist in dem Fall aber leider nicht so einfach, weil er nur die '0'en am Anfang des Strings entfernen will und mit ner downto-Schleife ist es etwas problematisch festzustellen ob weiter vorne (nur) noch '0'en sind oder ob dazwischen jetzt noch ne andere Zahl kommt und man daher die aktuelle '0' nicht löschen darf.
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Neutral General,
1. Aug 2018
Wie wärs einfach hiermit?
function RemLeadChar(const Input: string; const LeadChar: Char): string;
begin
if Length(Input) > 0 then
begin
Result := Input;
while (Result = LeadChar) do
delete(Result, 1, 1);
end
else
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Neutral General,
1. Aug 2018
@Delphi.Narium: Deine Simulation stimmt nicht ganz, weil er bei i=2 mit break rausspringen würde, weil '8' <> '0'
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Neutral General,
1. Aug 2018
Nein, die Schleife geht ab 1 los.
Das Problem ist, dass der String kürzer wird, und die Schleife so quasi "verrutscht"
Schleifendurchlauf:
i=1:
00850046 => 0850046
i=2:
0850046