Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » Работа с буфером обмена

Страниц (2): [1] 2 »
 

1. Budni - 07 Июля, 2019 - 00:08:37 - перейти к сообщению
Интересует вопрос можно ли вытаскивать из буфера обмена нужную информацию?
Нужно чтобы программа как то вытаскивала все строки в которых содержится слово "test-test"
и заносила их в блокнот. Я так думаю нужно как то использовать регулярные выражения

Мои попытки создать то, что нужно не дают результата, хелп.
CODE:

string test;
readclipboard (test);

string P;
string T="test";
string R="^test-test(?=.*)";
if (regexsearch(1, #P, T, R)==1)messagebox (P);


Текст из буфера (Отобразить)
2. Zireael - 07 Июля, 2019 - 03:19:04 - перейти к сообщению
 Цитата:
Нужно чтобы программа как то вытаскивала все строки в которых содержится слово "test-test"

 Цитата:
string test;
readclipboard (test);

string P[9999];
string R="test-test[^\r\n]+";
int count=regexsearch(sizearray(P), #P[0], test, R);
messagebox("Найдено строк: "+format(count));
for(int i=0; i<count; i++)
{
textbkcolor(65280, 0);
textout(i, 300, 100+i*20, P[i], 1);
}
loop()sleep(100);
3. Budni - 14 Июля, 2019 - 02:12:51 - перейти к сообщению
Zireael , а как обратно в буфер обмена полученные данные загнать?
writeclipboard (P[i]); в цикле перезаписывает строку.
4. Budni - 14 Июля, 2019 - 06:10:00 - перейти к сообщению
Ещё интересует как очистить дубли в строках в буфере обмена? Ну или хотя бы в текстовом файле?
(Добавление)
Если через регулярные выражение дубли удалять то получится вот так
CODE:
^(.*?)$\s+?^(?=.*^\1$)
но вот как это в код встроить ума не приложу (
5. Zireael - 14 Июля, 2019 - 11:04:26 - перейти к сообщению
 Цитата:
а как обратно в буфер обмена полученные данные загнать?

Собрать все строки в одну и записать в буфер.
CODE:
string P[4]={"qwe", "rty", "asd", "fgh"} // массив строк
string s="";
for(int i=0; i<sizearray(P); i++)s=s+P[i]+formatic(13)+formatic(10); // записали в одну строку
messagebox(s); // получившаяся строка
writeclipboard (s); // записали в буфер

 Цитата:
как очистить дубли в строках

CODE:
string rn=formatic(13)+formatic(10);
string s="Повтор1"+rn+"Какой-то текст1"+rn+"Повтор1"+rn+"Повтор2"+rn+"Какой-то текст2"+rn+"Повтор2"+rn+"Повтор1";
messagebox(s);
regexreplace(-1, #s, s, "^(.*?)$\s+?^(?=.*^\1$)", "", SINGLELINE | MULTILINE);
messagebox(s);
6. Budni - 07 Августа, 2019 - 01:35:04 - перейти к сообщению
Zireael , А как взять текст который в буфере обмена в кавычки?
7. Dantes3000 - 07 Августа, 2019 - 01:47:23 - перейти к сообщению
Budni ,

CODE:
string s;

readclipboard(s);

s=formatic(34)+s+formatic(34);

messagebox(s);


только язык надо бы переключать перед копированием в буфер
8. Budni - 07 Августа, 2019 - 01:56:44 - перейти к сообщению
Dantes3000 , Так всё просто))) спасибо, вот только не понял зачем язык переключить?
9. Dantes3000 - 07 Августа, 2019 - 02:15:21 - перейти к сообщению
Budni , Если копировать русский текст с английской раскладкой, то запишутся иероглифы
10. Budni - 07 Августа, 2019 - 03:51:18 - перейти к сообщению
А как удалить пробелы и символы? #{! все кроме точек?
в том же буфере?

CODE:
regexreplace(-1, #test, test, "[^{#!] ", "", SINGLELINE | MULTILINE);

Не могу пока разобраться

Powered by ExBB FM 1.0 Final