Страница 1 из 1

как записать русский текст в файл?

Добавлено: 20 май 2007, 12:02
Luch
нужно записать текст из строки в файл. но текст может быть русским. как это сделать?(CStdioFile)

Re: как записать русский текст в файл?

Добавлено: 20 май 2007, 13:24
Romeo
в чём проблема? что не работает?

Re: как записать русский текст в файл?

Добавлено: 20 май 2007, 13:36
Luch
ну для того чтоб можно было записать русский текст нужно как то там поменят кодировку или ещё что то такое. так вот мне нужно узнать как это сделать.

Re: как записать русский текст в файл?

Добавлено: 20 май 2007, 14:15
Romeo
Попробуй сначала просто записать русский текст в файл. Если возникнет проблема, тогда пиши сюда :) А то получается, что ты где-то слышал, что когда-то кто-то сталкивался с проблемой кодировки и потому даже не пытаешься попробывать сделать обычный write :)

Re: как записать русский текст в файл?

Добавлено: 20 май 2007, 15:09
Luch
блин да если бы я не столкнулся с проблемой я бы не спрашивал.
естесно я попробовал. и он вместо русского текста пишет абсолютно ничего. получаеться пустой файл.

Re: как записать русский текст в файл?

Добавлено: 20 май 2007, 15:45
Romeo
Ничего себе. Всегда думал, что проблемы с кодировкой порождают иероглифы, вместо определенного диапазона символов. А у тебя вообще ничего не записывается. Круто. Подозреваю, что просто не правильно используешь методы класса. Советы такие.

1. Попробуй заменить русский текст на английский, более ничего в коде не трогая. Пишет?
2. Если пишет, то кидай сюда кусок кода, где объект типа CStdioFile создаётся, инициализируется и происходит запись, посредством его методов. Будем разбираться.

А вообще самое правльное в таком случае - подэбажить внутрь метода WriteString (надеюсь используешь именно его) и посмотреть что там происходит.

Re: как записать русский текст в файл?

Добавлено: 20 май 2007, 16:15
Luch
1 с англ. текстом пашет.
2
CStdioFile f;
f.Open(L"E:\\курсовик\\HWM\\debug\\Files\\print.hwm", CFile::modeCreate|CFile::modeWrite);
f.WriteString(print);

в строке print все хорошо. тоесть проблема именно с русскими символами. в строке они хранятся а вот в файл не записываются.
попробую попозже под дебагом посмотреть внутри WriteString только знать бы ещё что смотреть...

Re: как записать русский текст в файл?

Добавлено: 20 май 2007, 18:18
Romeo
Смотреть следует каждый параметр, который учавствует в каждом операторе . Наверняка очень быстро обнаружишь ошибку. Кстати, print, это что? Какого типа переменная? Дело может быть именно в ней, следовательно особенное внимание удели тому, как происходит передача параметра в метод WriteString.

Re: как записать русский текст в файл?

Добавлено: 20 май 2007, 18:24
Luch
print это CString
Когда писал проги в консоле мы использовали функцию CharToOem для вывода русского текста с помощью cout
здесь попробовал. она работает но возвращает непонятные символы. короче не знаю что делать. Может кто сталкивался с проблемой.... подскажите...

Re: как записать русский текст в файл?

Добавлено: 25 авг 2010, 17:13
licenok

Код: Выделить всё

#include <locale.h>

LPCTSTR lpsz = _wsetlocale(LC_CTYPE , _T("rus"));
      if (!lpsz)
        AfxMessageBox(L"error set russian .. ");
проверено, работает 100%