Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > strtok или пить надо меньше...


Автор: Baa 1.12.2002, 12:18
Записки из бортового журнала...
4 утра... алкоголь кончился... сел писать программу %)
и вот такая загвоздка вышла со strtok...
Мой код(не работает как надо):
Код

char* lpSerial = new char [SendDlgItemMessage (IDC_EDIT1, WM_GETTEXTLENGTH)+1];
memset (lpSerial, 0, sizeof (lpSerial));
GetDlgItemText (IDC_EDIT1, lpSerial, sizeof (lpSerial));
       //bla1-bla2-bla3 в IDC_EDIT1...
char* p = strtok (lpSerial, "-");
for (int i = 0; i < 3/*iNum*/; i++)
{
AfxMessageBox (p);
p = strtok (NULL ,"-");
}
delete [] lpSerial;


А терь другой мой код (работает как надо):
Код

char szSerial [0xFF];
GetDlgItemText (IDC_EDIT1, szSerial, sizeof (szSerial));//bla1-bla2-bla3
char* p = strtok (szSerial, "-");
for (int i = 0; i < 3/*iNum*/; i++)
{
AfxMessageBox (p);
p = strtok (NULL ,"-");
}


Вопросы: 1. как заставить первый код работать как второй?
2. Стоит ли писать программы в нетрезвом виде в 4 утра?


Автор: Fantasist 2.12.2002, 08:37
Цитата
char* lpSerial = new char [SendDlgItemMessage (IDC_EDIT1, WM_GETTEXTLENGTH)+1];
memset (lpSerial, 0, sizeof (lpSerial));
GetDlgItemText (IDC_EDIT1, lpSerial, sizeof (lpSerial));


А то что sizeof (lpSerial)==4 - это ничего? По-моему, чего...     :)

Автор: Baa 4.12.2002, 18:50
Спасибо тебе, ты единственный, кто может направить мой маразм в нужное русло ;-)
Бред исправил...действительно, не стоит писать программы в 4 утра в нетрезвом виде ;-) в это время спать надо :) это я усвоил окончательно :)

Если кому интересно, то фиксистся это так:
Код

unsigned uStrLen = SendDlgItemMessage (IDC_EDIT1, WM_GETTEXTLENGTH)+1;
char* lpSerial = new char [uStrLen];
memset (lpSerial, 0, uStrLen);
GetDlgItemText (IDC_EDIT1, lpSerial, uStrLen);
    //bla1-bla2-bla3 &#226; IDC_EDIT1...
char* p = strtok (lpSerial, "-");
for (int i = 0; i < 3iNum; i++)
{
AfxMessageBox (p);
p = strtok (NULL ,"-");
}
delete [] lpSerial;

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)