Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Wort oder Satz in Memo finden und ersetzen (https://www.delphipraxis.net/99383-wort-oder-satz-memo-finden-und-ersetzen.html)

taktaky 11. Sep 2007 13:45


Wort oder Satz in Memo finden und ersetzen
 
Hallo

http://members.lycos.co.uk/forforums...-ersetzen2.jpg

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:
ListBox1.Items.LoadFromFile('test.txt');
oder
Memo1.lines.LoadFromFile('test.txt');
nun muss den alten Link http://blabla.de mit dem neuen Link in Txt-Datei : http://bla2bla2.de ersetzen

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 http://blabla.de :mrgreen:

Hat jemand eine Idee mit
Delphi-Quellcode:
 for i= bla to bla2 do
Gruß

DeddyH 11. Sep 2007 13:52

Re: Wort oder Satz in Memo finden und ersetzen
 
StringReplace -> F1

DGL-luke 11. Sep 2007 13:54

Re: Wort oder Satz in Memo finden und ersetzen
 
StringReplace alleine wird nicht hinhauen.

Delphi-Referenz durchsuchenPos und Delphi-Referenz durchsuchenCopy wird man hier brauchen.

argonix 11. Sep 2007 14:27

Re: Wort oder Satz in Memo finden und ersetzen
 
Warum nicht so?
Delphi-Quellcode:
for i:=0 to Memo1.Lines.Count-1 do
Memo1.Lines[i]:=StringReplace(o, 'http://blablabla.de', 'http://bla2bla.de', [rfReplaceAll]);
Das sollte funktionieren.

Klaus01 11. Sep 2007 14:31

Re: Wort oder Satz in Memo finden und ersetzen
 
Zitat:

Zitat von argonix
Warum nicht so?
Delphi-Quellcode:
for i:=0 to Memo1.Lines.Count-1 do
Memo1.Lines[i]:=StringReplace(o, 'http://blablabla.de', 'http://bla2bla.de', [rfReplaceAll]);
Das sollte funktionieren.

Das funktioniert nur wenn der alte Link bekannt ist.
Und laut Fragestellung ist er nicht bekannt.

Grüße
Klaus

Nils_13 11. Sep 2007 14:32

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:
for i := 0 to Memo1.Lines.Count-1 do
  if Pos(Suchbegriff, Memo1.Lines[i]) > 0 then
    StringReplace(Memo1.Lines[i], Suchbegriff, Ersetzbegriff, [rfReplaceAll]);
Mist zu spät....

Wenn der Link nicht bekannt ist, dann holt man ihn sich doch eh, dann funktioniert es wieder.

Klaus01 11. Sep 2007 14:39

Re: Wort oder Satz in Memo finden und ersetzen
 
Hallo,

Du könntest auch die Funktion explode verwenden.
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

taktaky 11. Sep 2007 15:14

Re: Wort oder Satz in Memo finden und ersetzen
 
Zitat:

Zitat von Nils_13
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:
for i := 0 to Memo1.Lines.Count-1 do
  if Pos(Suchbegriff, Memo1.Lines[i]) > 0 then
    StringReplace(Memo1.Lines[i], Suchbegriff, Ersetzbegriff, [rfReplaceAll]);
Mist zu spät....

Wenn der Link nicht bekannt ist, dann holt man ihn sich doch eh, dann funktioniert es wieder.

Hallo zusammen,

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:
http://members.lycos.co.uk/forforums...-ersetzen3.jpg

jetzt kann ich so versuchen
Delphi-Quellcode:
memo1.LoadFromFile('link.txt');// der Link wird von link.txt in memo1 gespeichert
Memo2.Lines[10]:=memo1.lines;
:mrgreen:

das Problem ist damit gelöst, möchte ich aber den Code kurzer machen ohne Umweg

ich habe b´versucht so :
Delphi-Quellcode:
Memo2.Lines[10]:=loadfromfile('link.txt'); //geht leider nicht, error
Memo2.line10.add(loadfromfile('link.txt')); // geht auch nicht
was ist Falsch?

Ich werde aber gerne Nils-Idee nehmen :mrgreen:
Delphi-Quellcode:
 _____        ___   __   _   _   _    _____ 
|  _  \     /   | |  \ | | | | / /  | ____| 
| | | |    / /| | |   \| | | |/ /   | |__   
| | | |   / / | | | |\   | | |\ \   |  __| 
| |_| |  / /  | | | | \  | | | \ \  | |___ 
|_____/ /_/   |_| |_|  \_| |_|  \_\ |_____|

Mackhack 11. Sep 2007 15:26

Re: Wort oder Satz in Memo finden und ersetzen
 
Hi,

du koenntest auch einen TReplaceDialog nehmen und auf die Form ziehen!

taktaky 11. Sep 2007 15:27

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.

Klaus01 11. Sep 2007 15:31

Re: Wort oder Satz in Memo finden und ersetzen
 
Zitat:

Zitat von taktaky
Delphi-Quellcode:

Memo2.Lines[10]:=loadfromfile('link'); //geht leider nicht, error
Memo2.line10.add(loadfromfile('link')); // geht auch nicht
was ist Falsch?


loadfromFile ist eine Methode von TStringList, TMemo, TListView ... und liefert
eine StringList zurück.
Memo2.lines[10] ist aber "nur" ein String.
LoadFromFile gibt es nicht als eigenständige Routine, sie ist immer mit einem Object/Klasse verbunden.

Um auf Deine Frage was falsch ist zurückzukommen.
- Falsch ist Deine Herangehensweise
- Deine Ignoranz sich in das Thema einzuarbeiten,
- Dich zu weigern einmal einen Blick in die DelphiHilfe zu riskieren - man könnte ja etwas lernen.


Einen schönen Tag noch.

Grüße
Klaus

Zacherl 11. Sep 2007 16:16

Re: Wort oder Satz in Memo finden und ersetzen
 
@taktaky: Du verstehst mal wieder überhaupt nichts .. komplett 0 nihil, nil, NULL, nothing .. was weiß ich ..
Ich rate dir nocheinmal .. diesmal zum letzten Mal bevor ich weitere Beiträge dieser Art von dir ignoriere, dass du dir die Basics anschaust. Dann kannst du den Code auch verstehen und nicht nur Copy und Paste "Programme" schreiben. In diesem Sinne ..

Klaus01 11. Sep 2007 17:19

Re: Wort oder Satz in Memo finden und ersetzen
 
Zitat:

Zitat von taktaky
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.

Hier hilft (vielleicht) ein Blick hier hinein. Die Lösung zu dem Problem findest Du gegen Ende der Seite.

Grüße
Klaus

taktaky 11. Sep 2007 17:21

Re: Wort oder Satz in Memo finden und ersetzen
 
Zitat:

Zitat von Zacherl
@taktaky: Du verstehst mal wieder überhaupt nichts ..

Es wäre nett wenn du hilfst, bist aber nicht verpflichtet.
Delphi-Quellcode:
Lernen von Büchern und Fragen in Foren finde ich besser // oder

Die Muhkuh 11. Sep 2007 17:32

Re: Wort oder Satz in Memo finden und ersetzen
 
Zitat:

Zitat von taktaky
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.

Sorry, aber sowas zu posten ist einfach nur eine Frechheit!!! :grummel:

Warum nichts passiert ist ja sowas von klar!!!

Du initialisiert die Variablen "blabla" und "hallohallo" gar nicht mit irgendeinem Text.

Kümmer Dich endlich mal SELBST um etwas und lass und nicht die Scheiß-Arbeit erledigen, die sowieso über die Forensuche zu finden ist.

Wie sagte unsere IT-Lehrer heute: Wenn man keine Lust hat, etwas zu lernen, lernt man auch nichts. Und ich denke, dass DU gar keine Lust hast

*Kragenplatz*

taktaky 11. Sep 2007 17:40

Re: Wort oder Satz in Memo finden und ersetzen
 
Zitat:

Zitat von Mackhack
Hi,

du koenntest auch einen TReplaceDialog nehmen und auf die Form ziehen!

wie?

also was Nils_13 meint. Der alte Link ist nicht bekannt, deswegen
habe ich den Link extra auf eine Zeile angelegt, damit ich den alten ändern kann, indem ich die
Zeile, wo der Link ist komplett ändere (Zeile 11).
http://members.lycos.co.uk/forforums...-ersetzen3.jpg

Gruß

DeddyH 11. Sep 2007 17:43

Re: Wort oder Satz in Memo finden und ersetzen
 
[OT] Immerhin ist seine Beharrlichkeit bewundernswert. In anderen Foren macht sich auch schon ein gewisser Unmut breit, das reicht von Spott bis Ignorieren. Ich werde jedenfalls meine Antworten auf das Allernötigste beschränken (siehe #2), sofern ich mich dazu herablasse. [/OT]

@taktaky: Schau mal z.B. bei Wikipedia nach Begriffen wie Struktogramm und Schreibtischtest und setz Dich damit auseinander, bevor Du die erste Zeile Quelltext schreibst. Die meisten Deiner Probleme wären so zu lösen. Wenn Du dann den entsprechenden Befehl nicht kennst, wird man Dir gerne weiterhelfen, aber von nix kommt nix.

Mackhack 11. Sep 2007 18:26

Re: Wort oder Satz in Memo finden und ersetzen
 
Zitat:

Zitat von taktaky
Zitat:

Zitat von Mackhack
Hi,

du koenntest auch einen TReplaceDialog nehmen und auf die Form ziehen!

wie?

Das ist jetzt nicht dein Ernst oder?

Wie waere es mit in die IDE gehen, Reiter oder Tab genannt Namens Dialog suchen, auf den ReplaceDialog klicken Mauscursor zurueck auf die Form bewegen (aber absolute Vorsicht - nicht zu sehr deinen Kopf oder Koerper bewegen - koennte in Arbeit ausarten :???: ) dann nochmals mit der linken Maustaste auf die Form klicken und schwupps isser da! :twisted:

pstruh 11. Sep 2007 18:42

Re: Wort oder Satz in Memo finden und ersetzen
 
Ich verfolge die interessanten Essays des "Kollegen taktaky" jetzt schon einige Zeit. Da muss ich mich spontan und allen Ernstes fragen, ob wir hier im Forum so etwas wie eine "versteckte Kamera" haben und sich im Hintergrund einer ganz gehörig über die Antwortenden lustig macht??!! Wir fabrizieren hier ja mehr oder weniger alle 'ne Menge Stilblüten und Rechtschreibfehler (ich ja auch, zugegeben!!!) aber was da so aktuell zusammen kommt - das ist schon echt lustig! Was im Himmel ist denn eine "moemische Idee" .... hihihihi
Gruß

taktaky 11. Sep 2007 18:57

Re: Wort oder Satz in Memo finden und ersetzen
 
Zitat:

Zitat von pstruh
Ich verfolge die interessanten Essays des "Kollegen taktaky" jetzt schon einige Zeit. Da muss ich mich spontan und allen Ernstes fragen, ob wir hier im Forum so etwas wie eine "versteckte Kamera" haben und sich im Hintergrund einer ganz gehörig über die Antwortenden lustig macht??!! Wir fabrizieren hier ja mehr oder weniger alle 'ne Menge Stilblüten und Rechtschreibfehler (ich ja auch, zugegeben!!!) aber was da so aktuell zusammen kommt - das ist schon echt lustig! Was im Himmel ist denn eine "moemische Idee" .... hihihihi
Gruß

Wie ich sehe, Du bis noch neu in diesem Forum und schon ANGEFANGEN mit bla :lol: bla :mrgreen:

Es wäre auch natt ewnn dU MEINA OEFFENA fRAG HELFSD :mrgreen:

taktaky 11. Sep 2007 19:00

Re: Wort oder Satz in Memo finden und ersetzen
 
Zitat:

Zitat von Mackhack
... schwupps isser da! :twisted:

Und? Das geht nicht um das Symbol auf das Form zu bringen sondern um mein Problem zu lösen :mrgreen:
Delphi-Quellcode:
 _____    _____    _   _   _____   _____ 
/  ___| |  _  \  | | | | /  ___/ /  ___/ 
| |     | |_| |  | | | | | |___  | |___ 
| |  _  |  _  /  | | | | \___  \ \___  \ 
| |_| | | | \ \  | |_| |  ___| |  ___| | 
\_____/ |_|  \_\ \_____/ /_____/ /_____/

DeddyH 11. Sep 2007 19:12

Re: Wort oder Satz in Memo finden und ersetzen
 
RTFM!! 2 Eigenschaften von TReplaceDialog sind FindText und ReplaceText, nun rate mal, wozu die da sind.

Die Muhkuh 11. Sep 2007 19:13

Re: Wort oder Satz in Memo finden und ersetzen
 
Zitat:

Zitat von DeddyH
RTFM!! 2 Eigenschaften von TReplaceDialog sind FindText und ReplaceText, nun rate mal, wozu die da sind.

Damit er noch mehr zum ignorieren hat :mrgreen:

Nuclear-Ping 11. Sep 2007 20:13

Re: Wort oder Satz in Memo finden und ersetzen
 
[OT]
Ich hab mir ja auch vorgenommen, ihn zu ignorieren und zu hoffen, dass er hier sein Lager bald wieder abbricht und zum nächsten Forum weiterzieht. Aber was er manchmal für Dinger raushaut, grenzt schon an Surrealismus.

Taktaky, wenn Bequemlichkeit und Selbstgefälligkeit weh tun würde, du würdest Tag und Nacht schreien! :wall:

Kommst du dir nicht langsam selber bisschen komisch vor, Community für Community abzuklappern und diese solange zu melken, bis du keine Antworten mehr erhältst? Oder sich irgendwelche Leute finden, die dich noch nicht "kennen" und dir in ihrer Naivität und Gutmütigkeit ausversehen ein weiteres Code-Fragment liefern, das du durch Copy & Paste in "dein" "Programm" einbaust, ohne den Sinn dahinter zu verstehen? Und selbst das scheitert bei dir, wie man des öfteren mitbekommt - aus genanntem Grund.

Naja, gute Besserung. :cheers:
[/OT]

Mackhack 11. Sep 2007 20:31

Re: Wort oder Satz in Memo finden und ersetzen
 
Zitat:

Zitat von taktaky
Zitat:

Zitat von Mackhack
... schwupps isser da! :twisted:

Und? Das geht nicht um das Symbol auf das Form zu bringen sondern um mein Problem zu lösen :mrgreen:
Delphi-Quellcode:
 _____    _____    _   _   _____   _____ 
/  ___| |  _  \  | | | | /  ___/ /  ___/ 
| |     | |_| |  | | | | | |___  | |___ 
| |  _  |  _  /  | | | | \___  \ \___  \ 
| |_| | | | \ \  | |_| |  ___| |  ___| | 
\_____/ |_|  \_\ \_____/ /_____/ /_____/

Wo um alles in der gutmuetigen Welt hast du denn geschrieben oder erwaehnt dass du wissen wolltest mit dem einzelnen deutschen Wort "wie" wie man mit der Kompo arbeitet?

Leider sind Glaskugeln z. Zt. im Urlaub oder schlicht nicht erreichbar!


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:29 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