Entwickler-Ecke

Sonstiges (Delphi) - Suchfunktion


luckyluc - Fr 30.10.09 20:47
Titel: Suchfunktion
hallo!
folgender quelltext soll das suchwort k in der tabelle finden und ausgeben. nur ist dem leider nicht so.
danke im voraus für eure hilfe!

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
k:= label1.Caption;
while not eof (datei) do
 begin
  read (datei, schueler);
  StringGrid1.Cells[1,m] := Schueler.Hausnummer; // geht alle datensätze durch
  inc (i);
 end;
if StringGrid1.Cells[1,m] = k then Edit1.Text:=k


Dude566 - Fr 30.10.09 20:53

Ich sehe da auch nichts was die Datensätze durchsucht.


luckyluc - Fr 30.10.09 20:58

ich dachte mir das das reichen würde wenn man die einmal durchgeht und dann prüft mit if-schleife ob das ges. wort enthalten ist. wie müsste ich es denn anders machen?


thepaine91 - Fr 30.10.09 20:58

1x schon mal

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
while not eof (datei) do
 begin
  read (datei, schueler);
  StringGrid1.Cells[1,m] := Schueler.Hausnummer; // geht alle datensätze durch
  inc (i);
  if StringGrid1.Cells[1,m] = k then Edit1.Text:=k  // macht mehr sinn^^
 end;

und i wird erhöht aber nicht verwendet? Da stimmt eigentlich einiges nicht...


luckyluc - Fr 30.10.09 21:03

ups ja klar, das i muss ich durch m ersetzten, den das muss ja erhöht werden.


Xentar - Fr 30.10.09 21:08

Und ganz nebenbei:
http://www.if-schleife.de/


luckyluc - Fr 30.10.09 21:13

:lol: nur funzen tut immer noch nichts ;alles umsonst :(


Lannes - Sa 31.10.09 00:25

Hallo,

was funzt denn nicht
- kein Such-Ergebnis?
- läßt sich nicht kompilieren?
- Zugriffsverletzung?
- geht das Licht aus?
- klemmt die Tastatur?
- etc.

und wie sieht Dein Code jetzt aus?


jaenicke - Sa 31.10.09 11:28

Also ich fasse einmal den Quelltext zusammen: Du gehst die Datei durch. Du legst die Hausnummer in das StringGrid (wozu?). Dann nimmst du die Hausnummer wieder aus dem StringGrid, vergleichst diese mit k und packst k in dein Edit, wenn beides übereinstimmt.

Was passiert also? Alle Hausnummern kommen ins StringGrid (soll das die Fortschrittsanzeige sein? :gruebel:) und wenn die gesuchte Hausnummer vorkommt, wird diese Hausnummer in das Edit gelegt.

Ist das wirklich das was du machen willst? Das macht irgendwie kaum Sinn, wenn du nicht einen anderen als den gesuchten Wert anzeigst, denn diesen kennst du ja schon, danach hast du ja gesucht...


luckyluc - Sa 31.10.09 17:37

also mein akt. quelltext lautet jetzt:

Delphi-Quelltext
1:
2:
3:
4:
5:
for k:= 0 to Grid.ColCount-1 do
for m:= 0 to Grid.ColCount-1 do
if StringGrid.Cells[k,m]=suchtwort then { Edit1.Text:= suchwort, das ist nur erstmal zur Kontrolle
da später soll das dann z.b. in der Tabelle eingéfärbt werden, doch dazu müsste es ertsmal 
funktioniernen. Mit diesem Quelltext gibt es zur zeit nichts aus,d.h. es wird nichts gefunden.}

vlt. könnt ihr noch einmal helfen


Lannes - Sa 31.10.09 20:16

Hallo,

user profile iconluckyluc hat folgendes geschrieben Zum zitierten Posting springen:
also mein akt. quelltext lautet jetzt:

Delphi-Quelltext
1:
2:
3:
4:
for k:= 0 to Grid.ColCount-1 do
for m:= 0 to Grid.ColCount-1 do
if StringGrid.Cells[k,m]=suchtwort then
  //...
fällt Dir was auf :wink: