Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt GUI _ Файл из адреса

Автор: ruzik 25.4.2011, 15:38

Здравствуйте, мне надо достать файл из адреса, у меня есть код

void RizekQssEditor::changeAddressOfCurrentFile(QString file)
{
    addressOfCurrenFile = file;
    int where = -1;
    for (int a=0;a<=addressOfCurrenFile.size()-1;a++)
        if(addressOfCurrenFile[a]==QChar('\\'))
            where = a;
    QString name;
    if (where!=-1)
    {
    for (int a=where;a<=addressOfCurrenFile.size();a++)
        name+=addressOfCurrenFile[a];
    this->setWindowTitle(tr("%1 - Rizek Qss Editor").arg(name));
    }
    this->setWindowTitle(QString::number(where));
}

Но не работает, а именно переменная where всегда равна -1 - то есть позицию вхождения знака \ программа не находит
А вообще надо из строки типа
C:\dfgvdfgdg\sdfdsf\dsff.qss
вычленить dsff.qss
RegExp использовать бессмысленно, так как из строки типа C:\dfgvdfgdg\sdfdsf\dsff.qss
вычленит \dfgvdfgdg\sdfdsf\dsff.qss
Заранее спасибо за помощь!

Автор: panter_dsd 25.4.2011, 15:58

const QString name = QFileInfo (file).fileName ();

Автор: ruzik 25.4.2011, 16:35

Большое спасибо!

Автор: Kagami 26.4.2011, 14:01

А еще можно так:

name = file.split("\\").last;

Только не понятно какой вариант быстрее получится..

P.S. ну или вместо "\\" можно подставить QDir::separator(), тогда вообще универсально будет.

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)