Hari ini saya melihat posting di S8S8. Skrip shell, bahasa C, C ++, VBS, PHP, Perl, Java dan C#, itu adalah kemauan. , tetapi setelah membaca beberapa foto, mereka semua tidak cocok untuk anak -anak.
Kode Program Lengkap:
// Tulisannya relatif kasar, tetapi pada dasarnya dapat mewujudkan fungsi unduhan, jadi saya tidak bisa mengontrol sebanyak itu.
unit getmm;
antarmuka
penggunaan
Windows, pesan, sysutils, varian, kelas, grafik, kontrol, formulir,
Dialog, stdctrls, idBaseComponent, idComponent, IDTCPConnection,
Idtcpclient, idhttp;
const
Url = 'http: //www.sergeaura.net/tgp/';
Offi = 192; // Jumlah direktori
Offj = 16;
girlpic = 'c:/girlpic/';
// Kelas Thread
jenis
Tgetmm = class (tThread)
Terlindung
Fmmurl: string;
Fdestpath: string;
Fsubj: string;
Prosedur dieksekusi; override;
publik
constructor create (mmurl, destpath, subj: string);
akhir;
jenis
Tform1 = class (tform)
Button1: tbutton;
Button2: tbutton;
Memo1: tMemo;
Idhttp1: tidhttp;
CHECKBOX1: TCHECKBOX;
Prosedur Button1Click (pengirim: Tobject);
Prosedur Button2Click (pengirim: Tobject);
Pribadi
{Deklarasi Pribadi}
Rgetmm: tThread;
Prosedur GetMmThread (MMURL, DestPath, Subj: String);
publik
{Deklarasi Publik}
akhir;
var
Form1: tform1;
Pelaksanaan
{$ R *.dfm}
// proses unduhan
Prosedur TFORM1.BUTTON1CLICK (Pengirim: Tobject);
var
I, J: Integer;
Subi, subj, cururl, destpath: string;
strm: tMemoryStream;
Mulai
memo1.lines.clear;
// Buat direktori
Jika bukan DirectoryExists (Girlpic) maka
Mkdir (girlpic);
mencoba
strm: = tMemoryStream.create;
untuk i: = 1 to offi do
Mulai
untuk j: = 1 untuk melakukan do
Mulai
if (i <10) lalu
Subi: = '00'+inttoStr (i)
lain jika (i> 9) dan (i <100) lalu
Subi: = '0'+inttoStr (i)
lain subi: = inttoStr (i);
if (j> 9) lalu
Subj: = inttoStr (j)
lain subj: = '0'+inttoStr (j);
Cururl: = url+subi+'/gambar/';
Destpath: = girlpic+subi+'/';
Jika bukan directoryexists (destpath) maka
Paksa (destpath);
// Gunakan utas, kecepatan dapat ditingkatkan lebih dari n kali
Jika centang kotak
Mulai
GetMmThread (Cururl, Destpath, Subj);
tidur (500);
akhir yang lain
// tidak ada utas yang digunakan
Mulai
mencoba
strm.clear;
Idhttp1.get (cururl+subj+'. Jpg', strm);
strm.savetofile (destpath+subj+'. jpg');
Memo1.lines.add (cururl+'download ok!');
strm.clear;
Idhttp1.get (cururl+'tn _'+subj+'. Jpg', strm);
strm.savetofile (destpath+'tn _'+subj+'. jpg');
Memo1.lines.add (cururl+'download ok!');
kecuali
Memo1.lines.add (Cururl+'unduhan error!');
akhir;
akhir;
akhir;
akhir;
Memo1.lines.add ('semua ok!');
Akhirnya
Strm.free;
akhir;
akhir;
Prosedur TFORM1.BUTTON2CLICK (Pengirim: Tobject);
Mulai
Menutup;
akhir;
{Tgetmm}
konstruktor tgetmm.create (mmurl, destpath, subj: string);
Mulai
FMMURL: = MMURL;
Fdestpath: = destpath;
Fsubj: = subj;
diwariskan create (false);
akhir;
Prosedur tgetMM.Eksecute;
var
strm: tMemoryStream;
Idgetmm: tidhttp;
Destfile: string;
Mulai
mencoba
strm: = tMemoryStream.create;
Idgetmm: = tidhttp.create (nil);
mencoba
Destfile: = fdestpath+fsubj+'. Jpg';
Jika bukan fileexists (destfile) maka
Mulai
strm.clear;
IdgetMm.get (fmmUrl+fsubj+'. Jpg', strm);
strm.savetofile (destfile);
akhir;
Destfile: = fdestpath+'tn _'+fsubj+'. Jpg';
Jika bukan fileexists (destfile) maka
Mulai
strm.clear;
IdgetMm.get (fmmUrl+'tn _'+fsubj+'. Jpg', strm);
strm.savetofile (destfile);
akhir;
kecuali
akhir;
Akhirnya
Strm.free;
Idgetmm.free;
akhir;
akhir;
Prosedur tform1.getMMThread (mMurl, destpath, subj: string);
Mulai
Rgetmm: = tgetMm.create (mmurl, destpath, subj);
akhir;
akhir.