MFC читает строку юникода из файла в строку - PullRequest
1 голос
/ 17 января 2011

У меня есть файл, который содержит очень длинную строку Unicode. Я хочу прочитать всю строку Unicode из файла в строку (или CString). Как я могу это сделать? Спасибо

Ответы [ 3 ]

1 голос
/ 17 января 2011

Используйте CFile MFC, чтобы открыть файл вызовите CFile :: GetStatus для получения размера файла http://msdn.microsoft.com/en-us/library/fa0hc0ht%28VS.80%29.aspx выделить массив BYTE полученного размера файла и использовать CFile :: Read, чтобы получить его http://msdn.microsoft.com/en-us/library/hwbccf8z%28v=VS.80%29.aspx

Теперь есть проблема спецификации, о которой нужно позаботиться. Проверьте, существуют ли символы спецификации в начале вашего буфера. Поскольку вы не указали, какой формат Unicode используется в вашем файле, вам нужно обратиться к http://en.wikipedia.org/wiki/Byte_order_mark, чтобы выяснить, что это такое. Перед продолжением удалите символы спецификации.

Теперь вы можете попробовать бросить необработанный буфер в конструктор CString. В большинстве случаев это работает.

0 голосов
/ 15 января 2015
CString lv_szResult;

CStdioFile lv_InputFile( c_szFile, CFile::modeRead | CFile::typeUnicode );
CString lv_szLine ;
while( lv_InputFile.ReadString( lv_szLine ) == TRUE )
{
  lv_szResult += lv_szLine + "\n" ;
}
0 голосов
/ 17 января 2011
ifstream file("filename.txt");
char data[1024];
file.read(data, 1024);
CString str(data);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...