вообщем надо вывести любой файл допустим в RichEdit(пока пытаюсь с ним но буду рад более удобному варианту)
файлы любые текстовые,запускаемые,мультмедиа
т.е. вывести текст файла как это делают просмотерщик коммандера или Notepad++
Здравствуйте, AlexMarlo, Вы писали:
AM>вообщем надо вывести любой файл допустим в RichEdit(пока пытаюсь с ним но буду рад более удобному варианту) AM>файлы любые текстовые,запускаемые,мультмедиа AM>т.е. вывести текст файла как это делают просмотерщик коммандера или Notepad++
Не понимаю, в чем проблема — считываете файл в память, вызываете MultiByteToWideChar,
с заменой непечатных символов на любой подходящий знак и текст готов "к употреблению" RichEdit.
O>Не понимаю, в чем проблема — считываете файл в память, вызываете MultiByteToWideChar, O>с заменой непечатных символов на любой подходящий знак и текст готов "к употреблению" RichEdit.
RichEdit уже использую
MultiByteToWideChar зачем мне Юникод?
Здравствуйте, AlexMarlo, Вы писали:
O>>Не понимаю, в чем проблема — считываете файл в память, вызываете MultiByteToWideChar, O>>с заменой непечатных символов на любой подходящий знак и текст готов "к употреблению" RichEdit.
AM>RichEdit уже использую AM>MultiByteToWideChar зачем мне Юникод?
Чтобы открывать файлы в разных кодировках.
Здравствуйте, okman, Вы писали:
O>Здравствуйте, AlexMarlo, Вы писали:
AM>>RichEdit уже использую AM>>MultiByteToWideChar зачем мне Юникод?
O>Чтобы отображать бинарные файлы текстом.
Класс, а микроскопом гвозди можно забивать, потому что он тяжелый и железный как молоток.
O>С помощью MultiByteToWideChar можно быстро поменять все непечатные коды на вполне "удобоваримые".
В MultiByteToWideChar надо скормить кодировку исходного текста. Если данные бинарные, то какая у них кодировка? Например, если я захочу открыть gif файл в контроле, какую кодировку мне задать в MultiByteToWideChar?
И потом, что с этим счастьем делать, если надо файл редактировать?
Не понимаю Вашего сарказма.
Вы читали заголовок ?
"...Файлы любые текстовые,запускаемые,мультмедиа, т.е. вывести ТЕКСТ файла как это
делают просмотерщик коммандера или Notepad++...".
Если файл двоичный, его текст будет читаться не более приятно, чем Ваше сообщение.
Здравствуйте, okman, Вы писали:
O>Если файл двоичный, его текст будет читаться не более приятно, чем Ваше сообщение.
Если файл двоичный, то зачем к нему вообще применять MultiByteToWideChar? Вы понимаете, что смысл MultiByteToWideChar — перевести текст из заданной байтовой кодировки в UTF16 (и то, начиная только с Windows2000, до этого только UCS2). Если вам кодировка исодного потока байт неизвестна, зачем применять MultiByteToWideChar? Тупого преобразования будет достаточно:
Здравствуйте, AlexMarlo, Вы писали:
AM>Всё вроде разобрался без юникода))
Для сравнения как оно с юникодом и без, открой http://www.columbiauniversity.org/kermit/utf8.html в браузере и своем просмотровщике "без юникода"
Здравствуйте, alsemm, Вы писали:
A>Здравствуйте, okman, Вы писали:
O>>Если файл двоичный, его текст будет читаться не более приятно, чем Ваше сообщение. A>Если файл двоичный, то зачем к нему вообще применять MultiByteToWideChar? Вы понимаете, что смысл MultiByteToWideChar — перевести текст из заданной байтовой кодировки в UTF16 (и то, начиная только с Windows2000, до этого только UCS2). Если вам кодировка исодного потока байт неизвестна, зачем применять MultiByteToWideChar? Тупого преобразования будет достаточно:
A>
A>void makeRawUTF16(const char* str, unsigned len, std::vector<WCHAR>& out)
A>{
A> out.clear();
A> out.reserve(len);
A> for (const char* estr = str + len; str != estr; ++str)
A> {
A> out.push_back(*str);
A> }
A>}
A>
Да, вот это уже по существу — прояснили ситуацию.
Спасибо.