Форум: "Основная";
Текущий архив: 2003.08.04;
Скачать: [xml.tar.bz2];
ВнизКак грамотно организовать поиск в StringGrid Найти похожие ветки
← →
[BAD]Angel (2003-07-22 12:31) [0]Мастера, помоги пожалуйста (кодом, либо алгоритмом), как граммотно организовать поиск в StringGrid"е?
Пример:
N ФИО Тип N карты
1 Иванов Иван Иванович Персональный 1234
2 Петров Петр Петрович ВСД 0042
3 Сиборов Сидр Сидорович Персональный 0036
Строки поиска на форме:
Фамилия: __________ Имя: _________ Отчество: ___________
Тип: ______________________________
N карты: __________________________
Мне надо, что бы я ввел в поиске, допустим: Фамилию и Тип, а мне прога должна записать в файл все, что нашла!
Пример 2:
Фамилия: Петров Имя: __________ Отчество: ________
Тип: __________________________
N карты: 00
результат, который должен быть:
2 Петров Петр Петрович ВСД 0042
3 Сиборов Сидр Сидорович Персональный 0036
Помогите, всю голову поломал! :(
← →
Sandman25 (2003-07-22 12:36) [1]Откуда берутся данные для грида?
Если из базы данных, то в ней и нужно искать (TQuery.SQL), а не в гриде.
← →
[BAD]Angel (2003-07-22 12:53) [2]дело такое: данные берутся из файла, заносяться в StringGrid, а результат я хочу вывести в новый String.
Вот!
← →
Sandman25 (2003-07-22 13:07) [3]
with StringGrid do
for R := 1 to RowCount - 1 do
if ((Length(EditFio.Text) = 0) or (Pos(EditFio.Text, Cells[2, R]) > 0))
and ((Length(EditCard.Text) = 0) or (Pos(EditCard.Text, Cells[4, R]) > 0))
then
...// добавление в другой грид
← →
Sandman25 (2003-07-22 13:08) [4]with StringGrid do
for R := 1 to RowCount - 1 do
if ((Length(EditFio.Text) = 0) or (Pos(EditFio.Text, Cells[2, R]) > 0))
and ((Length(EditCard.Text) = 0) or (Pos(EditCard.Text, Cells[4, R]) = 1))
then
...// добавление в другой грид
← →
[BAD]Angel (2003-07-22 13:16) [5]Не, погоди...
У меня 5 полей для поиска!
Фамилия
Имя
Отчество
Тип
Номер карты
Мне надо сделать поиск отдельно по ФАМИЛИИ ИМЕНИ ОТЧЕСТВУ, не связывая их вместе.
Я делаю так:
if Family.Text<>"" then begin
for i:=0 to form1.cards_owner.RowCount-1 do begin
e1:=copy(form1.cards_owner.cells[1,i], 1, length(Edit1.Text));
if Family.Text = e1 then begin
j:=j+1;
if j>0 then SResult.RowCount:=SResult.RowCount+1;
SResult.cells[0,j]:=form1.cards_owner.cells[0,i];
SResult.cells[1,j]:=form1.cards_owner.cells[1,i];
SResult.cells[2,j]:=form1.cards_owner.cells[2,i];
SResult.cells[3,j]:=form1.cards_owner.cells[3,i];
end;
end;
end;
это только для фамилии, по аналогии для остальных, но как связать всех их вместе? чтобы был правильный поиск!
← →
Sandman25 (2003-07-22 13:21) [6]
if ((Length(FamilyTxt) = 0) or (Pos(FamilyTxt, Cells[..]) = 1)) and ((Length(NameTxt) = 0) or (Pos(" "+NameTxt+" ", Cells[..]) > 0)) and ((Length(SurnameTxt) = 0) or (Pos(" "+SurnameTxt", Cells[..]) > 0)) then
← →
NDeu (2003-07-22 13:26) [7]or
← →
[BAD]Angel (2003-07-22 13:31) [8]NDeu >> чего OR?
Sandman25 >> а как все сразу сделать? это только для ФИО, а еще два поля, как привязать к поиску? (Тип и номер)
я не очень понимаю это условие, приведи примерчик ПЛЗ!
← →
Sandman25 (2003-07-22 13:33) [9]NDeu © (22.07.03 13:26)
Точно, а я и не заметил, что поиск немного нестандартный.
if (Pos(FamilyTxt, Cells[..]) = 1) or (Pos(" "+NameTxt+" ", Cells[..]) > 0) or (Pos(" "+SurnameTxt", Cells[..]) > 0) then
← →
Sandman25 (2003-07-22 13:34) [10]if (Pos(FamilyTxt, Cells[..]) = 1) or (Pos(" "+NameTxt+" ", Cells[..]) > 0) or (Pos(" "+SurnameTxt", Cells[..]) > 0)
or (Pos(TipTxt, Cells[..]) = 1) or (Pos(NomerTxt, Cells[..]) = 1)then
← →
[BAD]Angel (2003-07-22 13:36) [11]Это интересно!!! :) А теперь сожно словами?
Как понять (Pos(FamilyTxt, Cells[..]) = 1)?
← →
Sandman25 (2003-07-22 13:39) [12]Cells[..] начинается с FamilyTxt.
Pos("012","01234356") = 1
Pos("345","0123456") = 4
Pos("898","0123456") = 0
А вообще-то есть кнопка F1
← →
[BAD]Angel (2003-07-22 13:47) [13]ОГРОМНОЕ СПАСИБО!!!
А про кнопку F1 я знаю, но не очень понимаю! :)
Выручили...
← →
NickBat (2003-07-22 14:51) [14]а нафига, извините, засовывать данные из файла в таблицу, для того чтобы их там искать?
Не проще искать в файле и выводить сразу в файл. Ведь если засунули данные в таблицу, значит файл как-то структурирован.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.08.04;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.009 c