Kibor |
Отправлено: 28 Марта, 2018 - 15:11:31
|
Эксперт
Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
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);
} |
|
|
Kibor |
Отправлено: 28 Марта, 2018 - 15:26:31
|
Эксперт
Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
ИЛИ
CODE:string CTEXT="Из-за того что * это 1 или больше (а не 0 или больше), "+
"как быть с ситуацией когда символ может как присутствовать,Сумма556 так и отсутствовать? "+
"Например: 123, Сумма: 156 и 123, Сумма 456. Найти чисумма:, Сумма:, в другом нет.";
string PR;
while (findtexttest (#CTEXT, #PR, "Сумма", ALL+, /NUM+\)==1)
{
messagebox (PR);
} |
|
|
Kibor |
Отправлено: 28 Марта, 2018 - 20:43:14
|
Эксперт
Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
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");
} |
|
|
Skycrew |
Отправлено: 29 Марта, 2018 - 00:22:39
|
Мастер
Покинул форум
Сообщений всего: 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) |
|
|
Kibor |
Отправлено: 29 Марта, 2018 - 01:07:15
|
Эксперт
Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
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\+
Сразу выведет ИМЯ ТЕЛЕФОН без лишней информации.
Вывод будет в массив. |
|
|
|