Russian Qt Forum
Ноябрь 18, 2024, 20:05 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: QVector push_back  (Прочитано 7440 раз)
Firefox
Гость
« Ответ #15 : Май 20, 2014, 16:13 »

yнашла ошибку. он действительно все хорошо добавляет, проблема была в том что экземпляр структуры curr_par создан внутри цикла, потому при выходе из цикла структура очищалась
Записан
Firefox
Гость
« Ответ #16 : Май 26, 2014, 11:19 »

Не хочу создавать новую тему, спрошу здесь ещё один вопрос. У меня проблема с русским текстом. работаю в МСВС. осуществляю выборку по названию из QStringList строк в которых встречается данное название. Все хорошо если в названии есть цифра или латинские буквы. когда название русскими буквами, выбирает все подряд лишь бы по числу символов одинаково было. Пересохраняла файл из которого читаю в UTF-8, KOI8-R.
Код:
QStringList list;
QVector<QString> gls;
/* заполнение gls, list*/
.....
 
for(int j=0;j<gls.size();j++)
    {
        //лист строк по данному названию
        QStringList dataCurrent;
        for(int i=1;i<list.size()-1;i++)
        {

           //выбираем последовательно все строки из базы относящиеся к данному названию
            if(list.at(i).contains(gls.at(j),Qt::CaseSensitive)) // ВОТ ТУТ НЕ СРАБАТЫВАЕТ РУССКИЙ
            {
                dataCurrent.push_back(list.at(i));
            }
          //...
          }
        }
пробовала так
Код:
QTextCodec *cdc=QTextCodec::codecForName("UTF-8");//KOI8-R
...
for(int j=0;j<gls.size();j++)
    {
        //лист строк по данному названию
        QStringList dataCurrent;
        for(int i=1;i<list.size()-1;i++)
        {
           QStringList ggg=list.at(i).split(";");
           //выбираем последовательно все строки из базы относящиеся к данному названию
            if(cdc->fromUnicode(ggg.at(13).toAscii())==cdc->fromUnicode(gls.at(j).toAscii())) // ВОТ ТУТ НЕ СРАБАТЫВАЕТ РУССКИЙ
            {
                dataCurrent.push_back(list.at(i));
            }
          //...
          }
подскажите. как правильно сравнить строки с русским текстом?
Записан
Hellraiser
Бывалый
*****
Offline Offline

Сообщений: 451


Просмотр профиля
« Ответ #17 : Май 26, 2014, 12:04 »

QString::toLocal8Bit()
Записан
Firefox
Гость
« Ответ #18 : Май 26, 2014, 13:09 »

не сработало
Записан
Firefox
Гость
« Ответ #19 : Май 26, 2014, 14:53 »

Прошу прощение за беспокойство. проблема решилась сама собой, перекодировкой файла из которого я читаю. перекодировала в Unicode а потом в UTF-8 обратно и все заработало.
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.052 секунд. Запросов: 23.