📄 0,1410,22288,00.html
字号:
<br><tt> <b>
for</b>(int k=1;k<p;k++)</tt>
<br><tt>
Memo1->Lines->Delete((Memo1->Lines->Count)-1);<i><font color="#000099">//cleaning
up garbage values</font></i></tt>
<br><tt>
i=0;
<i><font color="#000099">//end read</font></i></tt>
<br><tt>
}</tt>
<br><tt>
<b>else if</b>(Memo1->Lines->Strings[(Memo1->Lines->Count)-p].AnsiPos(<font color="#3333FF">"</HTML>"</font>)){</tt>
<br><tt>
j=Memo1->Lines->Strings[(Memo1->Lines->Count)-p].AnsiPos(<font color="#3333FF">"</HTML>"</font>);</tt>
<br><tt>
<b>for(</b>int k=1;k<p;k++)</tt>
<br><tt>
Memo1->Lines->Delete((Memo1->Lines->Count)-1);</tt>
<br><tt>
i=0;
<i><font color="#000099">//end read</font></i></tt>
<br><tt>
}</tt>
<br><tt>
p++;</tt>
<br><tt>
}</tt>
<p><tt> <b>if</b>(i!=0){</tt>
<br><tt>
Memo1->Text=Memo1->Text+buf; <i><font color="#000099">//add text
as normal</font></i></tt>
<br><tt>
i++;</tt>
<br><tt>
}</tt>
<br><tt> }</tt>
<br><tt> <b>if</b>(i==((edtMax->Text.ToInt()))){</tt>
<br><tt>
Memo1->Lines->Add(<font color="#3333FF">""</font>);</tt>
<br><tt>
Memo1->Lines->Add(<font color="#3333FF">""</font>);</tt>
<br><tt>
Memo1->Lines->Add(<font color="#3333FF">"*** Max Lines Reached! ***"</font>);</tt>
<br><tt>
Memo1->Lines->Add(<font color="#3333FF">""</font>);</tt>
<br><tt> }</tt>
<br><tt> Memo1->Lines->Add("----------------------------");</tt>
<br><tt> }</tt>
<br><tt> <b>else</b></tt>
<br><tt> ShowMessage(<font color="#3333FF">"No
reply"</font>);</tt>
<br><tt> }</tt>
<br><tt> <b>else</b>{</tt>
<br><tt> ShowMessage(<font color="#3333FF">"Connection
timed out"</font>);</tt>
<p><tt> }</tt>
<br><tt> <b>delete</b> wnscktstrmMain;
<i><font color="#000099">//important</font></i></tt>
<p><tt>}</tt>
<br><i><tt><font color="#000099">//---------------------------------------------------------------------------</font></tt></i>
<p><tt><b>void __fastcall</b> TForm1::ClientSocket1Connecting(TObject *Sender,</tt>
<br><tt> TCustomWinSocket *Socket)</tt>
<br><tt>{</tt>
<br><tt> Label1->Caption=<font color="#3333FF">"HTML Grab:
Connecting"</font>;</tt>
<br><tt> lblURL->Caption=ClientSocket1->Host;</tt>
<br><tt> Cursor=crHourGlass;</tt>
<p><tt>}</tt>
<br><i><tt><font color="#000099">//---------------------------------------------------------------------------</font></tt></i>
<p><tt><b>void __fastcall</b> TForm1::Button1Click(TObject *Sender)</tt>
<br><tt>{</tt>
<br><tt> AnsiString buf;</tt>
<p><tt> ClientSocket1->Close();</tt>
<br><tt> URL=Edit1->Text;</tt>
<br><tt> ClientSocket1->Host=ExtractURLHost(URL);</tt>
<br><tt> buf=ExtractURLPort(URL);</tt>
<br><tt> ClientSocket1->Port=buf.ToInt();</tt>
<br><tt> ClientSocket1->Open();</tt>
<br><tt>}</tt>
<br><i><tt><font color="#000099">//---------------------------------------------------------------------------</font></tt></i>
<p><tt><b>void __fastcall</b> TForm1::Button2Click(TObject *Sender)</tt>
<br><tt>{</tt>
<br><tt> Label1->Caption=<font color="#3333FF">"HTML Grab:
Disconnecting"</font>;</tt>
<br><tt> ClientSocket1->Close();</tt>
<br><tt>}</tt>
<br><i><tt><font color="#000099">//---------------------------------------------------------------------------</font></tt></i>
<p><tt><b>void __fastcall</b> TForm1::ClientSocket1Disconnect(TObject *Sender,</tt>
<br><tt> TCustomWinSocket *Socket)</tt>
<br><tt>{</tt>
<br><tt> lblURL->Caption=<font color="#3333FF">"None"</font>;</tt>
<br><tt> lblStatus->Caption=<font color="#3333FF">"Idle"</font>;</tt>
<br><tt> Label1->Caption=<font color="#3333FF">"HTML Grab:
Disconnected"</font>;</tt>
<p><tt>}</tt>
<br><i><tt><font color="#000099">//---------------------------------------------------------------------------</font></tt></i>
<p><tt><b>void __fastcall</b> TForm1::Button3Click(TObject *Sender)</tt>
<br><tt>{</tt>
<br><tt> Memo1->Text=<font color="#3333FF">""</font>;</tt>
<br><tt> lblCount->Caption=(0);</tt>
<br><tt>}</tt>
<br><i><tt><font color="#000099">//---------------------------------------------------------------------------</font></tt></i>
<p><i><tt><font color="#000099">//End MainForm.cpp</font></tt></i>
<p><i><tt><font color="#000099">//Begin URLUtil.h</font></tt></i>
<p><i><tt><font color="#000099">//---------------------------------------------------------------------------</font></tt></i>
<p><tt><font color="#009900">#ifndef URLUtil_H</font></tt>
<br><tt><font color="#009900">#define URLUtil_H</font></tt>
<br><i><tt><font color="#000099">//---------------------------------------------------------------------------</font></tt></i>
<p><tt>AnsiString ExtractURLProtocol(<b>const</b> AnsiString& URL);</tt>
<br><tt>AnsiString ExtractURLPort(<b>const</b> AnsiString& URL);</tt>
<br><tt>AnsiString ExtractURLHost(<b>const</b> AnsiString& URL);</tt>
<br><tt>AnsiString ExtractURLPath(<b>const</b> AnsiString& URL);</tt>
<p><tt><font color="#009900">#endif</font></tt>
<br><i><tt><font color="#000099">//---------------------------------------------------------------------------</font></tt></i>
<p><i><tt><font color="#000099">//End URLUtil.h</font></tt></i>
<p><i><tt><font color="#000099">//Begin URLUtil.cpp</font></tt></i>
<br>
<p><i><tt><font color="#000099">//---------------------------------------------------------------------------</font></tt></i>
<p><tt><font color="#009900">#include <vcl.h></font></tt>
<br><tt><font color="#009900">#pragma hdrstop</font></tt>
<p><tt><font color="#009900">#include "URLUtil.h"</font></tt>
<p><i><tt><font color="#000099">//---------------------------------------------------------------------------</font></tt></i>
<p><tt><font color="#009900">#pragma package(smart_init)</font></tt>
<p><tt>AnsiString ExtractURLProtocol(<b>const</b> AnsiString& URL)</tt>
<br><tt>{</tt>
<br><tt> <b>int</b> pos = URL.AnsiPos(<font color="#3333FF">"://"</font>);</tt>
<br><tt> <b>if</b>(pos == 0)</tt>
<br><tt> <b>return</b> <font color="#3333FF">""</font>;</tt>
<br><tt> <b>else</b></tt>
<br><tt> <b>return</b> URL.SubString(1, pos-1);</tt>
<p><tt>}</tt>
<br><i><tt><font color="#000099">//---------------------------------------------------------------------------</font></tt></i>
<br><tt>AnsiString ExtractURLPort(<b>const</b> AnsiString& URL)</tt>
<br><tt>{</tt>
<br><tt> <b>if</b>(ExtractURLProtocol(URL) == <font color="#3333FF">""</font>)
{</tt>
<br><tt> <b>int</b> pos1 = URL.AnsiPos(<font color="#3333FF">":"</font>);</tt>
<br><tt> <b>if</b>(pos1 == 0)</tt>
<br><tt> <b>return</b>
"80";</tt>
<br><tt> <b>int</b> pos2 = URL.AnsiPos(<font color="#3333FF">"/"</font>);</tt>
<br><tt> <b>return</b> URL.SubString(pos1,
pos2-pos1);</tt>
<br><tt> } <b>else</b> {</tt>
<br><tt> <b>int</b> pos1 = URL.AnsiPos(<font color="#3333FF">"://"</font>);</tt>
<br><tt> pos1 += 3;</tt>
<br><tt> AnsiString sub = URL.SubString(pos1,
URL.Length());</tt>
<br><tt> pos1 = sub.AnsiPos(<font color="#3333FF">":"</font>);</tt>
<br><tt> if(pos1 == 0)</tt>
<br><tt> return <font color="#3333FF">"80"</font>;</tt>
<br><tt> <b>else</b> {</tt>
<br><tt> <b>int</b> pos2
= sub.AnsiPos(<font color="#3333FF">"/"</font>);</tt>
<br><tt> <b>if</b>(pos2
== 0) {</tt>
<br><tt>
pos2 = sub.Length() + 1;</tt>
<br><tt> <b>return</b>
sub.SubString(pos1+1, pos2-pos1);</tt>
<br><tt> } <b>else</b></tt>
<br><tt> <b>return</b>
sub.SubString(pos1+1, pos2-pos1-1);</tt>
<br><tt> }</tt>
<br><tt> }</tt>
<br><tt>}</tt>
<br><i><tt><font color="#000099">//---------------------------------------------------------------------------</font></tt></i>
<br><tt>AnsiString ExtractURLHost(<b>const</b> AnsiString& URL)</tt>
<br><tt>{</tt>
<br><tt> <b>if</b>(ExtractURLProtocol(URL) == <font color="#3333FF">""</font>)
{</tt>
<br><tt> <b>int</b> pos = URL.AnsiPos(<font color="#3333FF">":"</font>);</tt>
<br><tt> <b>if</b>(pos == 0)</tt>
<br><tt> pos = URL.AnsiPos(<font color="#3333FF">"/"</font>);</tt>
<br><tt> <b>if</b>(pos == 0)</tt>
<br><tt> pos = URL.Length()+1;</tt>
<br><tt> <b>retur</b>n URL.SubString(1, pos-1);</tt>
<br><tt> } <b>else</b> {</tt>
<br><tt> <b>int</b> pos1 = URL.AnsiPos(<font color="#3333FF">"://"</font>);</tt>
<br><tt> pos1 += 3;</tt>
<br><tt> AnsiString sub = URL.SubString(pos1,
URL.Length());</tt>
<br><tt> <b>int</b> pos2 = sub.AnsiPos(<font color="#3333FF">":"</font>);</tt>
<br><tt> <b>if</b>(pos2 == 0)</tt>
<br><tt> pos2 = sub.AnsiPos(<font color="#3333FF">"/"</font>);</tt>
<br><tt> <b>if</b>(pos2 == 0)</tt>
<br><tt> pos2 = sub.Length()+1;</tt>
<br><tt> <b>return</b> sub.SubString(1, pos2-1);</tt>
<br><tt> }</tt>
<br><tt>}</tt>
<br><i><tt><font color="#000099">//---------------------------------------------------------------------------</font></tt></i>
<br><tt>AnsiString ExtractURLPath(<b>const</b> AnsiString& URL)</tt>
<br><tt>{</tt>
<br><tt> AnsiString sub;</tt>
<br><tt> <b>int</b> pos;</tt>
<br><tt> <b>if</b>(ExtractURLProtocol(URL) == <font color="#3333FF">""</font>)</tt>
<br><tt> sub = URL;</tt>
<br><tt> <b>else</b> {</tt>
<br><tt> pos = URL.AnsiPos(<font color="#3333FF">"://"</font>);</tt>
<br><tt> pos += 3;</tt>
<br><tt> sub = URL.SubString(pos, URL.Length());</tt>
<br><tt> }</tt>
<p><tt> pos = sub.AnsiPos(<font color="#3333FF">"/"</font>);</tt>
<br><tt> <b>if</b>(pos == 0)</tt>
<br><tt> <b>return</b> <font color="#3333FF">"/"</font>;</tt>
<br><tt> <b>else</b></tt>
<br><tt> <b>return</b> sub.SubString(pos,
URL.Length() - pos);</tt>
<br><tt>}</tt>
<br><i><tt><font color="#000099">//---------------------------------------------------------------------------</font></tt></i>
</table>
</BODY>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -