Здравствуйте Андрей, Вы писали:
А>Здравствуйте Vasiliy_Krasnokutsky, Вы писали:
VK>>Здравствуйте Susumanin, VK>>char k[100] = LPCTSTR(String);
А>И ты думаешь, это будет работать?
А>Правильнее будет так:
А>
А>CString str;
А>...
А>TCHAR sz[100];
А>_tcsncpy(sz, LPCTSTR(str), 99);
А>sz[99] = 0; // это нужно, если размер твоего sz меньше, чем длина строки str
А>
я посмотрел MSDN, а там подобных функций просто куча. Подскажите плиз какую лучше использовать. И вот для чего. У меня есть структура с char[]. Мне нужно заполнить ее данными из текстового поля диалогового окна. Я в классВизарде создаю переменную для моего текстового поля, а как заполнить структуру (вернее char[]) — не знаю.
Заранее спасибо!
skip
S>я посмотрел MSDN, а там подобных функций просто куча. Подскажите плиз какую лучше использовать. И вот для чего. У меня есть структура с char[]. Мне нужно заполнить ее данными из текстового поля диалогового окна. Я в классВизарде создаю переменную для моего текстового поля, а как заполнить структуру (вернее char[]) — не знаю. S>Заранее спасибо!
Все зависит от того, как ты работаешь. Если ты пользуешься MFC, то почему бы в структуре не сделать поле типа CString?
Здравствуйте Андрей, Вы писали:
А>Здравствуйте Susumanin, Вы писали:
А>skip
S>>я посмотрел MSDN, а там подобных функций просто куча. Подскажите плиз какую лучше использовать. И вот для чего. У меня есть структура с char[]. Мне нужно заполнить ее данными из текстового поля диалогового окна. Я в классВизарде создаю переменную для моего текстового поля, а как заполнить структуру (вернее char[]) — не знаю. S>>Заранее спасибо!
А>Все зависит от того, как ты работаешь. Если ты пользуешься MFC, то почему бы в структуре не сделать поле типа CString?
Так весь прикол в том что мне потом все это нужно скинуть в файл. То есть это будет массив таких структур. Я использую CFile. А вот определять размеры каждой CString очень трудновато и мне показалось что будет легче сделать струтуру с фиксированными массивами char.
skip
S>Так весь прикол в том что мне потом все это нужно скинуть в файл. То есть это будет массив таких структур. Я использую CFile. А вот определять размеры каждой CString очень трудновато и мне показалось что будет легче сделать струтуру с фиксированными массивами char.
Ага, понял. Тогда остается _tcsncpy — как я тебе уже писал. То есть что-то типа:
void CYourDialog::SomeFunc()
{
UpdateData(); // здесь ты получаешь текст из контрола в переменную типа CString
// CharFieldSize - это размер твоего массива в СИМВОЛАХ - это важно для Unicode
_tcsncpy(yourStruct.m_szCharField, m_str, CharFieldSize - 1); // если ты не планируешь работать с Unicode,
// то можно обойтись без макросов, а использовать strncpy
yourStruct.m_szCharField[CharFieldSize - 1] = 0;
}
А>CString str;
А>...
А>TCHAR sz[100];
А>_tcsncpy(sz, str, 99);
А>sz[99] = 0; // это нужно, если размер твоего sz меньше, чем длина строки str
А>
Оператор LPCTSTR и так для CString автоматически вызывается компилятором...
Здравствуйте Андрей, Вы писали:
А>Здравствуйте Vasiliy_Krasnokutsky, Вы писали:
VK>>Здравствуйте Susumanin, VK>>char k[100] = LPCTSTR(String);
А>И ты думаешь, это будет работать?
А>Правильнее будет так:
А>
А>CString str;
А>...
А>TCHAR sz[100];
А>_tcsncpy(sz, LPCTSTR(str), 99);
А>sz[99] = 0; // это нужно, если размер твоего sz меньше, чем длина строки str
А>
Здравствуйте Susumanin, Вы писали:
S>Так весь прикол в том что мне потом все это нужно скинуть в файл. То есть это будет массив таких структур. Я использую CFile. А вот определять размеры каждой CString очень трудновато и мне показалось что будет легче сделать струтуру с фиксированными массивами char.
По-моему, проще создать объект CArchive и пихать туда твои строки и другие данные с помощью оператора <<. И не надо будет определять размер каждой CString.
Все уже давно придумано
Здравствуйте Susumanin, Вы писали:
S>Мне нужно переменную типа CString присвоить char[]. А как енто сделать не знаю. Помогите plz. Спасибо.
D>
Например так: