Название: Qt 3.3.6 : перенос программы с C++ Builder на Qt Отправлено: TukiNov от Апрель 03, 2007, 21:40 Так как переписываю прогу которая была написана в C++ Builder, наступил на грабли :) а именно CommaText.
Есть строка вида : Код:
Я сначало привожу это строку к виду : Код:
т.е. все внешние запятые заменяю на #, а внутренние которые не заключены в двойные кавычки на / , а потом уже делаю инсерты в QPtrList. Может есть аналог CommaText в QT ? Или может кто то предложет более интересное решение. Если интересно могу выложить ф-ю которую я написал Название: Qt 3.3.6 : перенос программы с C++ Builder на Qt Отправлено: SABROG от Апрель 03, 2007, 22:21 QStringList::split(...)
Только врятли он сможет определить что разделять не нужно строку там где запятая в кавычках. Название: Qt 3.3.6 : перенос программы с C++ Builder на Qt Отправлено: TukiNov от Апрель 03, 2007, 22:35 Цитата: "SABROG" QStringList::split(...) Только врятли он сможет определить что разделять не нужно строку там где запятая в кавычках. это я знаю, не очень удобная штука. Я надеюсь просто что кто нить уже написал на подобии этого :) Название: Qt 3.3.6 : перенос программы с C++ Builder на Qt Отправлено: TukiNov от Апрель 06, 2007, 21:06 Ладно, с этим вроде разобрался. Теперь такой вопрос. На С++ Builder написан прога которая работает через CGI. Написана с помощью TWebActionItem(TObject *Sender,
TWebRequest *Request, TWebResponse *Response, bool &Handled), выступающая в роли сервера. Елиент видимо тоже использует эту фигню. Так вот, если с cgi в QT я более- менее разобрался (нашёл библиотеку), то вот как получать запросы от клиента не могу допереть. Забыл сказать, что запрос отправляется методом POST, если я не ошибаюсь. Помогите плиз. Название: Qt 3.3.6 : перенос программы с C++ Builder на Qt Отправлено: _govorilka от Апрель 08, 2007, 18:42 Параметры POST-запроса передаются через переменные окружения (для Apache), их можно получить через QProcess::environment(), QProcess::systemEnvironment()
Название: Qt 3.3.6 : перенос программы с C++ Builder на Qt Отправлено: TukiNov от Апрель 08, 2007, 22:09 вообщем, запрос я получил, изменил чуть пример $QTDIR/examples/network/httpd, вот только странно, получается два запроса а не один :
первый запрос идёт в таком виде : Код:
а вторым уже то что мне нужно : Код:
допустим, запрос я обработаю, а в каком виде мне обратно результат отправлять ? Название: Qt 3.3.6 : перенос программы с C++ Builder на Qt Отправлено: _govorilka от Апрель 09, 2007, 16:17 Цитата: "TukiNov" вообщем, запрос я получил, изменил чуть пример $QTDIR/examples/network/httpd, вот только странно, получается два запроса а не один : первый запрос идёт в таком виде : Код:
а вторым уже то что мне нужно : Код:
допустим, запрос я обработаю, а в каком виде мне обратно результат отправлять ? Это не два запроса - это заголовок и данные, разделанные между собой пустой строкой. После данных, кстати идет еще одна пустая строка, она означает конец запроса добавлено спустя 1 час 2 минуты: Скачай вот эту книжку, я думаю, она тебе поможет: http://zipsites.ru/books/kruglinski_progr_na_visual_c_6/[/url] Название: Qt 3.3.6 : перенос программы с C++ Builder на Qt Отправлено: TukiNov от Апрель 11, 2007, 12:55 Цитата: "_govorilka" Цитата: "TukiNov" вообщем, запрос я получил, изменил чуть пример $QTDIR/examples/network/httpd, вот только странно, получается два запроса а не один : первый запрос идёт в таком виде : Код:
а вторым уже то что мне нужно : Код:
допустим, запрос я обработаю, а в каком виде мне обратно результат отправлять ? Это не два запроса - это заголовок и данные, разделанные между собой пустой строкой. После данных, кстати идет еще одна пустая строка, она означает конец запроса добавлено спустя 1 час 2 минуты: Скачай вот эту книжку, я думаю, она тебе поможет: http://zipsites.ru/books/kruglinski_progr_na_visual_c_6/[/url] спасибо, прочитал, ответ составил, но мне всё равно не понятно почему httpd разбивает запрос на два запроса. Пример : Код:
Первый раз readyRead() срабатывает на заголовок : Код:
и второй раз на : Код:
Название: Qt 3.3.6 : перенос программы с C++ Builder на Qt Отправлено: TukiNov от Апрель 15, 2007, 02:08 Ладно, этим тоже разобрался.
Теперь другой вопрос. Так как клиент находится в винде, мне ему нужно нужно отправить строку через сокет в кодировке utf8. Через QTextCodec::setCodecForTr( QTextCodec::codecForName("utf8"));, и заключения ответа в tr() не проходит. Все перепробовал. Есть идеи ? :) проблема в том что ответ кодируется через ассемблер :) и я не могу поставить кодек на QTextStream, так как клиент тогда его не расшифрует, мне нада до этого(до кодирования) перевести простую строку в ср1251, пока есть только идея, использую поток записать строчку в файл в кодировке ср1251, а потом считать её. добавлено спустя 44 минуты: тоже не получилось :( Жду ваших идей ... Название: Qt 3.3.6 : перенос программы с C++ Builder на Qt Отправлено: TukiNov от Апрель 16, 2007, 01:41 поискав на форуме, подошло вот что :
Код:
Название: Qt 3.3.6 : перенос программы с C++ Builder на Qt Отправлено: Разуев Максим от Май 08, 2007, 15:29 По идее должно работатьеще и QString::fromLocal8Bit(text).
|