![]() |
Suche nach Teilstring in einem Stringgrid
Guten Tag liebe Delphianer,
ich hab mal wieder ein 'Problem'! Ich hab ein Stringgrid und möchte diesesn durchsuchen, das 'Suchwort' ergibt sich aus einem Editfenster (Ich hab unnötigerweise aber dennoch eine Variable dafür eingeführt!), mein Problem besteht vor allem darin, dass ich auch nach Teilstrings suchen möchte und anschließend soll die gesamte Zeile in der das 'Suchwort' gefunden wurde markiert werden. Wie ich nach dem gesamten 'Suchwort' weiß ich:
Delphi-Quellcode:
aber mit dem Rest komm ich nicht weiter, da z.B. 'Pos' nur einen Integerwert ausgibt!
------------------------------------------------------------------------
procedure TFrKundenliste.cmdSucheClick(Sender: TObject); Var i,k : Integer; Suchbegriff : String; begin for i:=0 to Kundenliste.colcount-1 do for k:=0 to Kundenliste.rowcount-1 do if Kundenliste.Cells[k,i]=Suchbegriff then begin // Zeile markieren end; end; ------------------------------------------------------------------------ Ideen:?: Danke:!: |
AW: Suche nach Teilstring in einem Stringgrid
Pos() liefert dir die Position des Suchbegriffs innerhalb des zu durchsuchenden Strings.
|
AW: Suche nach Teilstring in einem Stringgrid
Naja, stimmt schon, nur es geht darum das in einer Zelle des Stringgrids mehrere Wörter (Durch Komma getrennt) stehen und der Zelleninhalt ja als EIN String zählt und deshalb nicht mit dem Suchwort übereinstimmt. Anschließend soll ja zu dieser Zeile gesprungen werden, ich weiß nicht ob mir Pos da weiterhilft!?
|
AW: Suche nach Teilstring in einem Stringgrid
Und eben deshalb sollst Du mit Pos() ermitteln, ob der Teilstring enthalten ist.
|
AW: Suche nach Teilstring in einem Stringgrid
String: "Der,Die,Das"
Suchstring: "Die" Pos(Suchstring, String) = 5 Suchstring: "Was" Pos(Suchstring, String) = 0 oder -1 |
AW: Suche nach Teilstring in einem Stringgrid
|
AW: Suche nach Teilstring in einem Stringgrid
Delphi-Quellcode:
...und wo definierst du den Suchbegriff ? :gruebel:
procedure TFrKundenliste.cmdSucheClick(Sender: TObject);
Var i,k : Integer; Suchbegriff : String; begin for i:=0 to Kundenliste.colcount-1 do for k:=0 to Kundenliste.rowcount-1 do if Kundenliste.Cells[k,i]=Suchbegriff then begin // Zeile markieren end; end; |
AW: Suche nach Teilstring in einem Stringgrid
Du hast Recht, ich hab vergessen 'Suchbegriff' zu definieren, es ist mir aber nicht aufgefallen, denn wenn ich etwas ins Edit eingebe, dann sagt er mir mit ShowMessage sogar ob dieser String vorhanden ist! Komisch!:gruebel:
Noch komischer ist, dass ich nachdem ich nun 'Suchbegriff' definiert hab keine korrekte Meldung über: String vorhanden(Ja/Nein), erhalte! |
AW: Suche nach Teilstring in einem Stringgrid
Zitat:
das einfachere, Du zeigst uns nochmal, was Du bisher geschrieben hast, denn so könnten wir höchstens raten, woran es liegt. |
AW: Suche nach Teilstring in einem Stringgrid
Delphi-Quellcode:
Function FindInGrid(G:TStringGrid;var StartPoint:TPoint;Const Search:String;Next:Boolean):Boolean; var R,C:Integer; begin Result := False; for r := 0 to G.RowCount - 1 do for C := 0 to G.ColCount - 1 do begin IF Pos(Search,G.Cells[C,R]) >0 then if (not next) or ((r*G.ColCount + C) > ( StartPoint.y * G.ColCount + StartPoint.x )) then begin Result := True; StartPoint.y := r; StartPoint.x := c; EXIT; end; end; end; procedure TForm2.Button1Click(Sender: TObject); var p:Tpoint; Next:Boolean; begin p.X := 0; p.Y := 0; Next := False; while FindInGrid(StringGrid1,p,'Hallo',Next) do begin Next := True; Showmessage(StringGrid1.Cells[p.X,p.y] + Format(' Col: %d, Row: %d', [p.X,p.y])) end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:22 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz