Вопросы и ответы по программированию.

Для тех, кто хочет сделать мир лучше.
Сообщение
Автор
Аватара пользователя
GanGSISoft
Полковник
Полковник
Сообщения: 1430
Зарегистрирован: 27.03.2008
Откуда: Бацькаўшчына
Благодарил (а): 2 раза
Поблагодарили: 3 раза
Контактная информация:

#121 Сообщение 12.08.2011, 20:21

Есть код.

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

    fr=popen("ifconfig ppp0 |grep bytes","r");
    if(fr==NULL){strcpy(res,"Error");return NULL;}
    char tmp[512];//memset(tmp,0,512);
    fgets(tmp,sizeof(tmp),fr);
    pclose(fr);
Если сетевое соединение активно то в tmp записывается что-то типа: " RX bytes:4008814 (3.8 Mb) TX bytes:728822 (711.7 Kb)", а в консоль уже ничего не попадает, но если соединения нет, то в tmp ничего, а в консоли выводит "ppp0: error fetching interface information: Device not found". Как сделать так чтобы и эта строка не попадала в консоль, а шла в переменную tmp?

Аватара пользователя
NiGHt-LEshiY
Полковник
Полковник
Сообщения: 10258
Зарегистрирован: 13.06.2008
Откуда: Россия
Благодарил (а): 752 раза
Поблагодарили: 2667 раз
Контактная информация:

#122 Сообщение 12.08.2011, 20:48

Код? Ужас какой-то, а не код. Ладно...
Слышал когда-нибудь о такой вещи, как stdout, stderr? Почитай.
Кодекс поведения участников сообщества — обязательно к прочтению.
Просьба присылать сообщения об ошибках в ЛС.

Deus_Ex_Machina
Капитан
Капитан
Сообщения: 492
Зарегистрирован: 23.05.2010
Благодарил (а): 14 раз
Поблагодарили: 43 раза
Контактная информация:

#123 Сообщение 13.08.2011, 23:03

Никто не работал со строками в Qt?

Аватара пользователя
NiGHt-LEshiY
Полковник
Полковник
Сообщения: 10258
Зарегистрирован: 13.06.2008
Откуда: Россия
Благодарил (а): 752 раза
Поблагодарили: 2667 раз
Контактная информация:

#124 Сообщение 13.08.2011, 23:07

Кто-то может и работал. Не сильно отличаются от строк С++.
Какая-то проблема?
Кодекс поведения участников сообщества — обязательно к прочтению.
Просьба присылать сообщения об ошибках в ЛС.

Deus_Ex_Machina
Капитан
Капитан
Сообщения: 492
Зарегистрирован: 23.05.2010
Благодарил (а): 14 раз
Поблагодарили: 43 раза
Контактная информация:

#125 Сообщение 13.08.2011, 23:15

Нет, именно с QString. В общем, захотел я написать программу, которая будет воровать цитаты с башорга. Однако на выходе кодировка сбита. Я перепробовал различные извращения с хедерами, QTextStream, QTextCodec, не помогло.
Ниже код
Скрытое содержимое
writer.h

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

#ifndef WRITER_H
#define WRITER_H

#include <QObject>
#include <QFile>
#include <QTextStream>
#include <QTextCodec>
#include <QNetworkReply>
#include <QRegExp>

class Writer : public QObject
{
    Q_OBJECT
private:
    QFile *file;
    QNetworkReply *rep;
    QString *str;
public:
    explicit Writer(QFile *newfile, QNetworkReply *newrep);
    ~Writer();

signals:
    void ended();

public slots:
    void writefile();

};

#endif // WRITER_H
writer.cpp

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

#include "writer.h"

Writer::Writer(QFile *newfile, QNetworkReply *newrep):file(newfile),rep(newrep){
    file->open(QIODevice::WriteOnly | QIODevice::Text);
    connect(rep,SIGNAL(readyRead()),this,SLOT(writefile()));
    connect(rep,SIGNAL(finished()),this,SLOT(deleteLater()));
}

void Writer::writefile(){

    str = new QString(rep->readAll());
}

Writer::~Writer(){
    
    QRegExp r("<div>.*</div>");
    r.setMinimal(true);
    qDebug()<< r.indexIn(*str);
    file->write(r.cap(0).toLocal8Bit());
    file->flush();

    rep->deleteLater();
    file->close();
    emit ended();
}
main.cpp

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

#include <QtCore/QCoreApplication>
#include <QtNetwork>
#include "writer.cpp"


int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    QNetworkAccessManager *man = new QNetworkAccessManager;
    QNetworkRequest *req = new QNetworkRequest(QUrl("http://bash.org.ru/quote/1"));
    Writer *wr = new Writer(new QFile("dump.txt"),man->get(*req));
    QObject::connect(wr,SIGNAL(ended()),&a,SLOT(quit()));
    return a.exec();
}
Знаю, быдлокод.
Последний раз редактировалось Deus_Ex_Machina 13.08.2011, 23:16, всего редактировалось 1 раз.

Аватара пользователя
NiGHt-LEshiY
Полковник
Полковник
Сообщения: 10258
Зарегистрирован: 13.06.2008
Откуда: Россия
Благодарил (а): 752 раза
Поблагодарили: 2667 раз
Контактная информация:

#126 Сообщение 13.08.2011, 23:22

Content-Type: text/html; charset=windows-1251
Oh shi, bash.org.ru отдаёт текст в win1251.
А ты получаешь, наверное, в UTF-8
Кодекс поведения участников сообщества — обязательно к прочтению.
Просьба присылать сообщения об ошибках в ЛС.

Deus_Ex_Machina
Капитан
Капитан
Сообщения: 492
Зарегистрирован: 23.05.2010
Благодарил (а): 14 раз
Поблагодарили: 43 раза
Контактная информация:

#127 Сообщение 14.08.2011, 14:37

Спасибо, достатоно было поменять пару строк.

Аватара пользователя
GanGSISoft
Полковник
Полковник
Сообщения: 1430
Зарегистрирован: 27.03.2008
Откуда: Бацькаўшчына
Благодарил (а): 2 раза
Поблагодарили: 3 раза
Контактная информация:

#128 Сообщение 22.08.2011, 18:57

Хочу скомпилировать своё gtk поделие на windows, скачал codeblocks c mingw, но не находит инклуда gtk/gtk.h, где его для windows взять?
Последний раз редактировалось GanGSISoft 22.08.2011, 18:58, всего редактировалось 1 раз.

Аватара пользователя
NiGHt-LEshiY
Полковник
Полковник
Сообщения: 10258
Зарегистрирован: 13.06.2008
Откуда: Россия
Благодарил (а): 752 раза
Поблагодарили: 2667 раз
Контактная информация:

#129 Сообщение 22.08.2011, 19:11

где его для windows взять?
куда скачал
Кодекс поведения участников сообщества — обязательно к прочтению.
Просьба присылать сообщения об ошибках в ЛС.

Аватара пользователя
GanGSISoft
Полковник
Полковник
Сообщения: 1430
Зарегистрирован: 27.03.2008
Откуда: Бацькаўшчына
Благодарил (а): 2 раза
Поблагодарили: 3 раза
Контактная информация:

#130 Сообщение 22.08.2011, 23:42

NiGHt-LEshiY писал(а):
где его для windows взять?
куда скачал
Не понял. В папке codeblocks и mingw искал не нашёл.

Аватара пользователя
Pr0Ger
Модератор
Модератор
Сообщения: 1829
Зарегистрирован: 16.01.2009
Благодарил (а): 17 раз
Поблагодарили: 214 раз
Контактная информация:

#131 Сообщение 23.08.2011, 10:30

GanGSISoft
эм, а с чего gtk должен быть в комплекте с компилятором, и тем более IDE?
скачиваешь с сайта, прописываешь пути, компилируешь

Аватара пользователя
GanGSISoft
Полковник
Полковник
Сообщения: 1430
Зарегистрирован: 27.03.2008
Откуда: Бацькаўшчына
Благодарил (а): 2 раза
Поблагодарили: 3 раза
Контактная информация:

#132 Сообщение 23.08.2011, 12:26

Pr0Ger
Я не говорю что он должен быть(но всё таки проверил, вдруг есть, какието же h файлы там были). Сразу я спрашивал где его скачать, поскольку не нашёл

Добавлено спустя 1 минуту 49 секунд:
Ах, уже вроде нашёл, потом скачаю посмотрю

Добавлено спустя 57 секунд:
А до этого не мог чего-то найти,

Аватара пользователя
GanGSISoft
Полковник
Полковник
Сообщения: 1430
Зарегистрирован: 27.03.2008
Откуда: Бацькаўшчына
Благодарил (а): 2 раза
Поблагодарили: 3 раза
Контактная информация:

#133 Сообщение 05.09.2011, 20:36

В исходниках java кодировка обязательно должна быть utf8 или обы-какая всегда?
И класс String какую кодировку использует? определённую? utf8? или локальную? Или там в основе массив char'ов. Или как там всё устроенно?
И в char там могут хранится сурогатные пары или там эти символы не поддерживаются?

(Не найду этих ответов в google);
Последний раз редактировалось GanGSISoft 09.09.2011, 21:39, всего редактировалось 1 раз.

Аватара пользователя
GanGSISoft
Полковник
Полковник
Сообщения: 1430
Зарегистрирован: 27.03.2008
Откуда: Бацькаўшчына
Благодарил (а): 2 раза
Поблагодарили: 3 раза
Контактная информация:

#134 Сообщение 12.09.2011, 20:45

есть такое в C #ifdef, WIN32 или __unix #endif. А как MacOSX будет?

Добавлено спустя 56 секунд:
От я наркоман, три поста подряд мои с ерундой, как вы меня терпите, сам себя бы забанил

Аватара пользователя
NiGHt-LEshiY
Полковник
Полковник
Сообщения: 10258
Зарегистрирован: 13.06.2008
Откуда: Россия
Благодарил (а): 752 раза
Поблагодарили: 2667 раз
Контактная информация:

#135 Сообщение 12.09.2011, 20:57

GanGSISoft

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

cpp -dM < /dev/null
на целевой системе.
Кодекс поведения участников сообщества — обязательно к прочтению.
Просьба присылать сообщения об ошибках в ЛС.

Ответить Вложения 1