Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi String durchsuchen??? (https://www.delphipraxis.net/44277-string-durchsuchen.html)

romber 16. Apr 2005 18:02


String durchsuchen???
 
Hallo!

Ich möchte einen Memo-Feld auf mehrere Strings durchsuchen und zwar so, daß man in eine TEdit-Feld kommagetrennt mehrere Wörter eingibt und dann auf "Suchen" klickt. Wenn wenigstens ein Wort davon im Memo vorkommt, wird eine bestimmte Erreignis ausgrführt. Hört sich relativ einfach an, mann trennt die Strings, dann kann mann ja immer if..or..then verwenden wenn man genau weiß, auf wieviele Wörter durchgesucht werden soll

Delphi-Quellcode:
...
if (pos('Wort1', Memo1.Text) > 0) or (pos('Wort2', Memo.Text) > 0) or (pos('Wort3', Memo.Text) > 0) or ... then
//Irgendwas machen
Aber wie definiere ich das, wenn ich nicht weiß, auf wieviele String durchgesucht werden soll? Wie würdet ihr das machen?

Dax 16. Apr 2005 18:06

Re: String durchsuchen???
 
Delphi-Quellcode:
function Search(Source, Words: string): Boolean;
var
  strings: array of String;
  i: Integer;
begin
  Result := false;
  strings := (Words trennen);
  for i := 0 to High(strings) do
  begin
    Result := Result or (Pos(strings[i], Source) <> 0);
    if Result then Break;
  end;
end;
Untested
edit: Ein wenig verschnelltert

romber 16. Apr 2005 18:10

Re: String durchsuchen???
 
Wow, das ist aber eine Blitz-Reaktion! Danke!

Zitat:

Zitat von Dax
Delphi-Quellcode:
function Search(Source, Words: string): Boolean;
...
strings := (Words trennen);
...

Hier eifach durch Komma getrennte Strings eingeben oder wie?

Dax 16. Apr 2005 18:28

Re: String durchsuchen???
 
Du kannst Words als auch array of string deklarieren und gleich deine ganzen Wörter übergeben. Wenn du's aber so lässt, musst du den Words-String erst noch trennen, z.B. mit ExplodeExplode.

romber 16. Apr 2005 20:59

Re: String durchsuchen???
 
Danke! Es klappt!


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:09 Uhr.

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