Das AnsiContainsStr braucht man hier im Grunde auch nicht. Und eine for-Schleife passt auch besser, da die Anzahl der Durchläufe ohnehin bekannt ist. Zudem fehlt die wichtige Pfadangabe. Wie wäre es einfach so?
Delphi-Quellcode:
procedure TFormX.ButtonXClick(Sender: TObject);
function FilterUrl(const AUrl: string): string;
var
CharPos: Integer;
begin
Result := AUrl;
CharPos := Pos('?', Result);
if CharPos > 0 then
SetLength(Result, Pred(CharPos));
if Copy(Result, 1, 8) = 'https://' then
Delete(Result, 5, 1);
end;
var
i: integer;
FileContents: TStringlist;
begin
FileContents := TStringlist.Create;
FileContents.Sorted := true;
FileContents.LoadFromFile(ExtractFilePath(ParamStr(0)) + 'alte.txt');
for i := 0 to Pred(FileContents.Count) do
FileContents[i] := FilterUrl(FileContents[i]);
FileContents.SaveToFile(sAlte);
end;