Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi String aus einem Set von Strings (https://www.delphipraxis.net/20335-string-aus-einem-set-von-strings.html)

rbest 16. Apr 2004 08:13


String aus einem Set von Strings
 
Hi Kollegen,
gibt es eine Funktion, die ermittelt, ob ein (Such-)string identisch ist mit einer (Parameter-)Liste von strings? Ein Beispiel:

llFound := inlist('searchfor', 'str1','str2','str3');

Danke für alle Hinweise, die zur Benutzung einer solchen Funktion führen :)

s14 16. Apr 2004 08:18

Re: String aus einem Set von Strings
 
Hallo rbest
mir fallen da zwei Möglichkeiten ein

1. TStringList, mit IndexOf vergleichen
2. Array of String, es muss dann aber jeder String mit der Funktion Compare verglichen werden

Gruß
s14

Sharky 16. Apr 2004 08:19

Re: String aus einem Set von Strings
 
Hai rbest,

meinst Du so etwas:
Delphi-Quellcode:
function inlist (search : String ; values : Array of String) : Boolean;
var
  ndx : Integer;
begin
 result := False;
 for ndx := low(values) to high(values) do
 begin
   if search = values[ndx] then
   begin
     result := True;
     exit;
   end;
 end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  if inlist('Sharky', ['Katze','Tiger','Sharky']) then
  begin
    ShowMessage ('gefunden');
  end
  else
  begin
    ShowMessage ('nicht gefunden');
  end;
end;

rbest 16. Apr 2004 08:48

Re: String aus einem Set von Strings
 
könnte fast nicht perfekter sein. :-D
Schönes Wochenende dann.

Codewalker 5. Dez 2011 12:29

AW: String aus einem Set von Strings
 
*Thread entstaub*

Für alle, die das gleiche Problem haben und lieber eine Delphi-eigene Funktion nutzen möchten:

Delphi-Quellcode:
uses StrUtils

{...}
procedure TForm1.Button1Click(Sender: TObject);
begin
  if (IndexText('Sharky', ['Katze','Tiger','Sharky']) <> -1) then
  begin
    ShowMessage ('gefunden');
  end
  else
  begin
    ShowMessage ('nicht gefunden');
  end;
end;
Wer Groß-/Kleinschreibung beachten will kann stattdessen
Delphi-Quellcode:
IndexStr
verwenden

Graf Gustav 28. Okt 2023 13:08

AW: String aus einem Set von Strings
 
... es konnte also doch perfekter sein :lol: danke

Uwe Raabe 28. Okt 2023 13:35

AW: String aus einem Set von Strings
 
Wenn schon perfekt, warum dann
Delphi-Quellcode:
IndexText(...) <> -1
und nicht gleich
Delphi-Quellcode:
MatchText(...)
?

himitsu 28. Okt 2023 14:30

AW: String aus einem Set von Strings
 
Wenn case-insensitive nicht wichtig ist, dann hier ebenfalls mit Str anstatt Text.

Ist das Array auch noch sortiert und es soll schnell gehn, dann mit TArray.BinarySearch<string>


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