Thema: Delphi Live Stichwortsuche

Einzelnen Beitrag anzeigen

Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.544 Beiträge
 
Delphi 11 Alexandria
 
#17

AW: Live Stichwortsuche

  Alt 27. Feb 2014, 08: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
  Mit Zitat antworten Zitat