![]() |
Suchalgorithmus
Hallo ich habe ein Problem mit meinem Suchalgorithmus, der lautet:
Delphi-Quellcode:
Kann mir mal einer erzählen warum das nicht geht? Denn ich muss eine Spalte weiter gehen sonst sucht er nicht weiter.
procedure TForm1.FindDialog1Find(Sender: TObject);
var x,i: Integer; begin for i:=adressbuch.Row to adressbuch.RowCount -1 do begin for x:=0 to 16 do begin if adressbuch.cells[x,i] = FindDialog1.FindText then begin adressbuch.Row := i; Inc(x); hier kommt der Fehler//[Error] form.pas(920): Assignment to FOR-Loop variable 'x' exit; end; end; end; End; Danke |
Re: Suchalgorithmus
Eigentlich recht einfach. Du darfst Schleifenzählervariablen innerhalb der Schleife nicht manipulieren. ;-) Das ist eine der Einschränkungen des Sprache.
...:cat:... |
Re: Suchalgorithmus
Du zählst x doch schon mit der for-Anweisung hoch. Warum willst du das noch mal innerhalb der Schleife machen?
|
Re: Suchalgorithmus
Tja da kann man nichts machen. Warum ich das machen möchte, ist ganz einfach.
Ich durchsuche ein StrinGrid und ich möchte beim erstem Suchtreffer danach auch weiterzsuchen können. Wenn er nicht eins weiter zählt, bleibt er auf der Zelle stehen und man kann nicht weitersuchen. Das ist alles. Vielleicht kann mir ja einer mal sagen wie ich das realisieren könnte.
Code:
Ziel: ich muss irgendwie eine Zelle weiter rücken in der inner for-Schleife dann würde es gehen, aber ich weiß halt nicht wie, wenn das Inkremtieren nicht geht.
Basis: 1. einen Suchtext suchen
2. wenn ein Treffer da ist wird die Zeile selektiert 3. bei erneutem Klicken auf den Weitersuchen Button soll er weitersuchen bis zum Ende Jetzt seit ihr wieder dran. Danke |
Re: Suchalgorithmus
Niemand zwingt Dich, for zu nutzen. Nimm statt dessen doch eine While-Schleife, wo Du x manuell hoch zählst. Da darfst Du x beeinflußen.
|
Re: Suchalgorithmus
Hier mal die Umsetzung als while Schleife (nicht getestet).
Delphi-Quellcode:
Gruß
x := 0;
while x <= 16 do begin if adressbuch.cells[x,i] = FindDialog1.FindText then begin adressbuch.Row := i; inc(x); end; inc(x); end; |
Re: Suchalgorithmus
Danke
auf die einfachsten Sachen kommt man nicht. Tunnelblick. Schönen Tag noch. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:37 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