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

Ваш аккаунт

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

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

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

Как открыть ANSI файл с русскими буквами в Мемо?

40K
21 ноября 2008 года
unixoid7
7 / / 21.11.2008
Привет. :-P
С помощью консольной команды виндоус создан файл С:\info.txt
Вот эта команда: dir C:\ > C:\info.txt
Естественно в файле info.txt есть русские буквы, ну типа "Содержимое папки C:\.... метка тома..." и так далее. Как в Memo1 отобразить это содержимое с корректным отображением русских букв из файла info.txt ?

Memo1->LoadFromFile("C:\\info.txt"); - не выводится правильно с русским буквами :-(

Пробовал прочитать содержимое файла с помощью разработки консольной программы - все получилось, но программа должна быть НЕ консольной (то есть используются графические компоненты).
Как отобразить в Мемо1 ANSI файл с русскими буквами?
288
21 ноября 2008 года
nikitozz
1.2K / / 09.03.2007
Например так
Код:
char szLineOem[1024] = {0};
    char szLine[1024] = {0};

    ifstream f("C:\\info.txt");
    if (f)
    {
        while ( !f.eof() )
        {
            f.getline(szLineOem, 1024);
            OemToChar(szLineOem, szLine);
            Memo1->Lines->Add(szLine);
        }
        f.close();
    }
1.9K
21 ноября 2008 года
Anton Chik
175 / / 26.09.2005
ANSI как раз читается без проблем. У тебя скорей всего UTF-8 или юникод.
я писал небольшой посимвольный загрузчик для таких дел, минуя LoadFromFile()...
либо можно ковертнуть предварительно весь файл в ANSI и уж тогда грузить в мемо.
40K
21 ноября 2008 года
unixoid7
7 / / 21.11.2008
Не. ;-) файлик гарантировано ANSI, так как выполнена команда: cmd.exe /A /K dir C:\ > C:\info.txt
параметр /A - отобразить вывод команды в формате ANSI.

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