Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Memo --> bestimmtes Wort löschen (https://www.delphipraxis.net/56467-memo-bestimmtes-wort-loeschen.html)

Chrissi91 6. Nov 2005 12:15


Memo --> bestimmtes Wort löschen
 
Ich möchte gerne in einer If - Abfrage abfragen, ob ein bestimmtes Wort enthalten, wenn ja soll er dieses löschen.

Wie folgt wollte ich vorgehen, bis ich irgendwann stutzte und mir die Ideen ausgingen ;)

Delphi-Quellcode:
for i:=1 to length(memo1.text) do
 begin
  if copy(memo1.Text,i,5) <> 'Hallo' then
   begin
    //Hier bin ich stehen geblieben ... Wie lösche ich nun das Wort?
   end;
 end;
Noch etwas: Im Memotext stehen die als "Text" also zum Beispiel:

Hallo ... bla bla ... jkdfdjif ... Hallo ... blabla ... fneijf ... Bla Bla ...

Dann soll das rauskommen und ins selbe Memo übertragen werde (also ersetzt werden ;))

... bla bla ... jkdfdjif ... ... blabla ... fneijf ... Bla Bla ...

Hoffentlich kann mir jemand helfen ;)

Danke schon im Vorraus!

MrKnogge 6. Nov 2005 12:18

Re: Memo --> bestimmtes Wort löschen
 
Probier's doch mal mit
Delphi-Quellcode:
delete
:stupid:

Helmi 6. Nov 2005 12:19

Re: Memo --> bestimmtes Wort löschen
 
hallo

mach halt das:

Delphi-Quellcode:
  Memo1.Text := StringReplace(Memo1.Text, 'hallo', '', [rfReplaceAll]);
so wird jedes Wort "hallo" durch nix ersetzt.

Chrissi91 6. Nov 2005 12:27

Re: Memo --> bestimmtes Wort löschen
 
Danke ... Mit delete habe ich es auch schon versucht, aber hab ich net auf die Reihe bekommen :duck: dann nehme ich mal die Replacemethode

danke

Helmi 6. Nov 2005 12:39

Re: Memo --> bestimmtes Wort löschen
 
ich hab mal ein wenig weiter gemacht, wenn du ne schleife verwenden willst, vielleicht hilft dir das:

Delphi-Quellcode:
uses
  StrUtils;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Memo1.Text := 'Hallo ... bla bla ... jkdfdjif ... Hallo ... blabla ... fneijf ... Bla Bla ...';

end;

procedure TForm1.Button1Click(Sender: TObject);
const
  Search_Text = 'Hallo';

var
  i: Integer;
  Position: Integer;
  S: String;

begin
  Position := 1;
  S        := Memo1.Text;

  for i := 1 to length(S) do
    begin
      Position := PosEx(Search_Text, S, Position);

      Delete(S, Position, length(Search_Text));
    end;

  Memo1.Text := S;
end;

malo 6. Nov 2005 14:08

Re: Memo --> bestimmtes Wort löschen
 
Grundsätzlich würde ich zum Suchen von Strings die Funktion Delphi-Referenz durchsuchenPos bzw. Delphi-Referenz durchsuchenPosEx, bzw. PosExPosEx (PosEx ist imho erst mit D6 oder D7 dazugekommen, deshalb haben das nicht alle) ;)

Das nur so am Rande :)

Airblader 6. Nov 2005 14:36

Re: Memo --> bestimmtes Wort löschen
 
Zitat:

Zitat von Chrissi91
Wie folgt wollte ich vorgehen, bis ich irgendwann stutzte und mir die Ideen ausgingen ;)

Delphi-Quellcode:
for i:=1 to length(memo1.text) do
 begin
  if copy(memo1.Text,i,5) <> 'Hallo' then
   begin
    //Hier bin ich stehen geblieben ... Wie lösche ich nun das Wort?
   end;
 end;

Und da hast du keine Fehlermeldung bekommen? :gruebel:
Du darfst eig. nur bis Length(Memo1.Text)-5 gehen, da du im Copy ja noch +5 machst :)

Mal abgesehen davon, dass die Methode nicht sonderlich gut ist ;) (Wurde ja gesagt)

air

MrKnogge 6. Nov 2005 14:39

Re: Memo --> bestimmtes Wort löschen
 
@Airblader
Du weist nicht ganz was copy macht oder ?

marabu 6. Nov 2005 16:21

Re: Memo --> bestimmtes Wort löschen
 
Hallo Leute,

was soll denn nun gelöscht werden - ein Wort oder ein string? Wörter zeichnen sich gegenüber strings dadurch aus, dass bestimmte Bedingungen an das Zeichen davor und danach geknüpft sind. Eure Vorschläge zielen alle auf strings, eingangs wurde aber nach Wörtern gefragt...

Grüße vom marabu

Chrissi91 6. Nov 2005 16:49

Re: Memo --> bestimmtes Wort löschen
 
Also letztendlich habe ich mit dem Replace befehl html tags aus einem memo entfernt, in das ich die shoutbox eingelesen habe ... ich versuche das sozusaen nachzumachen mit der shoutbox ...

wie kann ich denn ein einzelnes wort fett schreiben?also mit der replace methode soll Hallo entfernt werden und ein fettes A geschreiben werden, als beispiel.

geht das?


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:30 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz