Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
Delphi 12 Athens
|
AW: Live Stichwortsuche
27. Feb 2014, 09:29
Da war noch ein anderer Denkfehler drin: mehrere Trennzeichen hintereinander oder nur Trennzeichen im String sollten IMO ignoriert werden. Das sieht nun so aus:
Delphi-Quellcode:
type
TDynStringArray = array of string;
function StrToArray(const InputStr: string): TDynStringArray;
var
PLast, PCurrent: PChar;
s: string;
ArrayIndex: integer;
begin
SetLength(Result, Length(InputStr) div 2 + 1);
ArrayIndex := Low(Result);
PLast := PChar(InputStr);
PCurrent := PChar(InputStr);
while PCurrent^ <> #0 do
begin
if PCurrent^ = ' ' then
begin
SetString(s, PLast, PCurrent - PLast);
if s <> '' then
begin
Result[ArrayIndex] := s;
inc(ArrayIndex);
end;
PLast := CharNext(PCurrent);
end;
PCurrent := CharNext(PCurrent);
end;
SetString(s, PLast, PCurrent - PLast);
if s <> '' then
begin
Result[ArrayIndex] := s;
inc(ArrayIndex);
end;
SetLength(Result, ArrayIndex);
end;
Detlef "Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
|