загрузка wxString из файла Topic is solved

Это русская секция форума wxWidjets. В этой секции вы можете обсуждать любые вопросы, связанные с wxWidgets на вашем родном языке.
Post Reply
Kurles
In need of some credit
In need of some credit
Posts: 2
Joined: Thu Jul 16, 2009 11:10 pm

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

Post by Kurles » Thu Jul 16, 2009 11:40 pm

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

Code: Select all

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

van_user
Experienced Solver
Experienced Solver
Posts: 55
Joined: Wed Jun 11, 2008 9:28 pm
Location: UA

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

Post by van_user » Fri Jul 17, 2009 9:09 am

Kurles wrote:wxTextFile, вроде все хорошо, но он почему-то не хочет работать с некоторыми файлам, просто их не открывает
Что за файлы? Как ты проверяешь на открытие? и т.д.
По-моему в лоб лучше использовать стандартные функции.

Kurles
In need of some credit
In need of some credit
Posts: 2
Joined: Thu Jul 16, 2009 11:10 pm

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

Post by Kurles » Fri Jul 17, 2009 12:11 pm

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

Code: Select all

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

Post Reply