Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.02.2012, 17:17   #1
mroff
Пользователь
 
Аватар для mroff
 
Регистрация: 16.07.2011
Сообщений: 21
Восклицание работа с 2ip.ru и логами

всем привет ребята вот основная цель!
нужно сделать так чтобы программа находила строчку между тегами <BIG></BIG> копировала эт текст в едит и отправляла лог в ICQ
вот
нужно дописать поиск и копирования в edit то что между ними ну и естественно отправку
вот код:
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, OleCtrls, SHDocVw, StdCtrls, MSHTML, ExtCtrls;

type
  TForm1 = class(TForm)
    btn1: TButton;
    wb1: TWebBrowser;
    mmo1: TMemo;
    btn2: TButton;
    edt1: TEdit;
    btn3: TButton;
    tmr1: TTimer;
    procedure btn1Click(Sender: TObject);
    procedure btn2Click(Sender: TObject);
    procedure wb1DocumentComplete(Sender: TObject; const pDisp: IDispatch;
      var URL: OleVariant);
    procedure btn3Click(Sender: TObject);
    procedure tmr1Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.btn1Click(Sender: TObject);
begin
wb1.Navigate('2ip.ru');
end;

procedure TForm1.btn2Click(Sender: TObject);
var
Doc:IHTMLDocument2;
S:string;
begin
//Получаем все, что внутри тегов <body>
Doc:= WB1.Document as IHTMLDocument2;
mmo1.Lines.Text:=doc.body.innerHTML;
btn3.Click;
end;

procedure TForm1.wb1DocumentComplete(Sender: TObject;
  const pDisp: IDispatch; var URL: OleVariant);
begin
if wb1.ReadyState=4 then
begin
btn2.Click;
end;
end;

procedure TForm1.btn3Click(Sender: TObject);
var // Объявляем переменные
 Find:string; // Искомая строка
 i,d:integer; // Счетчик для цикла
begin
find:='<BIG>'; // Записываем в find текст из Edit
For i:=0 to Mmo1.Lines.Count-1 do // Запускаем цикл поиска строки
If Pos(FIND, Mmo1.Lines.Text)<>0
Then
Mmo1.SetFocus();
Mmo1.SelStart:=Pos(FIND,Mmo1.Lines.Text)-1;
Mmo1.SelLength:=Length(FIND);
edt1.text:=mmo1.lines[D];

end;
procedure TForm1.tmr1Timer(Sender: TObject);
begin
btn1.Click;
end;

end.
mroff вне форума Ответить с цитированием
Старый 26.02.2012, 17:24   #2
Кольша
Далеко не
Участник клуба
 
Аватар для Кольша
 
Регистрация: 11.08.2011
Сообщений: 1,512
По умолчанию

кидаете на форму idhttp далее
Код:
var
s:string;
begin
s:=idhttp1.get('http://2ip.ru/');
s:=copy(s,pos('<BIG>',s)+5,pos('</BIG>')-1);
/////с ICQ не могу помочь т.к не работал с этим
Кольша вне форума Ответить с цитированием
Старый 27.02.2012, 00:09   #3
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

кусок моего ПО:
Код:
const
  WHOIS_IP = 'http://2ip.ru'; //whois-хост=)

var
  hStdOut: THandle; //хэндл консольки

  {-------------------------------------------------------------------------------
    Функция: ParseStr
    Автор:    ArhangeL
    Дата:  2011.01.11
    Входные параметры: str, sub1, sub2: string
    Результат:    string
    Описание: Парсер строки, вытаскивает текст из строки str между тегами sub1, sub2
    Stt входная строка.
    sub1 - открывающий тег.
    Sub2 - закрывающий тег.
  -------------------------------------------------------------------------------}

function ParseStr(str, sub1, sub2: string): string;
var
  st, fin: Integer;
begin
  st := Pos(sub1, str);
  if st > 0 then
  begin
    str := Copy(str, st + length(sub1), length(str) - 1);
    st := 1;
    fin := Pos(sub2, str);
    Result := Copy(str, st, fin - st);
    str := Copy(str, fin + length(sub2), length(str) - 1);
  end;
end;

procedure RuWriteln(const S: string);
var
  NewStr: string;
begin
  SetLength(NewStr, Length(S));
  CharToOem(PChar(S), PChar(NewStr));
  Writeln(NewStr);
end;

procedure GetMyInetIP; //Маин процедуре
var
  http: TIdHTTP; //этим смотрюм
  s: string; //сюда грабим
  TruPos: Integer; //тут чекаем
begin
  Http := TIdHTTP.Create(nil); //создаём
  try
    s := Utf8ToAnsi(http.Get(WHOIS_IP)); //графим текст и дерекодируем в ansi
    TruPos := AnsiPos('Ваш IP адрес:', s); //ищем ключ слово
    if not (TruPos = 0) then //если нашли
    begin
      RuWriteln('Ваш внешний интернет IP: ' + ParseStr(s, '<big>', '</big>')); //выводим IP
    end;
  finally
    http.Free; //отваливаемся
  end;
end;
с icq сами разбирайтесь.
Человек_Борща вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разбор таблицы на сайте 2ip.ru Человек_Борща Работа с сетью в Delphi 2 24.01.2011 02:10
Работа с матрицами (норма матрицы, работа со строками) Neitrosha Помощь студентам 1 26.11.2010 20:19
Задача. Работа с псевдослучайными последовательностями (ПСП). Работа с цветом. 0101 Помощь студентам 3 17.12.2009 23:57
Работа с webbrowser - Фреймы, работа с конкретным феймом в фрейме NewDelphi Фриланс 2 08.10.2009 11:00