Как интелигентно да организирате търсения в StringGrid

Майстори, моля, помогнете (с код или алгоритъм) как да организирате буквално търсене в StringGrid?

N Име Тип N карта
1 Иванов Иван Иванович Личен 1234
2 Петров Петър Петрович VSD 0042
3 Сиборов Сидр Сидорович Личен 0036

Търси низове във формуляра:

Пълно име: ___________
Тип: ______________________________
Карта N: __________________________

Имам нужда от това, което бих въвел в търсенето, да речем: Фамилия и тип, а програмата трябва да запише всичко, което намери, във файл!

Пример 2:
Фамилия: Петров Име и бащино име: ________
Тип: __________________________
N карти: 00

резултатът, който трябва да бъде:
2 Петров Петър Петрович VSD 0042
3 Сиборов Сидр Сидорович Личен 0036

Помощ, счупих си цялата глава!:(

Откъде идват данните за мрежата?
Ако от база данни, тогава трябва да търсите в нея (TQuery.SQL), а не в мрежата.

Въпросът е: данните се вземат от файл, въвеждат се в StringGrid и аз искам да изведа резултата в нов String.
Тук!

със StringGrid правя
за R: = 1 към RowCount - 1 do
if ((Length (EditFio.Text) = 0) или (Pos (EditFio.Text, Cells [2, R])> 0))
и ((Дължина (EditCard.Text) = 0) или (Pos (EditCard.Text, клетки [4, R])> 0))
тогава
. // добавяне към друга решетка

със StringGrid правя
за R: = 1 към RowCount - 1 do
if ((Length (EditFio.Text) = 0) или (Pos (EditFio.Text, Cells [2, R])> 0))
и ((Дължина (EditCard.Text) = 0) или (Pos (EditCard.Text, клетки [4, R]) = 1))