Кибор » Кибор - Интегрированная среда разработки ботов » О программе Кибор » Версия 5.33 Работа с текстом. Поиск подстроки между указанными блоками, удаление или замена указанной подстроки и символов.

Страниц (5): « 1 2 3 [4] 5 »
 

31. Kibor - 29 Марта, 2018 - 17:59:54 - перейти к сообщению
Zireael , Спасибо.
Такая вроде кажущаяся простой и понятной задачей как реализация регулярные выражений на самом деле довольно многогранная.
Хотя такое развитие я вроде как предусмотрел, однако 2 ночей как показывает практика мало)
Следующий алгоритм будет лучше. Пока выкладывайте слабые стороны и баги.
32. Zireael - 29 Марта, 2018 - 19:38:37 - перейти к сообщению
Простой задачей я бы её не назвал.
Впринципе даже в нынешнем виде с большинством задач функция вполне справится.
Доделать диапазон количества искомых символов, возвращение подгрупп в массив и поиск через | и будет отлично.
33. Zireael - 03 Апреля, 2018 - 17:54:52 - перейти к сообщению
CODE:
string CTEXT="qwe, "+formatic(34)+"asd"+formatic(34)+", 123"; // ищем текст в кавычках, т.е. asd
string PR;
string s=formatic(34);

//messagebox (CTEXT);
if (findtexttest (#CTEXT, #PR, formatic(34), /ALL+\, s)==1) // так работает
messagebox (PR);

if (findtexttest (#CTEXT, #PR, formatic(34), /ALL+\, formatic(34) )==1) // символ не распознан
messagebox (PR);
34. Zireael - 04 Апреля, 2018 - 18:23:05 - перейти к сообщению
CODE:
string CTEXT="Пример1: 12+34=";
string PR;

if (findtexttest (#CTEXT, #PR, /[NUM]+\, "+")==1)
messagebox (PR);
35. Zireael - 06 Апреля, 2018 - 18:39:11 - перейти к сообщению
CODE:
string CTEXT="qwe 123 rty";
string PR;

if(findtexttest (#CTEXT, #PR, NUM+)==1)messagebox (PR); // найдено
else messagebox ("Не найдено");

if(findtexttest (#CTEXT, #PR, NUM+)==1)messagebox (PR); // не найдено
else messagebox ("Не найдено");

if(findtexttest (#CTEXT, #PR, NUM+)==1)messagebox (PR); // найдено
else messagebox ("Не найдено");
// т. е. функция работает через раз
36. Zireael - 27 Июня, 2018 - 17:56:43 - перейти к сообщению
findtext планируется доделать?
37. Dantes3000 - 14 Июля, 2018 - 11:07:10 - перейти к сообщению
как найти текст между = ' и ]';

а так же "> и </
(Добавление)
Нашел такую таблицу, но всё равно не вдупляю немного.

например вот
CODE:
findtext(#CTEXT[tnom], #nom, #siz, "seller-info-value"+formatci(34)+formatci(62) & formatci(60)+formatci(47)

это
seller-info-value"> и </

Нажмите для увеличения
38. Zireael - 14 Июля, 2018 - 14:58:32 - перейти к сообщению
CODE:
string CTEXT="Какой-то текст, "+"seller-info-value"+formatic(34)+formatic(62)+"ИЩЕМ ЭТОТ ТЕКСТ"+formatic(60)+formatic(47)+"ещё текст";
string PR;
string s1=formatic(34);
string s2=formatic(62);

messagebox(CTEXT); // строка, в которой ищем текст

if (findtexttest (#CTEXT, #PR, s1, s2, /ALL+\, formatic(60), formatic(47))==1)
messagebox (PR); // найденный текст
else messagebox ("Не найдено");

Функция с багами, которые так и не исправлены.
39. Dantes3000 - 14 Июля, 2018 - 15:13:50 - перейти к сообщению
Я как обычно - спрошу на форуме, а через 5 минут сам догадываюсь как делать. Мне кажется, так было бы проще.


CODE:
string TEXT;
readclipboard(TEXT);
/* в буфере этот текст
<div class="seller-info-prop"> <div class="seller-info-label">Адрес</div> <div class="seller-info-value">
Воронеж, Советский р-н
</div> </div>
</div>
</div>
*/
char CTEXT[999999];
int nom, tnom=0;
int siz;
strcpy(#CTEXT[0], TEXT);

tnom=0;
loop()
{
if (findtext(#CTEXT[tnom], #nom, #siz, "value"+formatic(34)+">" & "</")==1) {messagebox(format(#CTEXT[tnom+nom], siz)); break}
else break;
}
40. Kibor - 14 Июля, 2018 - 15:24:44 - перейти к сообщению
 Dantes3000 пишет:
Мне кажется, так было бы проще.

?? к чему там цикл?.........
CODE:
string TEXT;
readclipboard(TEXT);
/* в буфере этот текст
<div class="seller-info-prop"> <div class="seller-info-label">Адрес</div> <div class="seller-info-value">
Воронеж, Советский р-н
</div> </div>
</div>
</div>
*/
char CTEXT[999999];
int nom, tnom=0;
int siz;
strcpy(#CTEXT[0], TEXT);

if (findtext(#CTEXT[tnom], #nom, #siz, "value"+formatic(34)+">" & "</")==1)
{
messagebox(format(#CTEXT[tnom+nom], siz));
}

Powered by ExBB FM 1.0 Final