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

Тема в разделе "Delphi - Система", создана пользователем Strug, 6 мар 2006.

Статус темы:
Закрыта.
  1. Strug

    Strug Гость

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

    в 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...
     
  2. Barmutik

    Barmutik Гость

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

    Strug Гость

    <!--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]
    не очень понял про распарсить...
    что понимается под "распарсить руками"?
     
  4. Barmutik

    Barmutik Гость

    Ну от английского слова parse = парсить = разбирать... самому формат разбирать...
     
  5. zubr

    zubr Гость

    Вот что то типа того что тебе надо:
    Код (Text):
    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;
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей