Page 1 of 1

загрузка wxString из файла

Posted: Thu Jul 16, 2009 11:40 pm
by Kurles
Здравствуйте! Нужно загрузить wxString из файла, в faq нашёл специальный класс для этого wxTextFile, вроде все хорошо, но он почему-то не хочет работать с некоторыми файлам, просто их не открывает, грешу на то, что он просто не умеет открывать файлы с неизвестным ему расширением. Вопрос - есть какие-нибудь альтернативные методы решения сабжевого вопроса? Пока решил эту проблему "в лоб", с использованием текстового контрола wxScintilla:

Code: Select all

    wxScintilla *scint = new wxScintilla(parent,-1);
    if (scint->LoadFile(filename))
    {
        text = scint->GetText();
    }
    scint->Destroy();
Есть ли более элегантные решения?

Re: загрузка wxString из файла

Posted: Fri Jul 17, 2009 9:09 am
by van_user
Kurles wrote:wxTextFile, вроде все хорошо, но он почему-то не хочет работать с некоторыми файлам, просто их не открывает
Что за файлы? Как ты проверяешь на открытие? и т.д.
По-моему в лоб лучше использовать стандартные функции.

Re: загрузка wxString из файла

Posted: Fri Jul 17, 2009 12:11 pm
by Kurles
van_user wrote:
Kurles wrote:wxTextFile, вроде все хорошо, но он почему-то не хочет работать с некоторыми файлам, просто их не открывает
Что за файлы? Как ты проверяешь на открытие? и т.д.
По-моему в лоб лучше использовать стандартные функции.
Всё, разобрался. Оказывается, он не открывал текстовые файлы, если в них присутствовали символы с кодом > 127, т.е. любой кирилический символ. Поборол более внимательным чтением документации, в функции wxTextFile::Open, оказывается, есть второй параметр, который отвечает за конвертацию между различными кодировками. Стал открывать файлы таким образом:

Code: Select all

     wxTextFile textfile;
     if (textfile.Open(filename, wxConvLocal)) {/*файл открылся*/}
     else {/*не открылся*/}
и все стало на свои места. Всем спасибо :)