Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Запись в файл из ЛистБокса

435
12 апреля 2006 года
avatara
188 / / 07.07.2003
Есть Код ____________
CStdioFile myFile;
CString filen = "file.txt";
CFileException fileException;
CString buf;
myFile.Open(filen, CFile::modeCreate | CFile::modeReadWrite, &fileException );

for (int i = 0; i < m_List.GetCount(); i++)
{
buf = m_List.GetItemData(i);
myFile.WriteString(buf);
}

myFile.Close();
в результате получается ошибка приведения типов DWORD_PTR в LPCTSTR в строке myFile.WriteString(buf);
не могу понять как преобразовать типы чтобы все Ок было. Подскажите пожалуйста.
9.5K
12 апреля 2006 года
Damarus
101 / / 08.04.2006
Если я правилно понял, требуется записать строки из ЛистБокса в файл. Тогда надо использовать не CListBox::GetItemData, а CListBox::GetText. Например так:

Код:
CStdioFile myFile;
CString filen = "file.txt";
CFileException fileException;
CString buf;
myFile.Open(filen, CFile::modeCreate | CFile::modeReadWrite, &fileException );

for (int i = 0; i < m_List.GetCount(); i++)
{
   m_List.GetText(i, buf);
   myFile.WriteString(buf);
}

myFile.Close();


Если же надо преобразовать в LPCTSTR значение, возвращаемое CListBox::GetItemData, то сделать это можно так:
 
Код:
buf = reinterpret_cast<LPCTSTR>(m_List.GetItemData(i));
435
12 апреля 2006 года
avatara
188 / / 07.07.2003
 
Код:
for (int i = 0; i < m_List.GetCount(); i++)
{
   m_List.GetText(i, buf);
   myFile.WriteString(buf);
}

myFile.Close();


спасибо огромное!! Все получается. Только весь текст заносится в файл без разделения на строки.
Как сделать перенос строки?
Можно ли написать
 
Код:
for (int i = 0; i < m_List.GetCount(); i++)
{
   m_List.GetText(i, buf);
   buf = buf + "\r"; // или buf = buf + "\r\n";
   myFile.WriteString(buf);
}

myFile.Close();

435
12 апреля 2006 года
avatara
188 / / 07.07.2003
Цитата:
Originally posted by avatara
 
Код:
for (int i = 0; i < m_List.GetCount(); i++)
{
   m_List.GetText(i, buf);
   myFile.WriteString(buf);
}

myFile.Close();


спасибо огромное!! Все получается. Только весь текст заносится в файл без разделения на строки.
Как сделать перенос строки?
Можно ли написать
 
Код:
for (int i = 0; i < m_List.GetCount(); i++)
{
   m_List.GetText(i, buf);
   buf = buf + "\r"; // или buf = buf + "\r\n";
   myFile.WriteString(buf);
}

myFile.Close();



все .. разобрался надо сделать так
buf = buf + "\n";

Еще раз ОГРОМНОЕ СПАСИБО!

284
13 апреля 2006 года
michael_is_98
587 / / 25.02.2005
Цитата:
Originally posted by avatara
все .. разобрался надо сделать так
buf = buf + "\n";

Еще раз ОГРОМНОЕ СПАСИБО!


Один недостаток - запись в случае больших объемов данных будет идти медленно

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог