Qt настольное приложение с возможностью легко перенести его в Web
Интересует возможность переноса настольного приложения написанного на Qt в Web.
Интересует возможность переноса настольного приложения написанного на Qt в Web.
Описание такое: есть шаблон и есть страничка html
<table>
<tr><td></td><td></td>
</tr><tr><td></td><td></td>
</tr><tr><td></td><td></td></tr>
</table>
<table>
<tr><td>veered</td><td>123</td>
</tr><tr><td>dfvdfb</td><td>6767</td>
</tr><tr><td>cvbfgb</td><td>123</td></tr>
</table>
я сравниваю строки и если они не равны посимвольно в рекурсии сравниваю каких данных нет и эти данные вывожу. Это всё работает!
Теперь собственно вопрос:
Хочу выделить (руками) начала нужных строк в шаблоне «#$» чтобы обрабатывать только их:
<table>
#$ <tr><td></td><td></td>
#$ </tr><tr><td></td><td></td>
#$ </tr><tr><td></td><td></td></tr>
</table>
собственно хочется что-то такое:
def recursion(position1, string1, position2, string2):
if string2[:2] == "#$":
new_string = string[2:] # получили подстроку без этих символов
else:
for each symbol in new_string and string1: # в цикле посимвольно
# здесь обрабатываю разницу в символах и ставлю курсоры для рекурсивного чтения строки
....
recursion(position1, string1, position2, new_string)
и когда я передаю в рекурсию new_string от неё разумеется отщипнутся ещё два символа на следующем шаге. Вот мне нужно этого избежать.
Есть какой-то грамотный паттерн чтоли?
Итак:
Пока я думаю что передача по ссылке или указателем это всё для экономии памяти, чтобы не копировать всё значение.
Вопрос. В каких случаях применяется указатель, а в каких ссылки? Передача значением в этом всём вообще имеет место?
downloaded_file.html
<table>
<tr>
<td>Nu1</td>
<td>546</td>
</tr>
<tr>
<td>Number one</td>
<td>342</td>
</tr>
<tr>
<td>Nu3</td>
<td>456</td>
</tr>
</table>
file_template.html
<table>
<tr>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
</table>
Пишем, пишем код.
with open("file_template.html") as file_template:
template_list = file_template.readlines()
with open("file_downloaded.html") as file_downloaded:
downloaded_list = file_downloaded.readlines()
list_counter = 0
result_string=''
counter_i=0
while list_counter != len(downloaded_list):
if downloaded_list[list_counter] != template_list[list_counter]:
for i in range(len(template_list[list_counter])):
if downloaded_list[list_counter][i] != template_list[list_counter][i]:
counter_i = i
#while # пока символ с позиции template_list не сравняется с символом из downloaded_list
result_string += downloaded_list[list_counter][counter_i]
result_string += ","
else:
pass
list_counter += 1
print(result_string)
И тут, как водится, что-то пошло не так:
Nu1</t,546</t,Number,342</t,Nu3</t,456</t,
Nu1,546,Number one,342,Nu3,456
есть сформированный текст из него нужно получить данные и представить их в xml формате.
По сути это некий шблонизатор, текст пропускаешь через шаблон, а на выходе получается, например xml.
Что-нибудь есть готовое?
гуглил, честно.
std::vector<std::list<std::string> arr;
std::list<std::string> li;
for (auto i = arr.begin(); i != arr.end(); ++i) {
for (auto k = i->begin(); k != i->end(); ++k) {
if (k == li.begin()){ // если это первый элемент в списке
// то сделать действие
}else {
// для второго и последующих.
}
}
}
Почему k == li.begin() не срабатывает?
функция возвращает:
xmlChar *f;
std::string new_f(f);
По идее AJAX посылается клиентом (браузером), а можно ли отправить такой запрос не браузером, а, например curl ом и получить ответ?
#include <iostream>
#include <string.h>
#include <string>
using std::string;
using std::cout;
using std::cin;
using std::endl;
int main()
{
string main_str = "Test 2 string 1 ";
string template_str = "Test string ";
string temporary_str = "";
for(std::string::size_type i = 0; i < template_str.size(); ++i) { // сравниваем в цикле посимвольно
if (main_str[i] != template_str[i]){ // если не равно
std::string str1(main_str[i]); // преобразуем в строку и
temporary_str.append(str1); // добавляем во временную переменную
}
}
cout << temporary_str << endl; // вывод
return 0;
}
Ошибка invalid conversion from char to const char*
Что ж такое с этим преобразованием типов в C++?
Да я понимаю что здесь мешанина с++11 и с++98(?)
Надо получить объединённую строку из параметров командной строки:
Сделал такой корявокод:
#include <iostream>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
using namespace std;
int main(int argc, char *argv[])
{
char * devicestr {}; //инициализация в стиле C++11 не ругайте, но так удобно
char * numstr {};
int port = 0;
string concated_string {};
cout << argv[0];
for (int i = 1; i < argc; i++) {
if (i + 1 != argc) {
if (0 == strcmp("--devicestr", argv[i])) {
devicestr = argv[i + 1];
} else (0 == strcmp("--port", argv[i])) {
port = std::stoi(argv[i + 1]);
} else if (0 == strcmp("--numstr", argv[i])) {
numstr = argv[i + 1];
}
}
}
std::string str1(devicestr);
std::string str2(numstr);
concated_string = str1 + ":"+ std::to_string(port) + "/"+str2;
cout << concated_string;
return 0;
}
Ошибка такая: Error call overloaded «to_string(int&)» is ambiguous
как вообще правильно делать такие преобразования?
<tr>
<td></td>
<td>Hello, world!</td>
<td></td>
</tr>
context = xmlXPathNewContext(doc);
result_ = xmlXPathEvalExpression((const xmlChar *)"//td[text()=\"Hello, world!\"]", context);
Как при помощи libxml2 получить родительский элемент(tr в данном случае) на С++
И вывести значение в std::cout
table='''<table>
<tr>
<td>ccc</td>
<td>12</td>
<td>14</td>
</tr>
<tr>
<td>bbb</td>
<td>16</td>
<td>18</td>
</tr>
<tr>
<td>aaa</td>
<td>20</td>
<td>22</td>
</tr>
</table>'''
item = root.xpath('.//td[text()="'+string_parameter+'"]'):
result = item.xpath('//td[position()=3]')
Хочется так: если найдено bbb (string_parameter) вывести 18
время выполнения одного скрипта:
real 0m0.134s
user 0m0.121s
sys 0m0.011s
10 параллельных выполнений грузят проц как не в себя. Есть способ уменьшить нагрузку на проц?
в дополнительных репах есть пакеты с pip для python 2.7 и 3.4
а как поставить pip для pypy глобально, а не в virtualenv?
s = "<table><tr><td>Num of something 1</td><td>4532</td></tr><tr><td>Num of something 2</td><td>0</td></tr><tr><td>Num of something 3</td><td>8</td></tr></table>"
soup = bs4.BeautifulSoup(s, 'html.parser')
for table in bf4.find('table').find_all('tr'):
rows = [row.text for row in table.find_all('td')]
data.append(rows)
print (json.dumps(data))
Вот так работает. JSON делается!
Остался вопрос: Как сделать json из таблицы с тремя колонками с использованием json массива «key»: []?
Внешние проверки зло, но без них никак. Сейчас запускаю самым плохим, как выяснилось для процессора, способом: Zabbix external check key:
script.py ["--param","{HOST.HOST}"]
script.py такой
#!/usr/bin/env python
...
...
На bash:
Маска такая *08.csv *09.csv *10.csv
Что-то типа такого должно быть?
for file in *[08-10].csv
do
mv ${file} /home/user/${file}
done
Есть таблица и нужно если найдено значение Num of something то нужно достать значение 2. Номер колонки, задается параметром.
<table>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>Num of something</td>
<td>0</td>
<td>2</td>
</tr>
<tr>
<td>Num2 of something</td>
<td>8</td>
<td>3</td>
</tr>
</table>
data=[]
def get_value(column_number): # номер колонки 2
soup = bs4.BeautifulSoup(s, 'html.parser')
tables = soup.findAll("table")
for table in tables:
rows = table.findAll('tr')
for row in rows:
data.append(row.findAll('td', text="Num of something")) # находим строку, а что дальше то?
return data
нашёл вот это:
.append([value for value in columns if value])
разгадать пытаюсь что это будет так:
for value in columns:
if value:
.append([value])
но не сходится что-то
Я чего-то совсем не понимаю. Что не так-то?
new_list = []
for line in old_lines:
if line[0]:
new_list.append('newID' + ' , ' + line)
else:
new_list.append('124456' + ' , ' + line)
← назад | следующие → |