Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.04.2010, 19:48   #1
Кас Алина
Пользователь
 
Регистрация: 26.12.2008
Сообщений: 13
По умолчанию количество ячеек с одним значением (StringGrid)

не подскажите как посчитать количество значений равных 1?
в данной процедуре импорт из Excel в StringGrid. нужно посчитать количество единиц в каждой строке.

Код:
procedure TForm1.Button2Click(Sender: TObject);
 var
 s:string;
 i,k,n,j:integer;
begin
//Открытие документа Excel
Exl:= CreateOleObject('Excel.Application');
s:=ExtractFilePath(ParamStr(0))+'s.xls';
Exl.WorkBooks.Open(s);
Exl.visible:=false;

StringGrid3.RowCount:=21;
StringGrid3.ColCount:=25;

k:=0;
for i:=1 to 21 do 
begin
 k:=k+1;
 for j := 0 to 24 do
  StringGrid3.Cells[j,0+i]:=Exl.WorkBooks[1].WorkSheets[2].Cells[4+i,4 + j];
end;

Exl.Quit;
    end;
Кас Алина вне форума Ответить с цитированием
Старый 29.04.2010, 20:15   #2
Marsel737
Форумчанин
 
Аватар для Marsel737
 
Регистрация: 09.11.2009
Сообщений: 669
По умолчанию

Код:
var
  I, J, intOneCount: integer;
begin
  for I := 0 to StringGrid1.RowCount - 1 do
  begin
    for J := 0 to StringGrid1.ColCount - 1 do
    begin
      if StringGrid1.Cells[I, J] = '1' then
        Inc(intOneCount);
    end;
    ShowMessage('В строке ' + IntToStr(I + 1) + ' ' + IntToStr(intOneCount) + 'единиц');
    intOneCount := 0;
  end;
end;
Я не всегда знаю, о чем говорю, но знаю, что прав. © Мухаммед Али.
К чёрту обстоятельства. Я создаю возможности. © Брюс Ли
Marsel737 вне форума Ответить с цитированием
Старый 29.04.2010, 20:31   #3
Кас Алина
Пользователь
 
Регистрация: 26.12.2008
Сообщений: 13
По умолчанию

всё правильно, но почему-то 0 показывает
Код:
k:=0;
for i:=0 to 20 do
begin
 for j := 0 to 24 do
  StringGrid3.Cells[j,0+i]:=Exl.WorkBooks[1].WorkSheets[2].Cells[4+i,4 + j];
   if StringGrid1.Cells[I, J] = '1' then
        Inc(k);

end;
Кас Алина вне форума Ответить с цитированием
Старый 29.04.2010, 20:40   #4
Кас Алина
Пользователь
 
Регистрация: 26.12.2008
Сообщений: 13
По умолчанию

прошу прощения не тот код
вот этот
Код:
k:=0;
for i:=0 to 20 do
begin
 for j := 0 to 24 do
  StringGrid3.Cells[j,0+i]:=Exl.WorkBooks[1].WorkSheets[2].Cells[4+i,4 + j];
   if Exl.WorkBooks[1].WorkSheets[2].Cells[4+i,4 + j].value = '1' then
        Inc(k);
Кас Алина вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Stringgrid количество символов в ячейке artemavd Общие вопросы Delphi 1 20.06.2009 20:44
Закрашивание ячеек в StringGrid ИВэТэшка Помощь студентам 7 12.04.2009 11:09
Количество ячеек Sasha K Microsoft Office Excel 6 26.02.2009 06:04
Объединение ячеек StringGrid Македонский Общие вопросы Delphi 1 15.11.2007 12:07