crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> QStringList, QStringList QProcess::systemEnvironment ()
flankerr
  опции профиля:
сообщение 28.10.2008, 16:00
Сообщение #1


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

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

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




Репутация:   0  


QStringList QProcess::systemEnvironment ()

как выудить значение интересующеё меня переменной из QStringList ?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 28.10.2008, 16:07
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

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




Репутация:   17  


Цитата(flankerr @ 28.10.2008, 16:00) *
QStringList QProcess::systemEnvironment ()

как выудить значение интересующеё меня переменной из QStringList ?

Посмотри левую часть от знака "=". Зная левую часть, ты можешь узнать нужное тебе значение правой части от знака "=". Вроде бы так.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
flankerr
  опции профиля:
сообщение 28.10.2008, 16:07
Сообщение #3


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

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

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




Репутация:   0  


вообще если честно не понмиаю как работаьт с кт-шным стринглистом
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 28.10.2008, 16:14
Сообщение #4


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

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




Репутация:   17  


В цикле выбираешь значения типа QString. А с ними производишь нужные тебе действия. А вообще QStringList = QList<QString>!
Обычная работа со списками, если непонятно как работать со списками, почитай про структуры данных.

QStringList list;
list << "Out" << "Begin" << "2+2" << "6^902" << "In";
for(QList<QString>::iterator iter = list.begin(); iter!=list.end(); ++iter)
{
    QString one_list_name = *iter;
                // your actions
}


Сообщение отредактировал AD - 28.10.2008, 16:14
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 28.10.2008, 16:16
Сообщение #5


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9656
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


flankerr, это просто контейнер QList, как с ними работать посмотри общее описание, если что-то не понятно задавай вопросы здесь

AD, с Qt'явыми контейнерами удобнее работать через foreach
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
flankerr
  опции профиля:
сообщение 28.10.2008, 16:17
Сообщение #6


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

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

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




Репутация:   0  


так со стринглистом понял, спасибо.

но ведь жутко неудобно. Это мне надо пробегаться по всему списку проверять каждую строку на вхождение а потом ещё её и парсить....
А может есть что мене геморойное аля getenv() ???


зы
хотя getenv() вроде как в stdlib.h т.е. по идее обинаково будет арботать на всех платформах...

Сообщение отредактировал flankerr - 28.10.2008, 16:27
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 28.10.2008, 16:30
Сообщение #7


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9656
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


Ну например так:
QString   value;   
QStringList list;
    ...
    foreach (QString str, list)
    {
        if (str.isEmpty())
            break;
        if (str.contains ( QRegExp("PATH") )
        {
            value = str;
            break;
        }
    }


потом обрабатывать строку
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 28.10.2008, 16:35
Сообщение #8


Мастер
******

Группа: Модератор
Сообщений: 3290
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

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




Репутация:   40  


Цитата(Litkevich Yuriy @ 28.10.2008, 16:30) *
QRegExp("PATH")
Если быть точней, то так:
    QString   value;   
    QStringList list;
    ...
    foreach (QString str, list)
    {
        if (str.isEmpty())
            continue;
        if (str.contains ( QRegExp ( "path=", Qt::CaseInsensitive))
        {
            value = str;
            break;
        }
    }


Сообщение отредактировал ViGOur - 28.10.2008, 16:38
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 28.10.2008, 16:44
Сообщение #9


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9656
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


ViGOur, табе зачет, мине-нет :(
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 28.10.2008, 16:46
Сообщение #10


Мастер
******

Группа: Модератор
Сообщений: 3290
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

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




Репутация:   40  


Цитата(Litkevich Yuriy @ 28.10.2008, 16:44) *
ViGOur, табе зачет, мине-нет :(
Да брось ты, ошибся только в continue, а остальное только для наверняка... :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 21.9.2019, 16:50