![]() |
|
![]() ![]() ![]() |
|
alex6077582 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 16.9.2010 Репутация: нет Всего: нет |
В программе пользователь заполняет данными Лист бокс, вводит в Едит Текст строку и нажимает ОК.
Строка копируется с Едита и добавляется в Лист бокс при помощи функции: m_Edit.GetWindowText(m_String); m_ListBox.AddString( m_String); Затем пользователь сохраняет данные в тхт файл. m_ListBox.GetText(index, TempString); m_File.WriteString(TempString); и тут проблемма: В программе используется Юникод и метод - m_LsitBox.GetText(index, TempString); в строку TempString ничего не копирует если использовался русский текст, а если Английский, то всё работает нормально. Подскажите пожалуйста как решить эту проблемму. Зарание благодарен. Добавлено через 2 минуты и 19 секунд И ещё. У меня Windows 7 and Visual Studio 2008. |
|||
|
||||
Albor |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 589 Регистрация: 28.2.2009 Репутация: 7 Всего: 9 |
Какой тип у TempString? Хотя, если строки добавляются в листбокс, то должны и читаться от туда. А что возвращает m_ListBox.GetText()?
Это сообщение отредактировал(а) Albor - 16.9.2010, 13:48 |
|||
|
||||
alex6077582 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 16.9.2010 Репутация: нет Всего: нет |
TempString это обьект класса CString
но я немного розобрался. Функция m_ListBox.GetText(index, TempString) работает нормально и нормально сохраняет русский текст в TempString, оказывается проблемма в другом(при отладке я не внимательно проверил) . CString tempStr; CStdioFile fileSave(m_szPathName, CFile::modeCreate | CFile::modeWrite | CFile::typeText);\\обьект для сохранения тхт файла for(int i = 0; i < m_ListBox.GetCount(); i++) { m_ListBox.GetText(i, tempStr); \\берём строку из ListBox по индексу i и она правильно сохраняется в tempStr tempStr += _T("\n"); \\добовляем к строке эскейп последовательность fileSave.WriteString(tempStr); \\ и тут проблемма если в tempStr английский текст, то всё нормально, а если русский то в файл тупо ничего не пишится, как буддто компилятор игнориррует этот оператор. |
|||
|
||||
Albor |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 589 Регистрация: 28.2.2009 Репутация: 7 Всего: 9 |
Создавай файл с флагом CFile::typeBinary, а перевод строки делай так tempStr += _T("\r\n");
|
|||
|
||||
alex6077582 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 16.9.2010 Репутация: нет Всего: нет |
Так и хотел попробовать!
чуть позже проверю, напишу |
|||
|
||||
alex6077582 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 16.9.2010 Репутация: нет Всего: нет |
Спасибо помогло.
|
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |