Witam,mam do was pytanie.
Nie potrafię wymyślić algorytmu na wybór tabeli(combobox-em) po której ma wykonać się procedura wyszukiwania liniowego.
Mam tablicę rekordów:
type baza =record
id:string[20];
imie:string[20];
nazwisko:string[20];
wiek:integer;
plec:string[20];
telefon:LongInt;
uczulony:string[20];
zeby:string[20];
zaplata:string[20];
data:string[20];
leczenie:string[200]
end;
Oraz kod do wyszukiwania liniowego osób ale tylko dla tabeli wiek,nie jestem w stanie wymyślić warunku dla sprawdzania innych tabel.
Czyli np wybiorę w comoboxie pozycje "Imie' i ma mi wyszukiwać osobę po tabeli 'imie'.
licznik:=0;
for i := 0 to Length(tab) - 1 do
if combobox3.caption='Wiek' then
begin
if edit11.Text=inttostr(tab[i].wiek) then
begin
licznik:=licznik+1;
StringGrid1.RowCount := StringGrid1.RowCount + 1;
StringGrid1.cells[0,licznik]:= tab[i].Id;
StringGrid1.cells[1,licznik]:= tab[i].imie;
StringGrid1.cells[2,licznik]:= tab[i].nazwisko;
StringGrid1.cells[3,licznik]:= IntToStr(tab[i].wiek);
StringGrid1.cells[4,licznik]:= tab[i].plec;
StringGrid1.cells[5,licznik]:= IntToStr(tab[i].telefon);
StringGrid1.cells[6,licznik]:= tab[i].uczulony;
StringGrid1.cells[7,licznik]:= tab[i].zaplata;
StringGrid1.cells[8,licznik]:= tab[i].data;
StringGrid1.cells[9,licznik]:= tab[i].leczenie;
end;
end;
Oczywiście mógłym zrobić kopiuj/wklej tego kodu i zamienić jedynie rekord tablicy który ma sprawdzać warunek,czyli np.
zamiast
if combobox3.caption='Wiek' then
zamienić na
if combobox3.caption='Imie' then
oraz
if edit11.Text=inttostr(tab[i].wiek)
zamienić na
if edit11.Text=inttostr(tab[i].Imie)
I tak dalej...dla wszystkich rekordów typu baza wklejając te kilkanaście linii kodu pod samą kilka razy,ale wierzę,że można uzyskać ten cel mniejszą ilością kodu.