76

(14 replies, posted in FAQ)

Дмитрий это просто СУПЕР...всё заработало на УРА!!!...Спасибочки!!!
микро вопросик:
есть текст:
kjhkgjhuy....http:// привет 1</h1>...kjhkgjhuy....http:// привет 2</h2>...kjhkgjhuy
kjhkgjhuy....http:// привет 3</h3>...kjhkgjhuy....http:// привет 4</h4>...kjhkgjhuy
Вопрос:
есть способ использовать "Регулярное выражения"

RegExp := TRegExp.Create('http://(.*?)</h1>???????');

итог

привет 1
привет 2
привет 3
привет 4

77

(11 replies, posted in Russian)

Всем хорошего настроения!!!
Дмитрий...Благодаря парсингу имею:
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Form1.Memo1.Text:=(Email);  // Email: String;

привет
привет
здравствуйте

Вопрос:
1.)  как по клику на Button проверить все строчки в Memo1 на предмет дубликата  и оставить данные без повтора???
2.)  как в переменной "Emai" проверить все строчки на предмет дубликата  и оставить данные без повтора???

привет
здравствуйте

78

(35 replies, posted in Russian)

Всем хорошего настроения!!!
Дмитрий у меня такая заминка................
Благодаря парсингу заполнил таблицу "ААА"  с полями.......... + <<dates>>(ДАТА и ВРЕМЯ)
итог в гриде:
..........<<=====>>.........11.01.2017 10:21:11
..........<<=====>>.........11.01.2017 10:21:15
..........<<=====>>.........11.01.2017 10:21:19
Вопрос:
подскажите как сдалать запрос по клику на Button!!!
-Сходить в таблицу "ААА" с полем <<dates>>(ДАТА и ВРЕМЯ)
-найти наибольшую и наименьшую (ДАТА и ВРЕМЯ)
P./S.  (ДАТА и ВРЕМЯ) в таблице своё первоначальное значения менять не будет,
НО  возможно в будущем изменит своё нахождения вверх...вниз...т.е. местами!!!
КАК НАЙТИ РАЗНИЦУ ВО ВРЕМЕНИ ПОТРАЧЕННОЕ  НА ПАРСИНГ
отобразив в Label1????????.........<< 00:00:08 >>.........???????????????????????

79

(14 replies, posted in FAQ)

Дмитрий прошу прощения...скорей всего за мой не корректный вопрос!!!
Пост № 3
1.) Сделал TableGrid1 читаемость-многострочный...работает ОК!!!
2.) Form1.Memo3.Lines.Add(Email);   // Email: String;

Group1: tdlite.exe
Group1: js.exe

Вопрос:
Как сохранить многострочный текст из переменной  (Email) в одно поле???
рисунок прилагается...

80

(14 replies, posted in FAQ)

DriveSoft wrote:

Приветствую.


Извиняюсь за задержку с ответом. Вопрос все еще актуален для вас?

Здравствуйте Дмитрий!!!
Да...вопрос актуален??? пост №3...???

81

(14 replies, posted in FAQ)

Здравствуйте Дмитрий!!!
Используя Ваш скрипт "Регулярное выражения"
Попытался сделать запись в Б.Д...MVD...

procedure Form1_Button1_OnClick (Sender: string; var Cancel: boolean);
var
  RegExp: TRegExp;
  i: integer;
  Email: String;
begin
  RegExp := TRegExp.Create(Form1.Edit1.Text);
  RegExp.InputString := Form1.Memo1.Text;

  if RegExp.Exec then
  repeat
        // Матчи
        Form1.Memo2.Lines.Add( RegExp.Match[0] );


        // группы
        for i := 1 to RegExp.Match.Count-1 do
            Form1.Memo3.Lines.Add('Group'+IntToStr(i)+': '+RegExp.Match[i]);

        // запись в Б.Д...MVD...
            Email:=Form1.Memo3.Text;
            SQLExecute ('INSERT INTO AAA (aaa) VALUES ("'+ Email +'");');
            Form1.TableGrid1.dbUpdate;

  until not RegExp.ExecNext;

  RegExp.Free;
end;

1.) Сделал TableGrid1 читаемость-многострочный...работает ОК!!!
2.) У Вас в Form1.Memo3.Text видим:

Group1: tdlite.exe
Group1: js.exe

Проблема в том, что в таблицу "AAA" происходит две записи:
1.  Group1: tdlite.exe
---------------------------------------------------------
2. Group1: tdlite.exe
    Group1: js.exe
Вопрос: Как сохранить запись из переменой "Email" в таблицу "AAA",
что бы в гриде увидеть только ???

Group1: tdlite.exe
Group1: js.exe

Всех ФОРУМЧАН  <<C Новым Годом!!!>>

DriveSoft wrote:

RZ-007
Странно, у меня не хочет убегать обратно из формы.  И какая версия Windows у вас?

Здравствуйте Дмитрий!!!
У меня Windows 7...на ней не закрепляется в окне!!!
Попробовал на линуксе - работает!!!

83

(5 replies, posted in Russian)

ВАУ...!!!  СПАСИБО ДМИТРИЙ!!!

DriveSoft wrote:

Не совсем понял, а куда оно убегает?

Кода на Форме1 расположен к примеру "TWebBrowser"...
при перемещении Формы по рабочему столу "TWebBrowser" строго закреплён на  Форме1...!!!
А ту-точки...такая картина...рис.прилагается!

85

(5 replies, posted in Russian)

Друзья Всем приветики!!!  Кто подмогнёт...
Есть таблица "AAA" в ней поле "dates"(тип поля ДАТА) и Вычисляемое поле
в поле "dates" год рождения( 08.07.1976 )
Вопрос:
Что прописать в Вычисляемом поле, чтобы получить возраст (40 )...???
Заранее Благодарен!!!

Дмитрий СПАСИБО за оперативность РАБОТАЕТ...НО!!!!
Возможно...
-закрепить открытое приложение  на ФОРМЕ наглухо...,
что бы можно было тоскать форму,  а приложение не убегало???

Дмитрий Здравствуйте!!!
Интересует вопросик, возможно ли запустить приложение, чтобы оно было размещено внутри формы, а не отдельным окном,
чтоб можно было им пользоваться промо из Form1...

OpenFile('C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories\Calculator.lnk');

рис.прилагается!

88

(32 replies, posted in Russian)

Спасибочки!!!
Дмитрий!!!...То что сейчас вытворяет TWebBrowser, просто волшебная палочка в умелых руках
и всё же появились микро вопросики...для полного счастья...
1)  бегаем в TWebBrowser....
Возможно отображать адрес странички, которая находиться на данный момент в TWebBrowser
минимум Edit...максимум в ComboBox???
2) по Гуглил тему как очисть:
- очистить историю просмотров
- Файлы, сохранённые в кеше
- файлы cookie и другие данные сайтов и модулей
и т. д.
те скрипты которые, нашёл в примерах  делфи применить не получилось!!!
Вопрос: У нас в MVD возможно по клику на Button очисть "всё-при ВСЁ" в TWebBrowser,
не перезапуская программу???????????????????????????????????????????????????
3) в MVD по клику на Button данные из Edit передать в Edit-ы странички, которые расположены в TWebBrowser???
рис.прилагается!

Не совсем недопониманию суть..., но Вы
делайте всё, что хотите с полной версией(GET запросы...парсинг) ...НО...
ВАЖНО!!! Номер телефона возьмите с мобильной версии, а потом прикрутите в Б.Д.!!!
В полной версии телефона "НЕТ"...там имеется картинка с "номером телефона"
Как то так!!!

Отправил Вам письмо!!!

Приветствую sidhillsaid Вы спрашивали номер телефона???
закиньте на Form1 .....TWebBrowser и Memo1...

var
    Web: TWebBrowser;


procedure Form1_Button1_OnClick (Sender: string; var Cancel: boolean);
var

  sHTML: string;
begin

           Web.Navigate('https://m.avito.ru/krasnodar/avtomobili/lexus_ls_2008_811743617');

          while Web.ReadyState <> 4 do Application.ProcessMessages;
     if    Web.ClickElement('span', 'Показать номер')  then

          Sleep(3000);
          Application.ProcessMessages;
begin
          while Web.ReadyState <> 4 do Application.ProcessMessages;

    sHTML := Web.GetHTMLBody;
    Form1.Memo1.Text := sHTML;

end;
 end;
procedure Form1_OnShow (Sender: string; Action: string);
begin
    Web := TWebBrowser.Create(Form1);
    TWinControl(Web).Parent := Form1.Panel1;
    Web.Width := Form1.Panel1.Width;
    Web.Height := Form1.Panel1.Height;
    Web.Silent := 1;
end;

begin

end.

Номер телефона в Form1.Memo1.Text...потом "парсингом" - " выкавыриваем"!!!

92

(32 replies, posted in Russian)

DriveSoft wrote:

после того как кликнули, поставьте паузу таким образом

Такой маленький скриптик...и проблемка РЕШЕНА!!!
Спасибочки Вам Дмитрий!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
микро вопрос:
Благодаря парсингу имеем:

var
LIST: String;
=========|| ПАРСИНГ||============
LIST := Trim(LIST);
?????????????????????????????????
Form5.Memo1.Text:= (LIST);

В Memo1 получились такие записи:
Всем привет!!!<BR>Хочу пожелать  форумчанам<BR>Хорошего настроения!!!
-----------------------------А хотелось бы так -------------------------------------------------------
Всем привет!!!
Хочу пожелать  форумчанам
Хорошего настроения!!!
Есть способ реализовать это????(если "<BR>"  есть, тогда ?????, если нет то???)

Здравствуйте Дмитрий!!!
Это просто ЧУДО!!!....,ДЛЯ ПОЛНОГО СЧАСТЬЯ НЕ ХВАТАЕТ....:
отображения в едит адреса странички, которая находиться в TWebBrowser...
Это сложно будет воплотить в реальность???

94

(32 replies, posted in Russian)

Здравствуйте Дмитрий!!!...прошу прощения если "полез по перёд батьки" ПОСТ №12...

DriveSoft wrote:

RZ-007
Не думаю что там все так просто, на сайте есть защита от подобных манипуляций, также после теста вашего примера сайт меня заблокировал

Доступ с вашего IP-адреса временно ограничен

Вообще то такого не должно быть, сайт доступен для всех...
уже неделю эксперементирую на нём с № телефона всё ОК!!!
Дмитрий можно к этому вопросу подойти под другим углом....
Сделал пример основываясь на ваших примерах:

procedure Form1_Button4_OnClick (Sender: string; var Cancel: boolean);
var
    sHTML: string;
begin
    Web.Navigate('http://myvisualdatabase.com'); //{1 часть}-имеет свой HTML-код

    while Web.ReadyState <> 4 do Application.ProcessMessages;
    if Web.ClickElement('a', 'FORUM') then  //{2 часть}-имеет свой HTML-код

    while Web.ReadyState <> 4 do Application.ProcessMessages;

    sHTML := Web.GetHTMLBody;
    Form1.Memo1.Text := sHTML; //получаем  HTML-код {1 часть}, а нужно {2 часть}!!!

end;

получаем  HTML-код {1 часть}, а нужно {2 часть}??????????????????????????????
На этом сайте Вас не должны заблокировать...:) и smile

95

(32 replies, posted in Russian)

sidhillsaid wrote:

Если нашли способ перехвата телефона с авито, отпишитесь пожалуйста!

Приветствую!
Да...такая возможность появилась благодаря новым возможностям MVD...(ClickElement)
С такими темпами "инфляции"... "нас ни кто не догонит"!!!!!!!!!!!!!!!!!!...-Дмитрий СПАСИБО ВАМ!!!
Авито-№ телефона
1.) Делаем веб-браузер...заганяем в него страничку с Авито
P./S. Важно!!! именно мобильную версию!!!
2.) используем пример Дмитрия в этой теме ПОСТ № 6(происходит автоматический клик по номеру телефона)
3.) используем пример Дмитрия в этой теме ПОСТ № 2
(получаем исходный HTML-код странички которая загружена именно в TWebBrowser )
Надеюсь Вам эта инфа поможет!

96

(32 replies, posted in Russian)

Здравствуйте Дмитрий!!!

DriveSoft wrote:

RZ-007

2. В данном коде уже есть проверка на загрузку страницы, данная строка

while Web.ReadyState <> 4 do Application.ProcessMessages;

зацикливается до тех пор, пока страница не будет загружена полностью. В моем примере есть использование ClickElement

Я это понимаю, но к сожалению: 

procedure Form1_Button1_OnClick (Sender: string; var Cancel: boolean);
var
     sHTML: string;
begin
{1часть}      Web.Navigate('https://m.avito.ru/vyselki/avtomobili/daewoo_nexia_2012_881652265');

{2часть}      while Web.ReadyState <> 4 do Application.ProcessMessages;
              if    Web.ClickElement('span', 'Показать номер')  then  //ShowMessage('нашли номер телефона');
//верхняя часть скрипта срабатывает на УРА!!!, но нижняя часть выдаёт HTML-код 1части, а надо 2части!!!

{3часть}      while Web.ReadyState <> 4 do Application.ProcessMessages;

                     sHTML := Web.GetHTMLBody;
                     Form1.Memo1.Text := sHTML;

                     Form2.show;

end;

Как приостановить 3часть...до тех пор, пока 2часть прогрузится до конца???

97

(32 replies, posted in Russian)

Дмитрий это просто ЧУДЕСНО!!! Огромное Вам СПАСИБО!!!
Подскажите как проверить по клику на Button1:
1) если подключения с "интернетом"  НЕТ...then  ShowMessage('нет интернета') else Form1.Memo1.Lines.Add (Source);

procedure Form1_Button1_OnClick (Sender: string; var Cancel: boolean);
var
 Source: string;
begin
    try
      Source:= HTTPGet('https://www.yandex.ru',True);
    except
        if ExceptionMessage <> 'HTTP/1.1 404 Not Found' then  ShowMessage('нет интернета') else Form1.Memo1.Lines.Add (Source);
    end;
end;

отчего то вторая часть не срабатывает ...(else Form1.Memo1.Lines.Add (Source)
где я напортачил???
2.) как сделать проверку: до конца ли загрузилась страничка в TWebBrowser???
это нужно для:

procedure Form1_Button1_OnClick (Sender: string; var Cancel: boolean);
var
   sHTML: string;
begin
    while Web.ReadyState <> 4 do Application.ProcessMessages;
    sHTML := Web.GetHTMLBody;
    Form1.Memo1.Text := sHTML;
end;

P.S. используя новый метод ClickElement  в TWebBrowser, если сразу запросить sHTML := Web.GetHTMLBody,
то получим HTML-код до применения  метода ClickElement...так как страничка не успела загрузиться в TWebBrowser...

может быть прогресс-бар показывал загрузку странички в TWebBrowser

не давая другим действиям опережать события?
3.) есть способ по клику на Button1 открыть именно:

ShowMessage('Привет!')  //без кнопки "ОК" -не принципиально, но интересно?

на три секунды...после чего оно автоматически само закроется(минимум скрипта)???

98

(32 replies, posted in Russian)

Дмитрий спасибо за внимания...ещё микро вопросик!!!!
Если в TWebBrowser открыть ссылку:

URL :='https://m.avito.ru/sankt-peterburg/sobaki/miniatyurnyy_metis_rotveylera_devochka_866645105'

появляется нужная страничка, где присутствует практически такой же
битон как в MVD....
Вопрос:
используя в MVD битон или что то ещё...,
возможно осуществить автоматический клик на сайте по битону в TWebBrowser???
(может быть используя оси Х и У...или текст на который надо кликнуть???)
рисунок прилагается...

99

(32 replies, posted in Russian)

Дмитрий...это просто чудо...ВСЁ РАБОТАЕТ...ОК!!!
Дмитрий...и пользователи MVD кто увлекается парсингом!!!
Есть сайт:

URL :='https://m.avito.ru/sankt-peterburg/sobaki/miniatyurnyy_metis_rotveylera_devochka_866645105'  //именно мобильная версия

в нём надо спарсить номер телефона!!!, но проблема в том, что на сайте присутствует битон "показать номер"!!!
У меня в голове крутится два решения:
1.) делаем:

S:=HTTPGet('https://m.avito.ru/sankt-peterburg/sobaki/miniatyurnyy_metis_rotveylera_devochka_866645105');

В коде находим нужную строчку...она нужна для следующего запроса:

sankt-peterburg/sobaki/miniatyurnyy_metis_rotveylera_devochka_866645105/phone/a16d85fb23a4c6d042f5bad7773d5ee6 

А теперь самое интересное...программкой "fiddler web debugger " при нажатием на битон "показать номер"
перехватываю данные который посылает браузер для получении номера "{"phone":"8 921 964-64-89"}" от сервера...
мои перехваченные данные из браузера:
Headres

GET /sankt-peterburg/sobaki/miniatyurnyy_metis_rotveylera_devochka_866645105/phone/a16d85fb23a4c6d042f5bad7773d5ee6?async HTTP/1.1
Accept: application/json
Accept-Encoding: gzip, deflate, lzma, sdch, br
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.87 Safari/537.36 OPR/41.0.2353.56
X-Requested-With: XMLHttpRequest
Referer: https://m.avito.ru/sankt-peterburg/sobaki/miniatyurnyy_metis_rotveylera_devochka_866645105
Connection: keep-alive
Host: m.avito.ru

Raw

GET https://m.avito.ru/sankt-peterburg/sobaki/miniatyurnyy_metis_rotveylera_devochka_866645105/phone/a16d85fb23a4c6d042f5bad7773d5ee6?async HTTP/1.1
Host: m.avito.ru
Connection: keep-alive
Accept: application/json
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.87 Safari/537.36 OPR/41.0.2353.56
Referer: https://m.avito.ru/sankt-peterburg/sobaki/miniatyurnyy_metis_rotveylera_devochka_866645105
Accept-Encoding: gzip, deflate, lzma, sdch, br
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4

Как я только их не группировал...какими символами их не разделял...результат нулевой...
S:=HTTPGet('?????????????????????????????????????????????????????????????');  //как правильно это записать???
Естественный вопрос: в MVD-это возможно??? или нужна доп.функция???
2.) Также интересно...ВЫ Дмитрий на пост №2 показали как из самого TWebBrowser по клику на битон
получить исходный HTML-код странички которая загружена именно в TWebBrowser...ОК!!!
Вопрос:
если страничка:     

URL :='https://m.avito.ru/sankt-peterburg/sobaki/miniatyurnyy_metis_rotveylera_devochka_866645105'  //именно мобильная версия

загружена в TWebBrowser...теперь по клику на битон в MBD...
автоматически происходил клик на битоне "показать номер" в  TWebBrowser загруженной странички???
Такое возможно??? или это из области фантастики моих мыслей???
Любая идея будет в помощь!!! Заблаговременно СПАСИБО!!!

100

(32 replies, posted in Russian)

Здравствуйте Дмитрий!!!
Form1.Memo1.Lines.Text:= HTTPGet('https://yandex.ru'); //получаем HTML-код странички ЭТО РАБОТАЕТ_ОК!!!
У меня такой вопрос:
на форме есть TWebBrowser и мемо, как сделать чтоб по клику на Button1
получить исходный HTML-код странички которая загружена именно в TWebBrowser...  появился в мемо???
т.е. запросить HTML-код у TWebBrowser???