![]() |
Wort oder Satz in Memo finden und ersetzen
Hallo
![]() ich muss ständig den Link ändern, deswegen möchte ich gerne nur den Link im Memo oder in Listbox suchen und mit einem anderen Link (der aktuelle Link) ersetzen. der aktuelle Link befindet sich in einer text-Datei und wird mit dem Code geholt :mrgreen:
Delphi-Quellcode:
nun muss den alten Link
ListBox1.Items.LoadFromFile('test.txt');
oder Memo1.lines.LoadFromFile('test.txt'); ![]() ![]() wie kann ich den Link ersetzen? Es wäre noch genauer, wenn ich den Inhalt zwischen " " nach dem Wort action :gruebel: weil der alten Link nicht immer ![]() Hat jemand eine Idee mit
Delphi-Quellcode:
Gruß
for i= bla to bla2 do
|
Re: Wort oder Satz in Memo finden und ersetzen
StringReplace -> F1
|
Re: Wort oder Satz in Memo finden und ersetzen
|
Re: Wort oder Satz in Memo finden und ersetzen
Warum nicht so?
Delphi-Quellcode:
Das sollte funktionieren.
for i:=0 to Memo1.Lines.Count-1 do
Memo1.Lines[i]:=StringReplace(o, 'http://blablabla.de', 'http://bla2bla.de', [rfReplaceAll]); |
Re: Wort oder Satz in Memo finden und ersetzen
Zitat:
Und laut Fragestellung ist er nicht bekannt. Grüße Klaus |
Re: Wort oder Satz in Memo finden und ersetzen
Wenn du in einer Zeile zwei Mal den Suchbegriff stehen hast, dann haut Pos alleine nicht hin und du brauchst schon eine Rekursion. Das ist unnötig.
Deshalb: Pos + StringReplace.
Delphi-Quellcode:
Mist zu spät....
for i := 0 to Memo1.Lines.Count-1 do
if Pos(Suchbegriff, Memo1.Lines[i]) > 0 then StringReplace(Memo1.Lines[i], Suchbegriff, Ersetzbegriff, [rfReplaceAll]); Wenn der Link nicht bekannt ist, dann holt man ihn sich doch eh, dann funktioniert es wieder. |
Re: Wort oder Satz in Memo finden und ersetzen
Hallo,
Du könntest auch die Funktion ![]() Diese nimmt Dir den String auseinander und speichert die Teile in ein StringArray. Als Seperator kannst Du dann " verwenden. So könntest Du den Link ermitteln der ausgetauscht werden soll. Austauschen kannst Du den Link dann im OriginalString mit StringReplace. Grüße Klaus |
Re: Wort oder Satz in Memo finden und ersetzen
Zitat:
ich glaube Nils-Idee ist bis jetzt am besten :gruebel: auf jeden Fall hier ist meine moemische Idee aber funktioniert :mrgreen: Ich gleube, ich habe eine idee :gruebel: ich habe den Text in Memo so verzerrt und vereinfacht und nun habe ich den Link in Falle :mrgreen: ![]() jetzt kann ich so versuchen
Delphi-Quellcode:
:mrgreen:
memo1.LoadFromFile('link.txt');// der Link wird von link.txt in memo1 gespeichert
Memo2.Lines[10]:=memo1.lines; das Problem ist damit gelöst, möchte ich aber den Code kurzer machen ohne Umweg ich habe b´versucht so :
Delphi-Quellcode:
was ist Falsch?
Memo2.Lines[10]:=loadfromfile('link.txt'); //geht leider nicht, error
Memo2.line10.add(loadfromfile('link.txt')); // geht auch nicht Ich werde aber gerne Nils-Idee nehmen :mrgreen:
Delphi-Quellcode:
_____ ___ __ _ _ _ _____
| _ \ / | | \ | | | | / / | ____| | | | | / /| | | \| | | |/ / | |__ | | | | / / | | | |\ | | |\ \ | __| | |_| | / / | | | | \ | | | \ \ | |___ |_____/ /_/ |_| |_| \_| |_| \_\ |_____| |
Re: Wort oder Satz in Memo finden und ersetzen
Hi,
du koenntest auch einen TReplaceDialog nehmen und auf die Form ziehen! |
Re: Wort oder Satz in Memo finden und ersetzen
Es passiert aber nichts :cry:
Delphi-Quellcode:
procedure TForm1.Button7Click(Sender: TObject);
var i: integer; blabla: string; hallohallo: string; begin for i := 0 to Memo2.Lines.Count-1 do if Pos(blabla, Memo2.Lines[i]) > 0 then StringReplace(Memo2.Lines[i], blabla, hallohallo, [rfReplaceAll]); end; end. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:52 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-2025 by Thomas Breitkreuz