![]() |
AnsiContainsStr funktioniert nicht so wie er soll
Hallo alle zusammen,
ich wundere mich, warum mein Programm nicht das macht was es soll: Es soll einfach aus einer Linklist, gewisse Zeichen filtern. Beispiel eines ungefilterten Links: ![]() Daraus sollte das werden: ![]() Ich hoffe ihr seht den Fehler im gegensatz zu mir ^.^ Vielen Dank
Code:
unit UCompare;
var Form1: TForm1; Alte : TSTringlist; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var i : integer; aI :string; begin Alte := TStringlist.Create; Alte.Sorted := true; Alte.LoadFromFile('alte.txt'); i := 0; while i <= Alte.Count-1 do begin aI := Alte[i]; if AnsiContainsStr(aI,'?') then setlength(aI, pos('?',aI)-1); if AnsiContainsStr(aI,'https://') then delete(aI,5,1); inc(i); end; Alte.SaveToFile(sAlte); |
Re: AnsiContainsStr funktioniert nicht so wie er soll
Vielleicht solltest du das Ergebnis deiner Bemühungen auch wieder in die StringList schreiben...
|
Re: AnsiContainsStr funktioniert nicht so wie er soll
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; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:59 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz