Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.222.110.189] |
|
Сообщ.
#1
,
|
|
|
Вот часть кода:
int pos=str.indexOf(QString("secure")); int i=0; pos=pos+29; QString value; while(str[pos]!=">") { value[i]=str[pos]; i++; pos++; } В чем ошибка? |
Сообщ.
#2
,
|
|
|
Цитата Mizantrop @ В чем ошибка? В том, что value[i] не корректно, ибо строка пустая. |
Сообщ.
#3
,
|
|
|
Тогда как мне изменить i-ый символ строки value на соответствующий из строки str?
|
Сообщ.
#4
,
|
|
|
Цитата Mizantrop @ Тогда как мне изменить i-ый символ строки value на соответствующий из строки str? Видишь ли, когда value представляет из себя строку в 5 символов длиной, то ты без каких-либо проблем можешь менять 0, 1, 2, 3 и 4 символы этой строки, но, когда value представляет из себя строку в 0 символов длиной, то ты не можешь менять в ней ни один символ ибо их просто нет! Добавлено Напиши что ли if(value.size() <= i) value.resize(i + 10); value[i] = ... |
Сообщ.
#5
,
|
|
|
Все равно ошибки выводит.
QString BOT::readResponse() { QTextStream stream(socket); QString str; while(!stream.atEnd()) { str.append(stream.readLine()); } int pos=str.indexOf(QString("secure")); int i=0; pos=pos+29; QString value; while(str[pos]!=">") { if(value.size() <= i) value.resize(i + 10); value[i]=str.at(pos); i++; pos++; } status->setText(value); html->clear(); html->append(str); return str; } |
Сообщ.
#6
,
|
|
|
Цитата Mizantrop @ Все равно ошибки выводит. Что в твоём понимании "выводит ошибки"? |
Сообщ.
#7
,
|
|
|
In BOT::readResponse() conversion of const char[2] to QChar is ambigious. Ошибки при компиляции
|
Сообщ.
#8
,
|
|
|
Блин, а сразу так сказать нельзя было? Или ты думаешь мы тут телепаты?
Цитата Mizantrop @ while(str[pos]!=">") { Здесь ошибка... нужно использовать не двойные кавычки, а одинарные. И на будущее: если есть ошибки компиляции, то указывай их полностью и на какую конкретно строку ругается! |
Сообщ.
#9
,
|
|
|
Упс..Прошу прощения, что не указал ошибку сразу. На самом деле я вас очень хорошо понимаю по поводу телепатов..Так что извините)
|
Сообщ.
#10
,
|
|
|
Все равно ничего не получается. Теперь ошибок компиляции нет, но при запуске получаю уведомление о том, что стоит позвонить Билли. Вот код, который я пытаюсь перевести:
char *html = "<html>....<input name=\"var_name\" value=\"var_value\" />..........</html>"; // тут весь HTML char *namep = strstr( html, "name=\"var_name\"" ); // найти переменную if( namep ) { char *valp = strstr( namep, "value=\"" ); // найти её значение if( valp ) { char value[256] = {0}; char *cvp = value; valp += strlen( "value=\"" ); while( (*valp) != '\"' ) *cvp++ = *valp++; // это почти strcpy() *cvp = 0; // теперь в char value[256] значение } } Получилось у меня следующее: int pos=str.indexOf(QString("secure")); int i=0; pos=pos+29; QString value="tratratra"; while(str.at(pos)!='>') { if(value.size() <= i) value.resize(i + 10); value[i]=str.at(pos); i++; pos++; } |
Сообщ.
#11
,
|
|
|
//char *html = "<html>....<input name=\"var_name\" value=\"var_value\" />..........</html>"; // тут весь HTML QString html = "<html>....<input name=\"var_name\" value=\"var_value\" />..........</html>"; //char *namep = strstr( html, "name=\"var_name\"" ); // найти переменную int namep = html.indexOf(QLatin1String("name=\"var_name\"")); //if( namep ) if( namep != -1 ) { //char *valp = strstr( namep, "value=\"" ); // найти её значение int valp = html.indexOf("value=\"", namep); // найти её значение //if( valp ) if( valp != -1 ) { //char value[256] = {0}; QString value(256, '\0'); //char *cvp = value; int cvp = 0; //valp += strlen( "value=\"" ); valp += QString(QLatin1String("value=\"")).length(); //while( (*valp) != '\"' ) *cvp++ = *valp++; // это почти strcpy() while (html[valp] != '\"') value[cvp++] = html[valp++]; //*cvp = 0; // теперь в char value[256] значение value.resize(cvp); } } |
Сообщ.
#12
,
|
|
|
Archimed7592, спасибо!
|