helyantos
جمعه 24 مهر 1388, 18:28 عصر
من کد زیر رو برای دانلود روزنامه ها نوشتم قبلا کار میکرد ولی نمیدونم چرا الان جواب نمیده میشه کمک کنید.
Dim t As New farhaniPersianDate.cDate
Dim i As Integer
Dim Address As String
Dim Idate As Integer
Dim Sdate, Day, Month As String
If Convert.ToInt32(t.Day.ToString()) < 10 Then
Day = "0" + t.Day.ToString()
Else
Day = t.Day.ToString()
End If
If Convert.ToInt32(t.Month.ToString()) < 10 Then
Month = "0" + t.Month.ToString()
Else
Month = t.Month.ToString()
End If
Sdate = t.Year.ToString() + "/" + Month.ToString() + "/" + Day.ToString()
Idate = Convert.ToInt32(t.Year.ToString() + "" + Month.ToString() + "" + Day.ToString())
Address = t.Year.ToString() + "_" + Month + "_" + Day
'************************************************* ***********
'************************************************* ***********
Server.ScriptTimeout = 180 * 60 '180 min !
'************************************************* ***********
'************************************************* ***********
For i = 1 To 3
Dim a As String
a = Address.ToString() + "_" + i.ToString()
Dim wr As HttpWebRequest = CType(HttpWebRequest.Create("http://www.abrarnews.com/politic/1387/87" + Month + Day + "/pdf/" + i.ToString() + ".pdf"), HttpWebRequest)
Dim ws As HttpWebResponse = Nothing
Try
ws = CType(wr.GetResponse(), HttpWebResponse)
Catch ex As Exception
Txt_error.Text = Txt_error.Text + "Abrar News " + a.ToString() + ".pdf" + " not found" + " ***** "
'error to download (404 or something)
Continue For
End Try
Dim str As Stream = ws.GetResponseStream()
Dim inBuf(100000000) As Byte
Dim bytesToRead As Integer = CInt(inBuf.Length)
Dim bytesRead As Integer = 0
While bytesToRead > 0
Dim n As Integer = str.Read(inBuf, bytesRead, bytesToRead)
If n = 0 Then
Exit While
End If
bytesRead += n
bytesToRead -= n
End While
Dim fstr As New FileStream(Server.MapPath("pdf/" + a.ToString() + ".pdf"), FileMode.OpenOrCreate, FileAccess.Write)
fstr.Write(inBuf, 0, bytesRead)
str.Close()
fstr.Close()
Dim strq As String = "insert into tbl_news_paper (Address,Idate,Sdate,news_id,Format,path_name) values(N'" + a.ToString() + "'," + Idate.ToString() + ",N'" + Sdate.ToString() + "',1,'pdf','Abrar')"
Dim cnn As New System.Data.SqlClient.SqlConnection(Application("cnn"))
Dim da As New System.Data.SqlClient.SqlDataAdapter(strq, cnn)
Dim ds As New System.Data.DataSet()
cnn.Open()
da.Fill(ds)
cnn.Close()
Next
من این کد رو در رویداد فرم لود نوشتم و در واقع خودم باید هر روز برنامه رو اجرا کنم تا روزنامه ها دانلود بشه میشه کاری کرد که برنامه خودش در ساعت خاصی اجرا بشه؟
Dim t As New farhaniPersianDate.cDate
Dim i As Integer
Dim Address As String
Dim Idate As Integer
Dim Sdate, Day, Month As String
If Convert.ToInt32(t.Day.ToString()) < 10 Then
Day = "0" + t.Day.ToString()
Else
Day = t.Day.ToString()
End If
If Convert.ToInt32(t.Month.ToString()) < 10 Then
Month = "0" + t.Month.ToString()
Else
Month = t.Month.ToString()
End If
Sdate = t.Year.ToString() + "/" + Month.ToString() + "/" + Day.ToString()
Idate = Convert.ToInt32(t.Year.ToString() + "" + Month.ToString() + "" + Day.ToString())
Address = t.Year.ToString() + "_" + Month + "_" + Day
'************************************************* ***********
'************************************************* ***********
Server.ScriptTimeout = 180 * 60 '180 min !
'************************************************* ***********
'************************************************* ***********
For i = 1 To 3
Dim a As String
a = Address.ToString() + "_" + i.ToString()
Dim wr As HttpWebRequest = CType(HttpWebRequest.Create("http://www.abrarnews.com/politic/1387/87" + Month + Day + "/pdf/" + i.ToString() + ".pdf"), HttpWebRequest)
Dim ws As HttpWebResponse = Nothing
Try
ws = CType(wr.GetResponse(), HttpWebResponse)
Catch ex As Exception
Txt_error.Text = Txt_error.Text + "Abrar News " + a.ToString() + ".pdf" + " not found" + " ***** "
'error to download (404 or something)
Continue For
End Try
Dim str As Stream = ws.GetResponseStream()
Dim inBuf(100000000) As Byte
Dim bytesToRead As Integer = CInt(inBuf.Length)
Dim bytesRead As Integer = 0
While bytesToRead > 0
Dim n As Integer = str.Read(inBuf, bytesRead, bytesToRead)
If n = 0 Then
Exit While
End If
bytesRead += n
bytesToRead -= n
End While
Dim fstr As New FileStream(Server.MapPath("pdf/" + a.ToString() + ".pdf"), FileMode.OpenOrCreate, FileAccess.Write)
fstr.Write(inBuf, 0, bytesRead)
str.Close()
fstr.Close()
Dim strq As String = "insert into tbl_news_paper (Address,Idate,Sdate,news_id,Format,path_name) values(N'" + a.ToString() + "'," + Idate.ToString() + ",N'" + Sdate.ToString() + "',1,'pdf','Abrar')"
Dim cnn As New System.Data.SqlClient.SqlConnection(Application("cnn"))
Dim da As New System.Data.SqlClient.SqlDataAdapter(strq, cnn)
Dim ds As New System.Data.DataSet()
cnn.Open()
da.Fill(ds)
cnn.Close()
Next
من این کد رو در رویداد فرم لود نوشتم و در واقع خودم باید هر روز برنامه رو اجرا کنم تا روزنامه ها دانلود بشه میشه کاری کرد که برنامه خودش در ساعت خاصی اجرا بشه؟