Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Umbedingt Hilfe Bei Stringsuche


benni1234 - Fr 30.01.15 10:40
Titel: Umbedingt Hilfe Bei Stringsuche
Ich stehe vor mir eine unlösbare aufgabe und brauche eure Hilfe,Ich habe eine stringsuche mit teilstrings in meinem code Eingebaut, ich weiß das immer bei einer string suche der erste gefundene string angezeigt wird.
Ist es möglich bei mehreren gefundenen Strings, alle gefundenen auszugeben ??


Gerd Kayser - Fr 30.01.15 10:46

user profile iconbenni1234 hat folgendes geschrieben Zum zitierten Posting springen:
Ist es möglich bei mehreren gefundenen Strings, alle gefundenen auszugeben ??

Mittels PosEx (Unit StrUtils). PosEx gibt den Index von SubStr in S zurück, wobei die Suche bei Offset begonnen wird. Wenn Offset 1 ist (Vorgabe), entspricht PosEx Pos. Einfach PosEx in einer Schleife verwenden (z. B. Repeat) und dabei den Offset anpassen.


benni1234 - Fr 30.01.15 10:53

wie binde ich den genau die unit ein ?

Moderiert von user profile iconNarses: Beiträge zusammengefasst

Hab schon :D wie genau spreche ich denn den offset an ?


OlafSt - Fr 30.01.15 11:00

man tippe "PosEx(" ein und warte einen Augenblick. Dann erscheint ein kleiner Tooltip, wo die nötigen Parameter beschrieben sind.

Lesen, verstehen, erleichtert aufatmen ;)


benni1234 - Fr 30.01.15 11:01

hmm

Moderiert von user profile iconNarses: Beiträge zusammengefasst


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
dbgrid1.DataSource.DataSet.RecNo:=i;
      daten[i-1] := adoquery1.Fieldbyname('Matchcode').AsString;

     end;

 {$Region'Festlegung'}
    // x:=suchen.Text;


    z:=0;
     x := UpperCase(suchen.Text);
    for i := 0 To 165 Do
      if posex(x, UpperCase(daten[i]),k) <> z  then
        begin


          dbgrid1.DataSource.DataSet.RecNo:=(i+1) ;

          {$Region'Visible'}

(....)

 {$Endregion}

          {$Region'Ausgabe'}

 (...)
  Auswertungskennzeichen.Text:=adoquery1.FieldByName('Auswertungskennzeichen').AsString;

          {$endregion}

          {$Region'IfVisible'}

  
  (...)

  {$endregion}

       end
       else

          begin
        end
  {$Endregion}

   end;


wenn ich den matchcode nun suche soll er mir nur die treffer anzeigen
hat jemand eine idee ?

Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt