Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Stringgrid durchsuchen (https://www.delphipraxis.net/84896-stringgrid-durchsuchen.html)

twospirit 23. Jan 2007 13:15


Stringgrid durchsuchen
 
Hallo,

habe eine Tabelle im Hintergrund als eine Art Datenbank laufen, mit folgenden Strings als Inhalt:

000001,"AMD Athlon 3000+","129,54",4,
000002,"AMD Athlon 3200+","145,72",4,
000002,"Intel Pentium 4","187,37",4,
000004,"Asus K8N-E","30,71",4,
000005,"Asus K8N","20,61",4,

Ich habe ein Editfeld wo ich zb. Athlon eingebe, dann soll die Strinngrid durch suchen und alle Ergebnisse mit Athlon in eine neue Stringgrid anzeigen.
Doch weis ich jetzt nicht wie ich es machen soll das er dann auch AMD Athlon 3000+ und den AMD Athlon 3200+ anzeigt.


MfG Spirit

Klaus01 23. Jan 2007 13:39

Re: Stringgrid durchsuchen
 
Grüß Dich,

Du kannst dann das ganze StringGrid durchsuchen, so etwa in der Art:

Delphi-Quellcode:
for i:=0 to StringGrid1.rowCount -1 do
  if pos(StringGrid1.rows[i],'suchBegriff') <> 0 then
    //Reihe mit Suchbegriff gefunden
Wobei man nicht unbedingt bei 0 anfangen sollte zu suchen, sonder erst ab FixedRow (Headerüberschrift).

Grüße
Klaus

marabu 23. Jan 2007 13:48

Re: Stringgrid durchsuchen
 
Hallo,

hier noch ein Link auf einen anderen thread zum gleichen Thema: klick

Freundliche Grüße

twospirit 23. Jan 2007 15:30

Re: Stringgrid durchsuchen
 
Hallo,

ich habe das von Klaus01 mal versucht irgendwie mag er nicht das machen :)
Das in dem anderen Thread hab ich gar net durch geblickt :gruebel:

Formuliere ich es nochmal was ich genau will:

Ich hab eine Stringgrid voll mit Strings, einige beinhalten mehrere Wörter, ich suche nur nach ein einziges Wort in dieser Stringgrid und wenn es jetzt das Wort innerhalb der mehreren Wörtern ist, soll er es trozdem finden können und diese ganze Zeile in eine andere Stringgrid kopieren.


MfG twoSpirit

Klaus01 23. Jan 2007 15:35

Re: Stringgrid durchsuchen
 
Hallo twospirit,

Delphi-Quellcode:
for i:=0 to StringGrid1.rowCount -1 do
  if pos(Edit1.Text,StringGrid1.rows[i]) <> 0 then  // war mein Fehler habe die beiden Felder vertauscht.
    showMessage(Edit1.Text+' wurde in Zeile'+intToStr(i)+'gefunden');
Entschuldige den Fehler.

Grüße
Klaus

sirius 23. Jan 2007 15:43

Re: Stringgrid durchsuchen
 
Delphi-Quellcode:
var i:integer;
    anz:integer;
begin
  anz:=-1;
  stringgrid2.RowCount:=anz+1;
  for i:=0 to stringgrid1.RowCount-1 do
    if pos(lowercase(edit1.text),lowercase(stringgrid1.rows[i].text))>0 then begin
      inc(anz);
      stringgrid2.RowCount:=anz+1;
      stringgrid2.Rows[anz].Assign(stringgrid1.rows[i]);
  end;
end;

twospirit 23. Jan 2007 15:53

Re: Stringgrid durchsuchen
 
Hallo,

hm bei Klaus's lösung sagt er mir bei:

if pos(Edit1.Text,StringGrid1.rows[i]) <> 0 then

[Fehler] Unit1.pas(220): Inkompatible Typen

Die Lösung von Sirius funktioniert perfekt.

Ich danke euch für eure Hilfe.

MfG twoSpirit


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