Einzelnen Beitrag anzeigen

BadenPower

Registriert seit: 17. Jun 2009
616 Beiträge
 
#9

AW: Dynamische Arrays "verketten"

  Alt 4. Feb 2015, 09:29
Um auf die eigentliche Frage zu antworten, habe ich Dir den Code berichtigt.

Delphi-Quellcode:
function MultiPos(const SubStr, Str: String; Offset: Integer = 1): TIntegerArray;
var
  Temp: PChar;
  Position: Integer;
  Further: TIntegerArray;
begin
  SetLength(Result,0);
  if (Offset < 1) or (Offset > (Length(Str) - Length(SubStr))) then
  begin
    Exit;
  end;
  Temp := @Str[OffSet];
  Position := Pos(SubStr,String(Temp));
  if Position <> 0 then
  begin
    SetLength(Result,1);
    Result[0] := Position + Offset - 1;
    Inc(Temp,Position + Length(SubStr) - 1);
    Further := MultiPos(SubStr,Str,Offset + Position + Length(SubStr) - 1);
    if Length(Further) <> 0 then
    begin
      SetLength(Result,1 + Length(Further));
      Move(Further[0],Result[1],Length(Further)*SizeOf(Further[0])); // hier änderen
    end;
  end;
end;

EDIT:
Funktioniert neuerdings die "rote Box" nicht mehr, wenn zwichendurch bereits Antworten gepostet wurden?
Programmieren ist die Kunst aus Nullen und Einsen etwas sinnvollen zu gestalten.
Der bessere Künstler ist allerdings der Anwender, denn dieser findet Fehler, welche sich der Programmierer nicht vorstellen konnte.

Geändert von BadenPower ( 4. Feb 2015 um 09:31 Uhr) Grund: Da war jemand schneller und es kan keine Warnung
  Mit Zitat antworten Zitat