Форум русскоязычного сообщества Ubuntu


За новостями русскоязычного сообщества и Ubuntu в целом можно следить на нашей страничке в Google+

Автор Тема: Кто-нибудь знает MFC? Запись в файл CString'а...  (Прочитано 1724 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Magomed

  • Автор темы
  • Любитель
  • *
  • Сообщений: 92
    • Просмотр профиля
У меня есть туча переменных в CString. Хочу их в файл записать. Если открываю файл через стандартные
FILE *file
блаблабла
, то fputs дает писать в файл только char'ы. Может есть другая функция для записи CString?

А если открываю через MFCшные

CString m_Text; // создание стандартной панели выбора файла SaveAs
CFileDialog DlgSaveAs(FALSE,(LPCSTR)"txt",NULL,
OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,
(LPCSTR)" Text Files (*.txt) |*.txt||");
// отображение стандартной панели выбора файла SaveAs
if(DlgSaveAs.DoModal()==IDOK)
{ // создание объекта и открытие файла для записи
  CStdioFile File(DlgSaveAs.GetPathName(),
  CFile::modeCreate|CFile::modeWrite|CFile::typeBinary);
  // запись в файл строки
  File.WriteString((LPCTSTR)m_Text);
}
, то файл получается типа системный что ли и я никак по человечески его открыть не могу. Что здесь может повлиять на то, что файл скрывается ото всех?
И еще, во втором методе у меня текст " Text Files (*.txt) |*.txt||", который должен задавать тип файла, в который можно сохранять данные, отображается крякозябрами - кодировка, наверное, неправильная. Как это исправить?

P.S. Заранее спасибо!

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2540
    • Просмотр профиля
Re: Кто-нибудь знает MFC? Запись в файл CString'а...
« Ответ #1 : 25 Январь 2012, 12:08:57 »
Вы не туда попали. Вам надо к Microsoft MSDN.

Оффлайн hippi90

  • Активист
  • *
  • Сообщений: 433
    • Просмотр профиля
Re: Кто-нибудь знает MFC? Запись в файл CString'а...
« Ответ #2 : 25 Январь 2012, 15:52:24 »
Сконвертируйте CString в массив байтов и запишите его в файл. Как-то так:
CString str = "Hello World!";
fprintf(file, "%s", (LPCTSTR) str);
http://msdn.microsoft.com/ru-ru/library/ms174288.aspx

Оффлайн Дядюшка Ау

  • Участник
  • *
  • Сообщений: 123
  • Дайте две!
    • Просмотр профиля
Re: Кто-нибудь знает MFC? Запись в файл CString'а...
« Ответ #3 : 30 Январь 2012, 17:41:20 »
CFile::modeCreate|CFile::modeWrite|CFile::typeBinary)

А почему открывается, как binary? И что значит "я никак по человечески его открыть не могу"?
Ubuntu 12.04 для поколупацца, Win7 для поработать

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: Кто-нибудь знает MFC? Запись в файл CString'а...
« Ответ #4 : 31 Январь 2012, 05:17:42 »
Если я ничего не путаю
binary это всего лишь отключение зависимых от платформы текстовых преобразований
       /--> \r для Mac
\r?\n ----> \n для Unix
       \--> \r\n для Windows

Оффлайн Дядюшка Ау

  • Участник
  • *
  • Сообщений: 123
  • Дайте две!
    • Просмотр профиля
Re: Кто-нибудь знает MFC? Запись в файл CString'а...
« Ответ #5 : 31 Январь 2012, 18:21:54 »
Если я ничего не путаю
binary это всего лишь отключение зависимых от платформы текстовых преобразований
       /--> \r для Mac
\r?\n ----> \n для Unix
       \--> \r\n для Windows

Вроде да. А еще отключение всяких BOM-меток. Может там Юникод какой-то семибайтовый пишется, а потом не читается?
Ubuntu 12.04 для поколупацца, Win7 для поработать

 

Страница сгенерирована за 0.064 секунд. Запросов: 24.