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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.04.2010, 12:09   #1
magnat1991
 
Регистрация: 28.11.2008
Сообщений: 4
Смущение объясните StrinGrid

Есть диплом с использованием StringGrid до сегодня я его норм писал но тут стала перед мной задача как в StringGrid отминусовать предыдущий элемент.
То есть [1][2]-[1][1] и тд и тп да еще и так чтобы они отнимались независимо от полученного результата. Тоесть чтоб после [1][2]-[1][1]
[1][3]-[1][2] отнимались по исходным данным а не по результату [1][2]-[1][1] Пробовал такой код но как понимаете неполучилось))

int i=0,j=0;
for (i=1; i<10; i++)
for (j=1; j<5; j++)
StringGrid2->Cells[j][i]=StringGrid1->Cells[j][i]-StringGrid1->Cells[1-j][i];
magnat1991 вне форума Ответить с цитированием
Старый 26.04.2010, 13:03   #2
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Код:
for (int i = 10; i > 0; i--)
 for (int j = 5; j > 1; j--)
  StringGrid2->Cells[j][i] -= StringGrid1->Cells[j-1][i];
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 26.04.2010, 13:28   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
отнимались по исходным данным а не по результату
Ух... это тебе придется переводить данные из грида в некий массив двумерный, и с ним работать.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.04.2010, 13:40   #4
magnat1991
 
Регистрация: 28.11.2008
Сообщений: 4
По умолчанию

[C++ Error] Unit1.cpp(47): E2093 'operator-=' not implemented in type 'AnsiString' for arguments of the same type

Упс)
magnat1991 вне форума Ответить с цитированием
Старый 26.04.2010, 13:48   #5
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

А, ну да. Переводите строку в число
Код:
StringGrid2 -> Cells[i][j].ToInt()
или какого они у вас там формата. Аналогично переводите в число вторую строку, из первой вычитаете вторую, присваиваете результат нужной строке.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 26.04.2010, 13:49   #6
magnat1991
 
Регистрация: 28.11.2008
Сообщений: 4
По умолчанию

Цитата:
Ух... это тебе придется переводить данные из грида в некий массив двумерный, и с ним работать.
ну незнаю на другом форуме привели отакой работающий код)))

int i=0,j=0;
for (i=1; i < 10; i++)
for (j=1; j < 5; j++)
StringGrid2->Cells[j][i] = IntToStr(StringGrid1->Cells[j][i].ToInt() - StringGrid1->Cells[j - 1][i].ToInt());

СПС Гром заработало))
magnat1991 вне форума Ответить с цитированием
Старый 26.04.2010, 13:50   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
'operator-=' not implemented
Ессно. Код Грома работать не будет. Операции - для строк в принципе не существует.
Цитата:
ну незнаю на другом форуме привели отакой работающий код)))
Вполне логичный код.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.04.2010, 13:54   #8
magnat1991
 
Регистрация: 28.11.2008
Сообщений: 4
По умолчанию

по сути код грома тоже самое что я и приводил только вариант покороче)
magnat1991 вне форума Ответить с цитированием
Старый 26.04.2010, 14:16   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
magnat1991
Нет не тоже самое. Различия всетки есть.
Рекомендую в любом случае копировать в дополнительный массив и работать уже с ним.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.04.2010, 14:50   #10
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Цитата:
по сути код грома тоже самое что я и приводил только вариант покороче)
Не совсем то же самое, т.к. покороче, как я сначала написал, записывать некорректно. Для строки не определены operator- и operator-=, поэтому вычитается не из самой строки, а из полученных на ее основе данных, да и потом происходит неявное преобразование - вызывается конструктор AnsiString(int)
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
StrinGrid в Delphi TaYgA Помощь студентам 8 19.10.2009 17:17
StrinGrid Настенька..Блонди Общие вопросы Delphi 2 15.08.2009 16:45
Задача со StrinGrid-ом artemavd Общие вопросы Delphi 10 28.07.2009 16:23
Печать Stringrid в FastReport LIEN Компоненты Delphi 2 25.05.2009 11:18