void main()
{
int *x[5];
int x0x=5;
int x1x=7;
int x2x=65;
int x3x=95;
int x4x=11;
//что бы записать все в один массив мы делаем следующее
x[0]=x0x;
x[1]=x1x;
x[2]=x2x;
x[3]=x3x;
x[4]=x4x;
}
Как сделать такой макрос?
Код:
Это очень муторно, хотелось бы делать это в цикле, пробовал написать макрос:
Код:
#define mac(i) x##i##x
void main()
{
int *x[5];
int x0x=5;
int x1x=7;
int x2x=65;
int x3x=95;
int x4x=11;
for(int i=0;i<5;i++) x=mac(i);
}
void main()
{
int *x[5];
int x0x=5;
int x1x=7;
int x2x=65;
int x3x=95;
int x4x=11;
for(int i=0;i<5;i++) x=mac(i);
}
Этот код не работает. В программе мне надо обрабатывать 31 элемент(дни месяца) Static Text. Сначала мне надо создать 31 переменную и после этого как нибудь объединить их в один массив, что бы при вызове какого нибудь события не пришлось для каждого элемента писать свой код, а просто сделать через цикл. Заранее благодарен.
А зачем создавать 31 переменную?
У меня есть структура(упростил, что бы не захламлять):
Код:
struct peopl
{
char Name[50];//имя сотрудника
char Post[50];//должность
int Hours[31];// кол-во отработанных часов в день
}
class Graphik
{
public: people PPP[4];
Graphik()
{
... //инициализируем из файла
}
...
}
Graphik XXX;
{
char Name[50];//имя сотрудника
char Post[50];//должность
int Hours[31];// кол-во отработанных часов в день
}
class Graphik
{
public: people PPP[4];
Graphik()
{
... //инициализируем из файла
}
...
}
Graphik XXX;
Я хочу вывести всю информацию на форму с помощью Static text. С Name и Post не сложно. Но для того, что бы вывести все отработанные часы придется написать 31*4=124 строчки типа:
static1=XXX.PPP[0].Hours[0]
static2=XXX.PPP[0].Hours[1]
...
static32=XXX.PPP[1].Hours[0]
static33=XXX.PPP[1].Hours[1]
UpdataDate(FALSE);
А хотелось бы делать все это в цикле!!!
Код:
class CMyDlg : public CDialog
{
...
CString m_static[31];
...
};
{
...
CString m_static[31];
...
};
Код:
void CMyDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
for(int i = 0; i < 31; i++)
DDX_Text(pDX, IDC_STATIC1+i, m_static); //тут главное чтобы id элементов шли подряд
}
{
CDialog::DoDataExchange(pDX);
for(int i = 0; i < 31; i++)
DDX_Text(pDX, IDC_STATIC1+i, m_static); //тут главное чтобы id элементов шли подряд
}
Код:
for(int i = 0; i < 31; i++)
m_static = XXX.PPP[0].Hours
m_static = XXX.PPP[0].Hours
А почему бы вообще не выводить в таблицу?
Создавать 31 статик и заполнять их в коде "в лоб" явно не лучшее решение.
Я таблицами еще не пользовался. Подскажите где можно найти полезную информацию по организации таблиц.