掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
HTMLソースからURLのみを取得するには? (ID:28468)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
UNIT1 を MDIForm UNIT2 を MDIChild にして下さい。 UNIT2 と UNIT99 を プロジェクトから削除して下さい。 ディスク上に保存した google の検索結果の HTML を対象にしています -------------------------------------------------------- unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StrUtils, StdCtrls; type TForm1 = class(TForm) OpenDialog1: TOpenDialog; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private 宣言 } public { Public 宣言 } end; var Form1: TForm1; implementation uses Unit2,Unit99; {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var I,J1,J2,J3,J4,Index : Integer; StringList : TStringList; S : String; F0 : Boolean; begin if OpenDialog1.Execute = True then begin StringList := TStringList.Create; StringList.LoadFromFile(OpenDialog1.FileName); for I:=0 to StringList.Count -1 do begin Index := 1; S := StringList[I]; F0 := False; while F0 = False do begin F0 := True; J1 := PosEx('<h2 class=r>',S,Index); if J1 <> 0 then begin J2 := PosEX('<a href="',S,J1+12); if J2 <> 0 then begin J3 := PosEx('" class=l',S,J2+9); if J3 <> 0 then begin Form2 := TForm2.Create(Self); Form2.WebBrowser1.Navigate(Copy(S,J2+9,J3-J2-9)); J4 := PosEx('</h2>',S,J3+9); if J4 <> 0 then begin Index := J4; F0 := False; end; end; end; end; end; end; StringList.Free; end; end; end. ---------------------------------------------------------- unit Unit2; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, OleCtrls, SHDocVw; type TForm2 = class(TForm) WebBrowser1: TWebBrowser; procedure FormCreate(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormDestroy(Sender: TObject); private { Private 宣言 } public { Public 宣言 } end; implementation {$R *.dfm} uses Unit99; procedure TForm2.FormCreate(Sender: TObject); begin FormList.Add(Pointer(Self)); Exit; end; procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction); begin Release; end; procedure TForm2.FormDestroy(Sender: TObject); var I : Integer; begin I := FormList.IndexOf(Pointer(Self)); if I <> -1 then begin FormList.Delete(I); end; end; end. ---------------------------------------------------------------- unit Unit99; interface uses Classes,Unit1,Unit2; var Form2 : TForm2; FormList : TList; implementation initialization FormList := TList.Create; finalization FormList.Free; end.
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.