выбор данных из Stringgrid'а

  • Автор темы Strug
  • Дата начала
Статус
Закрыто для дальнейших ответов.
S

Strug

Гость
#1
Может кто подскажет как сделать такую штуку:

в stringGrid считывается многостолбцовый файл, надо чтобы по введенным (выбранным, напр. из combox) пользовалелем условиям посчитались подходящие им строчки... напр.
пользователь ввел
а) col2<8 and col10>5 and col15<=10
b) col1>2 and col 6>=4 and col8>9
c).....
клик на кнопку и выводится a=... строк b=... строк c=...строк

проблема: не знаю как заставить программу понимать введенные условия((...

help...
 
B

Barmutik

Гость
#2
Ну надо самому парсить ведённые условия ... можно кончно использовать регулярные выражения .. но для такого узкого случая будет проще распарсить их руками....
 
S

Strug

Гость
#3
<!--QuoteBegin-Barmutik+6:03:2006, 11:06 -->
<span class="vbquote">(Barmutik @ 6:03:2006, 11:06 )</span><!--QuoteEBegin-->Ну надо самому парсить ведённые условия ... можно кончно использовать регулярные выражения .. но для такого узкого случая будет проще распарсить их руками....
[snapback]31483" rel="nofollow" target="_blank[/snapback]​
[/quote]
не очень понял про распарсить...
что понимается под "распарсить руками"?
 
B

Barmutik

Гость
#4
Ну от английского слова parse = парсить = разбирать... самому формат разбирать...
 
Z

zubr

Гость
#5
Вот что то типа того что тебе надо:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
i:Integer;
count_a, count_b, count_c:Integer;
begin
count_a:=0;
count_b:=0;
count_c:=0;
With StringGrid1 do
begin
For i:=0 to RowCount-1 do
begin
 try
 If (StrToInt(cols[2].Strings[i])<8) and (StrToInt(cols[10].Strings[i])0>5)
 and (StrToInt(cols[15].Strings[i])<=10) then
 inc(count_a);
 If (StrToInt(cols[1].Strings[i])>2) and (StrToInt(cols[6].Strings[i])0>=4)
 and (StrToInt(cols[8].Strings[i])>9) then
 inc(count_b);
 //............
 except
 ShowMessage('Неверный формат данных!!!');
 end;
end;
end;
ShowMessage('a='+IntToStr(count_a)+' строк, b='+IntToStr(count_b)+' строк');
end;
 
Статус
Закрыто для дальнейших ответов.