Решено: Qt4, обрезка строки

Модератор: Модераторы разделов

Аватара пользователя
Liksys
Сообщения: 2910

Решено: Qt4, обрезка строки

Сообщение Liksys »

Есть такая функция на Python:

Код: Выделить всё

def convert(str) :
        bcount = 0
        ecount = len(str) -1

        while bcount < len(str) :
                if str[bcount] != " " and str[bcount] != "\t" and str[bcount] != "\n" :
                        break
                bcount += 1

        while ecount > bcount :
                if str[ecount] != " " and str[ecount] != "\t" and str[ecount] != "\n" :
                        break
                ecount -= 1

        if ecount +1 > 32 :
                return str[bcount:32]
        else :
                return str[bcount:ecount +1]

Кто не знает Питон, но знает С++, поясню, что эта функция отрезает строку, окруженную пробелами, табами, или символом перевода строки. То есть была строка например

Код: Выделить всё

#  Hello, World!  #
(симаолвми # обозначены начало и конец строки, чтобы было видно, где пробелы, эти символы никак не учавствуют в работе), а функция вернула строку

Код: Выделить всё

#Hello, World!#
Мне вот это надо переделать для QString. Думал, что можно сделать что-то вроде str.remove(QRegExp("pattern")), а вот как задать шаблон - пес его поймет. Кто знает, как правильно задать такой шаблон, подскажите. Уже всю голову сломал.
Спасибо сказали:
Аватара пользователя
dey
Сообщения: 335
ОС: OpenSuse 11.1

Re: Решено: Qt4, обрезка строки

Сообщение dey »

Может использовать isspace() для этой цели ?
В сознательных действиях должен присутствовать существенный неалгоритмический компонент.
Roger Penrose,The Emperor's New Mind
Спасибо сказали:
Аватара пользователя
Liksys
Сообщения: 2910

Re: Решено: Qt4, обрезка строки

Сообщение Liksys »

А каким образом?
Спасибо сказали:
kamre
Сообщения: 243
ОС: Win7/Ubuntu 11.10

Re: Решено: Qt4, обрезка строки

Сообщение kamre »

Может быть я чего-то не понимаю, но почему не воспользоваться этим (Qt4.2):

QString QString::trimmed () const
Returns a string that has whitespace removed from the start and the end.
Whitespace means any character for which QChar::isSpace() returns true. This includes the ASCII characters '\t', '\n', '\v', '\f', '\r', and ' '.
Example:

Код: Выделить всё

     QString str = "  lots\t of\nwhitespace\r\n ";
     str = str.trimmed();
     // str == "lots\t of\nwhitespace"


или даже вот этим:
QString QString::simplified () const
Returns a string that has whitespace removed from the start and the end, and that has each sequence of internal whitespace replaced with a single space.
Whitespace means any character for which QChar::isSpace() returns true. This includes the ASCII characters '\t', '\n', '\v', '\f', '\r', and ' '.
Example:

Код: Выделить всё

     QString str = "  lots\t of\nwhitespace\r\n ";
     str = str.simplified();
     // str == "lots of whitespace";


??
Спасибо сказали:
Аватара пользователя
Liksys
Сообщения: 2910

Re: Решено: Qt4, обрезка строки

Сообщение Liksys »

Во как, спасибо :) Надо было внимательнее доки мне читать :)
Спасибо сказали: