Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Suchfunktion <> Listbox ? (https://www.delphipraxis.net/52810-suchfunktion-listbox.html)

Vader 6. Sep 2005 11:04

Re: Suchfunktion <> Listbox ?
 
hallo marabu,

das check ich nicht mit "InputQuery()"

? // dein Code für die Suche nach searchText usw...... ?

mfg vader

marabu 6. Sep 2005 12:05

Re: Suchfunktion <> Listbox ?
 
Im einfachsten Fall dann so:

Delphi-Quellcode:
procedure TForm1.SearchButtonClick(Sender: TObject);
var
  searchText: string;
begin
  searchText := '42'; // Initialisierung
  if InputQuery('Suchen nach', 'Suchtext', searchText) and (searchText <> '') then begin
    MarkFirstLine(ListBox1, searchText);
  end;
end;
marabu

alexkoe 10. Mär 2006 09:23

Re: Suchfunktion <> Listbox ?
 
hallo
das funktioniert zwar mit dem pos aber der findet bei uns nur den eintrag aus zeile 1.
woran könnte das liegen?

mfg alex

mkinzler 10. Mär 2006 10:11

Re: Suchfunktion <> Listbox ?
 
Pos liefert die Position der ersten Fundstelle zurück . Verwende PosEx um die Suche an dieser Stelle als Offset fortzusetzten.

himitsu 10. Mär 2006 10:29

Re: Suchfunktion <> Listbox ?
 
Zitat:

Zitat von mkinzler
Verwende PosEx um die Suche an dieser Stelle als Offset fortzusetzten.

An der Stelle danach, ;)
denn PosEx sucht ab dem Index, welcher angegeben wird
und wenn man den Index angibt, wo vorher was gefunden wurde,
dann findet PosEx ja immer wieder das Alte und nicht das danach.

Code:
i := Pos(Wort, ListBox.Items[i]);
While i > 0 do Begin
  ... // i = Index des Gefundenen
  i := PosEx(Wort, ListBox.Items[i], i [b]+ 1[/b]);
End;

marabu 10. Mär 2006 11:44

Re: Suchfunktion <> Listbox ?
 
Beitrag #23 war vermutlich ein Irrläufer - aber trotzdem:

Delphi-Quellcode:
function FindCount(s: TStrings; const subStr: String): Integer;
var
  i, iPos: Integer;
begin
  Result := 0;
  for i := 0 to Pred(s.Count) do
  begin
    iPos := Pos(subStr, s[i]);
    while iPos > 0 do
    begin
      Inc(Result);
      iPos := PosEx(subStr, s[i], iPos + Length(subStr));
    end;
  end;
end;
Grüße vom marabu

himitsu 10. Mär 2006 15:48

Re: Suchfunktion <> Listbox ?
 
Na, um die Codes noch zu vervollständigen ... mit dem aus der CodeLib und .Text geht's och :mrgreen:

Code-Library -> Object-Pascal / Delphi-Language > (Teil)String in anderem String suchen/zählen > CountString


Delphi-Quellcode:
Anzahl := CountString(searchText, StringList.Text);


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:47 Uhr.
Seite 3 von 3     123   

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