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

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

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

> Описание: Строковые функции. Поиск, удаление, замена.
Kibor
Отправлено: 28 Марта, 2018 - 15:11:31
Post Id



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


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




 Zireael пишет:
Не лучше ли вынести обсуждение не законченной функции в отдельную тему? Кому оно надо читать потом о когда-то существовавших багах.

Так же как и описание старой функции.
Это технический момент. Логично его оговаривать в месте где идет тема о этом.
Потом эта тема будет переоформлена в соответствие с справкой по новой функции.

 Zireael пишет:
Из-за того что * это 1 или больше

Это не 1 и больше, а режим проверки.
* означает что массив символов не воспринимается как слово, а именно как массив символов и достаточно совпадения с одним из, а не полного совпадения всего этого слова.

 Zireael пишет:
Из-за того что * это 1 или больше (а не 0 или больше), как быть с ситуацией когда символ может как присутствовать, так и отсутствовать? Например: "123, Сумма: 456" и "123, Сумма:456". Найти число после "Сумма:", в одном случае есть пробел после "Сумма:", в другом нет.


CODE:
string CTEXT="Из-за того что * это 1 или больше (а не 0 или больше), "+
"как быть с ситуацией когда символ может как присутствовать, так и отсутствовать? "+
"Например: 123, Сумма: 156 и 123, Сумма:456. Найти число после Сумма:, в одном случае есть пробел после Сумма:, в другом нет.";
string PR;
while (findtexttest (#CTEXT, #PR, "Сумма", [SPACE, ":"], /NUM+\)==1)
{
messagebox (PR);
}
 
 Top
Zireael
Отправлено: 28 Марта, 2018 - 15:22:48
Post Id



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


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




CODE:
string CTEXT="qwe 34.65.";
string PR;
if (findtexttest (#CTEXT, #PR, [NUM, ".", "."!]5)==1) // ищем 34.65 (5 символов)
messagebox (PR);
else messagebox("Не найдено");
 
 Top
Kibor
Отправлено: 28 Марта, 2018 - 15:26:31
Post Id



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


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




ИЛИ
CODE:
string CTEXT="Из-за того что * это 1 или больше (а не 0 или больше), "+
"как быть с ситуацией когда символ может как присутствовать,Сумма556 так и отсутствовать? "+
"Например: 123, Сумма: 156 и 123, Сумма 456. Найти чисумма:, Сумма:, в другом нет.";
string PR;
while (findtexttest (#CTEXT, #PR, "Сумма", ALL+, /NUM+\)==1)
{
messagebox (PR);
}
 
 Top
Kibor
Отправлено: 28 Марта, 2018 - 20:43:14
Post Id



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


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




CODE:
char s[100];
char p[9999];
string PR;
if (opensocket ("kibor-bot.com", 80)==1)
{
strcpy(#s[0], "GET http:/"+"/kibor-bot.com/stat/programmed-autoclicker.php HTTP/1.0");
int sizf=size(#s[0]);

s[sizf]=formatic(13);s[sizf+1]=formatic(10);s[sizf+2]=formatic(13);s[sizf+3]=formatic(10);

if (sendhtml(#s[0], sizf+4)>0)
{
recvhtml(#p[0], 9999);//читаем ответ
// messagebox (format(#p[0]));
string CTEXT=format(#p[0]);
if (fopen ("c:\s.txt", "w")!=0)
{
while (findtexttest (#CTEXT, #PR, /"http:", ALL+\, [formatic(39), formatic(34)])==1)
{
fwrite(PR);
fwrite(ENDL);
}
fclose();//закрываем файл
}
}
closesocket ();//Закрываем
start("c:\s.txt");
}
 
 Top
Skycrew
Отправлено: 29 Марта, 2018 - 00:22:39
Post Id



Пользователь
Мастер


Покинул форум
Сообщений всего: 123
Дата рег-ции: Июль 2014  
Репутация: 0




О не успели оглянуться, а тут и регулярные выражения подвезли!!

[что-то]5
Я правильно понимаю, что количество поиска знаков не учитывает пробелы?



 Zireael пишет:
string CTEXT="qwe 34.65.";
string PR;
if (findtexttest (#CTEXT, #PR, [NUM, ".", "."!]5)==1) // ищем 34.65 (5 символов)
messagebox (PR);
else messagebox("Не найдено"Подмигивание;


Это не работает наверно потому, что 5 символов включают в себя точку на конце, которую ты хочешь обрезать. Однако 6 тоже не работает, а работает только с "+" тут какой-то баг видимо.
(Добавление)
Предложения:

1) Обрезать несколько одинаковых символов на конце, а не один.
2) Была-бы полезна также и отдельная обрезка также и с начала набора символов.
3) "[что-то]5" Возможность задавать количество поиска не только жестко, но и в виде ">5" (6 и более) или "<5" (4 и менее), а также диапазон "2-5" (от 2 до 4)

(Отредактировано автором: 29 Марта, 2018 - 00:25:24)

 
 Top
Kibor
Отправлено: 29 Марта, 2018 - 01:07:15
Post Id



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


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




 Skycrew пишет:
Это не работает наверно потому, что 5 символов включают в себя точку на конце, которую ты хочешь обрезать. Однако 6 тоже не работает, а работает только с "+" тут какой-то баг видимо.

Да. Есть баг с указанием количества. Тестируйте пока и выкладывайте баги.

 Skycrew пишет:
1) Обрезать несколько одинаковых символов на конце, а не один.

Должно быть возможно..
" -_"!
Но тоже баг)

 Skycrew пишет:
2) Была-бы полезна также и отдельная обрезка также и с начала набора символов.

Смысл? Достаточно начать нужным символом.
CODE:
string CTEXT="один телефон 222 555 222 иначинается пробелом и заканчивается пробелом";
string PR;
while (findtexttest (#CTEXT, #PR, NUM, [NUM, *" ", " "!]+)==1)
{
messagebox ("!"+PR+"!");
}


 Skycrew пишет:
3) "[что-то]5" Возможность задавать количество поиска не только жестко, но и в виде ">5" (6 и более) или "<5" (4 и менее), а также диапазон "2-5" (от 2 до 4)

Сделаю.

Сейчас тестируются баги данной системы.
При подключение всех возможностей, при такой, довольно простой и наглядной системы, можно будет найти практически все и описать это довольно простым видом.

Будет доступен поиск через |
То есть при невозможности одной простой инструкцией описать универсальный шаблон, вместо того что бы писать запутанную инструкцию, можно будет задавать несколько простых через | и они работать будут параллельно.

Так же будет работать такая выборка данных с помощью /\
/RU\+, ALL+, /NUM\+
Сразу выведет ИМЯ ТЕЛЕФОН без лишней информации.
Вывод будет в массив.
 
 Top
Zireael
Отправлено: 29 Марта, 2018 - 03:06:41
Post Id



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


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




^ только для группы работает?
CODE:
string CTEXT="123 евро, 321 доллар";
string PR;
while (findtexttest (#CTEXT, #PR, /[NUM]+\, SPACE, ^"евро")==1) // число, после которого нет слова 'евро'
messagebox (PR);
 
 Top
Kibor
Отправлено: 29 Марта, 2018 - 04:35:16
Post Id



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


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




 Zireael пишет:
^ только для группы работает?

Оно служит для исключения ИЗ чего то того что идет следом.
while (findtexttest (#CTEXT, #PR, /NUM\+, SPACE, [RU, ^"евро"]+)==1)
 
 Top
Skycrew
Отправлено: 29 Марта, 2018 - 12:59:00
Post Id



Пользователь
Мастер


Покинул форум
Сообщений всего: 123
Дата рег-ции: Июль 2014  
Репутация: 0




 Kibor пишет:
Будет доступен поиск через |
То есть при невозможности одной простой инструкцией описать универсальный шаблон, вместо того что бы писать запутанную инструкцию, можно будет задавать несколько простых через | и они работать будут параллельно.

Так же будет работать такая выборка данных с помощью /\
/RU\+, ALL+, /NUM\+
Сразу выведет ИМЯ ТЕЛЕФОН без лишней информации.
Вывод будет в массив.


Чую, грядёт революция в парсинге)
 
 Top
Zireael
Отправлено: 30 Марта, 2018 - 01:32:24
Post Id



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


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




CODE:
string CTEXT="Какой-то текст, продам меч+8 245.99"; // без 8 число 245.99 найдётся
string PR;
if (findtexttest (#CTEXT, #PR, ["продам", "куплю"], ALL+, /[NUM]+, ".", [NUM]+\)==1) // ищем 245.99
messagebox (PR);
else messagebox ("Не найдено");
 
 Top
Страниц (5): « 1 2 [3] 4 5 »
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« О программе Кибор »


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




Powered by