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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.01.2014, 20:47   #1
supreme
 
Регистрация: 12.01.2014
Сообщений: 3
По умолчанию есть таблица (StringGrid) и надо сложить между собой три столбца (Delphi)

у меня есть таблица и надо сложить между собой три столбца но в одном из столбцов отсутствие числа записано '-' этому значению надо присваивать 0/Помогите в чем ошибка вот код:
Код:
stringGrid1.Cells[7,1]:='36';
         stringGrid1.Cells[7,2]:='20';
         stringGrid1.Cells[7,3]:='68';
         stringGrid1.Cells[7,4]:='34';
         stringGrid1.Cells[7,5]:='52';
         stringGrid1.Cells[7,6]:='73';
         stringGrid1.Cells[7,7]:='66';
         stringGrid1.Cells[7,8]:='70';
         stringGrid1.Cells[7,9]:='53';

         stringGrid1.Cells[8,1]:='-';
         stringGrid1.Cells[8,2]:='-';
         stringGrid1.Cells[8,3]:='83';
         stringGrid1.Cells[8,4]:='-';
         stringGrid1.Cells[8,5]:='-';
         stringGrid1.Cells[8,6]:='256';
         stringGrid1.Cells[8,7]:='166';
         stringGrid1.Cells[8,8]:='-';
         stringGrid1.Cells[8,9]:='-';

         stringGrid1.Cells[9,1]:='12';
         stringGrid1.Cells[9,2]:='7.5';
         stringGrid1.Cells[9,3]:='21.3';
         stringGrid1.Cells[9,4]:='9.8';
         stringGrid1.Cells[9,5]:='16.35';
         stringGrid1.Cells[9,6]:='25.6';
         stringGrid1.Cells[9,7]:='21.65';
         stringGrid1.Cells[9,8]:='23.4';
         stringGrid1.Cells[9,9]:='16.9';

         stringGrid1.Cells[10,1]:='1919.2';
         stringGrid1.Cells[10,2]:='1198.9';
         stringGrid1.Cells[10,3]:='2699';
         stringGrid1.Cells[10,4]:='1466';
         stringGrid1.Cells[10,5]:='2783.4';
         stringGrid1.Cells[10,6]:='3342.24';
         stringGrid1.Cells[10,7]:='2254.8';
         stringGrid1.Cells[10,8]:='2913.8';
         stringGrid1.Cells[10,9]:='2227.4';
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  x:=0;
for j:=1 to StringGrid1.RowCount-1 do
begin
a:=strtofloat(StringGrid1.Cells[7,j]);
b:=strtofloat(StringGrid1.Cells[8,j]);
c:= strtofloat(StringGrid1.Cells[9,j]);
if   StringGrid1.Cells[8,j]= '-' then
begin
StringGrid1.Cells[8,j]:=inttostr(x);
d:=a+b+c;
d1:=d1+d;
end;

Edvipl.text:=floattostr(d1);
end;
end;

Последний раз редактировалось Stilet; 12.01.2014 в 21:03.
supreme вне форума Ответить с цитированием
Старый 12.01.2014, 22:15   #2
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Во-первых, так заполнять таблицу - это моветон.
Лучше массив создайте двумерный. А потом в цикле заполняйте.

Как работает ва код:
перебираются все строки, и если в столбе №8 находится "-" , то что-то делается (в столб №8 - код числа x, сложение и т.д. ), если не находится - ничего не делается.
В любом случае - в Edvipl пишется код числа d1 .
И так RowCount-1 раз
type_Oleg вне форума Ответить с цитированием
Старый 12.01.2014, 22:40   #3
supreme
 
Регистрация: 12.01.2014
Сообщений: 3
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin

for j:=1 to StringGrid1.RowCount-1 do
begin
if   StringGrid1.Cells[8,j]= '-' then
StringGrid1.Cells[8,j]:='0';

a:=strtoint(StringGrid1.Cells[7,j]);
b:=strtoint(StringGrid1.Cells[8,j]);
c:= strtofloat(StringGrid1.Cells[9,j]);
d:=a+b+c;
d1:=d1+d;
end;
Edvipl.text:=floattostr(d1);
end;
все решилось!! может кому поможет
supreme вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Данные одного столбца сложить с данными другого столбца Aleksandr Microsoft Office Excel 3 17.12.2013 12:03
Комбинирование классов между собой monolit111 Общие вопросы C/C++ 9 29.07.2012 23:39
Delphi таблица StringGrid Artemij_a Общие вопросы Delphi 2 04.04.2012 23:31
таблица в Stringgrid с рассчитываемыми ячейками (Delphi) bajge Помощь студентам 3 16.06.2011 19:31
Есть таблица - В ней три поля int, char, char нужно чтобы данные заносились в таблицу Mysql Muahahaha PHP 8 27.03.2008 11:17