Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

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

> Без описания
Kibor
Отправлено: 03 Июня, 2021 - 18:26:41
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8095
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 355




cuttext вырезает часть текста с строки.
Без регулярного выражения.

Данный пример вырежет
 Цитата:
12345

CODE:
string s=cuttext( "qwert12345asdfg","rt", "as");
messagebox (s);


Первый параметр - строка с которой вырезать надо
Второй - часть текста после которого идет вырезаемый текст. Есть пустая строка, с начала.
Третий - часть текста перед которым идет вырезаемый текст. Если пустая, до конца.

Второй параметр ищется первый сначала.
Второй первый с конца.


=====================


Второй вариант использования cuttext

Данный пример вырежет
 Цитата:
234

CODE:
string s=cuttext( "qwert12345asdfg","rt", 1, "as", -1);
messagebox (s);


Первый параметр - строка с которой вырезать надо
Второй - часть текста после которого идет вырезаемый текст. Есть пустая строка, с начала.
Третий - смещение начала вырезаемого текста на количество символов.
Четвертый - часть текста перед которым идет вырезаемый текст. Если пустая, до конца.
Пятый - смещение окончания вырезаемого текста на количество символов.

=====================

Так же есть возможность первым, не обязательным параметром указать правила вырезания текста.
0 - Будет вырезан текст начиная от первого нахождения сверху ОТ ЧЕГО, кончая первым нахождением снизу ДО ЧЕГО
Больше 0 - Будет вырезан Указанный Номер Фрагмента начиная от нахождения сверху ОТ ЧЕГО, кончая нахождением сверху ДО ЧЕГО
Меньше 0 - Будет вырезан Указанный Номер Фрагмента начиная от нахождения снизу ОТ ЧЕГО, кончая нахождением снизу ДО ЧЕГО

Пояснение
0 - Вырежет максимальный текст ОТ ДО
2 - Вырежет Второй фрагмент ОТ ДО, начиная сверху
-2 Вырежет Второй фрагмент ОТ ДО, начиная снизу

CODE:
string
T="В этом тексте вырежем +++111-- и еще +++222-- также +++333-- и напоследок +++444-- и еще +++555-- не забудем";
string s;
messagebox (T);

s=cuttext(T, "+++", "--");// 111-- и еще +++222-- также +++333-- и напоследок +++444-- и еще +++555
messagebox (s);

s=cuttext(0, T, "+++", "--");// 111-- и еще +++222-- также +++333-- и напоследок +++444-- и еще +++555
messagebox (s);

s=cuttext(1, T, "+++", "--");// 111
messagebox (s);

s=cuttext(2, T, "+++", "--");// 222
messagebox (s);

s=cuttext(-1, T, "+++", "--");// 555
messagebox (s);

s=cuttext(-2, T, "+++", -2, "--", 2);// ++444--
messagebox (s);


Если в строке только одно вхождение:
То есть к примеру нам надо вырезать участок кода относящийся к фрагменту:
CODE:
__name">Баскетбол

в строке
CODE:
class="line-grid-header__name champ-header__name">Баскетбол. Австралия. NBL. Мужчины.</h2></div><button _ngcontent-mobile-ng-cli-c107="" class="champ-header__button">

И оно там одно, надо указать смещение назад минимум на 1 символ больше чем первая искомая подстрока.
 Цитата:
string T="class=^"line-grid-header__name champ-header__name^">Баскетбол. Австралия. NBL. Мужчины.</h2></div><button _ngcontent-mobile-ng-cli-c107=^"^" class=^"champ-header__button^">";
messagebox (T);
string s=cuttext(0, T, "__name^">Баскетбол", -18, "__name^">Баскетбол", 50);
messagebox (s);
 
 Top
Ilya001
Отправлено: 03 Июня, 2021 - 19:15:57
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 458
Дата рег-ции: Май 2020  
Репутация: 23




Хорошая вещь!
 
 Top
YaPA
Отправлено: 27 Октября, 2021 - 22:12:06
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 14
Дата рег-ции: Сент. 2021  
Репутация: 0




Подскажите пожалуйста, как из строки " ' лассо ' лопата ' верстак ' автомобиль ' пин-ап " вынуть слова? ..в стринг массив..
 
 Top
Zireael
Отправлено: 28 Октября, 2021 - 01:43:44
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4397
Дата рег-ции: Нояб. 2017  
Репутация: 580




 Цитата:
как из строки " ' лассо ' лопата ' верстак ' автомобиль ' пин-ап " вынуть слова?

CODE:
string Text = " ^' лассо ^' лопата ^' верстак ^' автомобиль ^' пин-ап ";
messagebox(Text);
string result[999];
int count = regexsearch(sizearray(result), #result[0], Text, "[a-zA-Zа-яА-ЯёЁ\-]+");
messagebox("Всего найдено слов: "+format(count));
for(int i=0; i<count; i++)
{
messagebox(result[i]);
}
 
 Top
YaPA
Отправлено: 28 Октября, 2021 - 07:49:50
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 14
Дата рег-ции: Сент. 2021  
Репутация: 0




Спасибо - работает! Это бот для игры "найди предмет".

Однако если предмет составной - всё рушиться...

" ' чайник ' конус ' помидор ' бумажный пакет ' лупа "

..а бывает и так распознаёт:

" ' розъ!ск ' бумажный пак{ ' канистра ' сетка ' ракетка "
 
 Top
Zireael
Отправлено: 28 Октября, 2021 - 11:06:32
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4397
Дата рег-ции: Нояб. 2017  
Репутация: 580




CODE:
string Text = " ^' розъ!ск ^' бумажный пак{ ^' канистра ^' сетка ^' ракетка ";
messagebox(Text);
string result[999];
int count = regexsearch(sizearray(result), #result[0], Text, "(?<=\^' )[a-zA-Zа-яА-ЯёЁ\-! ]+");
messagebox("Всего найдено слов: "+format(count));
for(int i=0; i<count; i++)
{
messagebox(result[i]);
}
 
 Top
Kibor
Отправлено: 12 Января, 2022 - 09:09:55
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8095
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 355




Второй вариант использования cuttext

Данный пример вырежет
 Цитата:
234

CODE:
string s=cuttext( "qwert12345asdfg","rt", 1, "as", -1);
messagebox (s);


Первый параметр - строка с которой вырезать надо
Второй - часть текста после которого идет вырезаемый текст. Есть пустая строка, с начала.
Третий - смещение начала вырезаемого текста на количество символов.
Четвертый - часть текста перед которым идет вырезаемый текст. Если пустая, до конца.
Пятый - смещение окончания вырезаемого текста на количество символов.
 
 Top
Kibor
Отправлено: 18 Октября, 2023 - 11:07:17
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8095
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 355




Доработал cuttext
Появилась возможность первым, не обязательным параметром указать правила вырезания текста.
По умолчанию он 0
0 - Будет вырезан текст начиная от первого нахождения сверху ОТ ЧЕГО, кончая первым нахождением снизу ДО ЧЕГО
Больше 0 - Будет вырезан Указанный Номер Фрагмента начиная от нахождения сверху ОТ ЧЕГО, кончая нахождением сверху ДО ЧЕГО
Меньше 0 - Будет вырезан Указанный Номер Фрагмента начиная от нахождения снизу ОТ ЧЕГО, кончая нахождением снизу ДО ЧЕГО

Пояснение
0 - Вырежет максимальный текст ОТ ДО
2 - Вырежет Второй фрагмент ОТ ДО, начиная сверху
-2 Вырежет Второй фрагмент ОТ ДО, начиная снизу


CODE:
string
T="В этом тексте вырежем +++111-- и еще +++222-- также +++333-- и напоследок +++444-- и еще +++555-- не забудем";
string s;
messagebox (T);

s=cuttext(T, "+++", "--");// 111-- и еще +++222-- также +++333-- и напоследок +++444-- и еще +++555
messagebox (s);

s=cuttext(0, T, "+++", "--");// 111-- и еще +++222-- также +++333-- и напоследок +++444-- и еще +++555
messagebox (s);

s=cuttext(1, T, "+++", "--");// 111
messagebox (s);

s=cuttext(2, T, "+++", "--");// 222
messagebox (s);

s=cuttext(-1, T, "+++", "--");// 555
messagebox (s);

s=cuttext(-2, T, "+++", -2, "--", 2);// ++444--
messagebox (s);


Если в строке только одно вхождение:
То есть к примеру нам надо вырезать участок кода относящийся к фрагменту:
CODE:
__name">Баскетбол

в строке
CODE:
class="line-grid-header__name champ-header__name">Баскетбол. Австралия. NBL. Мужчины.</h2></div><button _ngcontent-mobile-ng-cli-c107="" class="champ-header__button">

И оно там одно, надо указать смещение назад минимум на 1 символ больше чем первая искомая подстрока.
 Цитата:
string T="class=^"line-grid-header__name champ-header__name^">Баскетбол. Австралия. NBL. Мужчины.</h2></div><button _ngcontent-mobile-ng-cli-c107=^"^" class=^"champ-header__button^">";
messagebox (T);
string s=cuttext(0, T, "__name^">Баскетбол", -18, "__name^">Баскетбол", 50);
messagebox (s);
 
 Top
Kibor
Отправлено: 19 Октября, 2023 - 06:16:36
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8095
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 355




Поправил cuttext
Можно указывать номер фрагмента, который надо вырезать.
Подробнее постом выше.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« О программе Кибор »


Все гости форума могут просматривать этот раздел.
Только администраторы и модераторы могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by