crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> Файл из адреса
ruzik
  опции профиля:
сообщение 25.4.2011, 15:38
Сообщение #1


Активный участник
***

Группа: Участник
Сообщений: 254
Регистрация: 23.2.2011
Из: Саратов
Пользователь №: 2436

Спасибо сказали: 2 раз(а)




Репутация:   0  


Здравствуйте, мне надо достать файл из адреса, у меня есть код
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
Сообщение #2


Жаждущий знаний
***

Группа: Участник
Сообщений: 254
Регистрация: 1.1.2009
Из: Санкт-Петербург
Пользователь №: 474

Спасибо сказали: 32 раз(а)




Репутация:   3  


const QString name = QFileInfo (file).fileName ();
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ruzik
  опции профиля:
сообщение 25.4.2011, 16:35
Сообщение #3


Активный участник
***

Группа: Участник
Сообщений: 254
Регистрация: 23.2.2011
Из: Саратов
Пользователь №: 2436

Спасибо сказали: 2 раз(а)




Репутация:   0  


Большое спасибо!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Kagami
  опции профиля:
сообщение 26.4.2011, 14:01
Сообщение #4


Старейший участник
****

Группа: Участник
Сообщений: 601
Регистрация: 2.2.2009
Пользователь №: 523

Спасибо сказали: 101 раз(а)




Репутация:   9  


А еще можно так:
name = file.split("\\").last;

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

P.S. ну или вместо "\\" можно подставить QDir::separator(), тогда вообще универсально будет.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 21.12.2024, 18:47