crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Char и QString
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
posi4 Дата 29.7.2009, 14:40
  Спасибо за совет, разобрался!
den'ka Дата 29.7.2009, 13:29
 
Цитата(posi4 @ 29.7.2009, 13:08) *
Цитата
Как это нет, все есть.
QDataStream & operator<< ( QDataStream & stream, const QString & string )ж


Смотрю описание класса, но в упор не вижу этой перегрузки! Объясните?

См описание QString а именно Related Non-Members

Данный оператор реализован не как член ф-ция класса QDataStream
posi4 Дата 29.7.2009, 13:08
 
Цитата
Как это нет, все есть.
QDataStream & operator<< ( QDataStream & stream, const QString & string )ж


Смотрю описание класса, но в упор не вижу этой перегрузки! Объясните?
BRE Дата 29.7.2009, 12:43
 
Цитата(posi4 @ 29.7.2009, 13:40) *
Увидел название темы и решил задать вопрос про char и QString.

Как загнать элемент QString в QDataStream через оператор <<?
Вариантов перегрузки у него куча, но для QString'а нету. Напрашивается
вариант перегрузить его вручную. Может есть уже написанные варианты
или вообще другой способ?

Как это нет, все есть.
QDataStream & operator<< ( QDataStream & stream, const QString & string )ж
posi4 Дата 29.7.2009, 12:40
  Увидел название темы и решил задать вопрос про char и QString.

Как загнать элемент QString в QDataStream через оператор <<?
Вариантов перегрузки у него куча, но для QString'а нету. Напрашивается
вариант перегрузить его вручную. Может есть уже написанные варианты
или вообще другой способ?
whyt Дата 30.3.2009, 16:16
  igor_bogomolov, угу=) сутки
CODE
void MainWindow::Minuts(const QString sIn)
{
int iRez;
QString sStr,sDate;
bool bEndDigit;
iRez=0; sStr="";bEndDigit=false;sDate=sIn;
while (sDate.size()>0)
{
QChar::QChar(cM)=sDate.at(0); //конвертируем первый символ в QChar
if (cM>=48 && cM<=57) //проверяем, число это или букво
{
if (bEndDigit==true)
{
sStr="";
}
sStr=sStr+sDate.mid(0,1);
bEndDigit=false;
}
else
{
bEndDigit=true;
}
if (cM==1095 || cM==1063) // если 'Ч' или 'ч'
{
bool ok;
iRez=iRez + sStr.toInt(&ok,10)*60; sStr="";
}
if (cM==1057 || cM==1089) // если 'C' или 'c'
{
bool ok;
iRez=iRez + sStr.toInt(&ok,10)*60*24;sStr="";
}
if (cM==1052 || cM==1084) // если 'М' или 'м'
{
bool ok;
iRez=iRez + sStr.toInt(&ok,10);sStr="";
}
sDate=sDate.mid(1,sDate.size()-1); // выкидываем первый слева символ
}
}


ЗЫ. вот так, единственное что хотелось, так реализовать без if - else, а с помощью switch. Выше в теме описано почему неполучилось)
igor_bogomolov Дата 30.3.2009, 15:42
  Так С - это сутки :D .
Почему бы и не выложить. Я считаю что конечный результат всегда нужно выкладывать :rolleyes:
whyt Дата 30.3.2009, 15:34
  спасибо за помощь, решение уже есть.
molchanoviv, спасибо за вариант,интересно, но немного не то,что мне нужно.
igor_bogomolov, уточнив задачу я понял что всего может быть три вариации букв - 'C' - сутки, 'Ч' - часы,'М' - минуты..а там обрабатываю через if - else и коды символов. если кому - то интересно могу выложить на языке. =)
igor_bogomolov Дата 30.3.2009, 11:09
 
Цитата(whyt @ 29.3.2009, 19:10) *
я не знаю какого типа моя запись 10м, 10ч15м, или 15ч

Если QString str = "12м23с"; то на выходе получим 12, 23. Встает вопрос: как определить что такое 12 - часы или минуты? Основная задача была перевести подобную строку в минуты. А формат строки может меняться.
molchanoviv Дата 30.3.2009, 10:50
  Если еще актуально, то вот мой вариант решения проблемы
QRegExp rx("(\\d+)");
QString str = "6ч12м23с";
QStringList list;
int pos = 0;
while ((pos = rx.indexIn(str, pos)) != -1)
{
    list << rx.cap(1);
    pos += rx.matchedLength();
}


На выходе мы получим список состоящий из трех элементов: 6, 12, 23
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 10.5.2024, 14:26