رفتن به مطلب
  • 0

دانلود لینک از دیتابیس و ذخیره در پوشه برنامه


KMOHAMMAD

سوال

Sub Process_Globals
  Dim sql1 As SQL
  Dim cur As Cursor
End Sub
Sub Globals
	Private ScrollView1 As ScrollView
	Private Panel1 As Panel
	Dim top As Int=2%y
	Private Label1 As Label
	Private Label2 As Label
	Dim hight As Int
	Dim su As StringUtils
	Dim ht As HttpJob
	Private Buttonexit As Button
End Sub
Sub Activity_Create(FirstTime As Boolean)
	'Do not forget to load the layout file created with the visual designer. For example:
	Activity.LoadLayout("scpnl")
	File.Copy(File.DirAssets,"hefdah.db",File.DirInternal,"hefdah.db")
	sql1.Initialize(File.DirInternal,"hefdah.db",False)
	cur=sql1.ExecQuery("SELECT * FROM st")
	For i=0 To cur.RowCount-1
		cur.Position=i
		Dim p As Panel
		p.Initialize("p")
		ScrollView1.Panel.AddView(p,2%x,top,95%x,85%y)
		p.LoadLayout("pnlpnl")
		Label2.Color=Colors.DarkGray
		Label1.Color=Colors.DarkGray
		Label1.Text=cur.GetString("matn1")
		hight=su.MeasureMultilineTextHeight(Label1,cur.GetString("matn1"))+15%y
		Label2.Text="دریافت صوت"
   		p.Height=hight+10dip
		top=top+hight
		ScrollView1.Panel.Height=top
		Label1.Gravity=Gravity.CENTER
		Label2.Gravity=Gravity.CENTER     
		Label2.tag =cur.getstring("link1")' تگ لیبل 2 
	Next
End Sub
Sub Activity_Resume
End Sub
Sub Activity_Pause (UserClosed As Boolean)
End Sub
Sub Label2_Click
	Dim lbl As Label
	lbl=Sender
ht.Initialize("ht",Me)
Log(lbl.Tag)
ht.Download(lbl.Tag)
End Sub
Sub JobDone(job As HttpJob)
	 If ht.Success =True Then
		If File.IsDirectory(File.DirRootExternal,"app/seda")=False Then
	 	       File.MakeDir(File.DirRootExternal,"app/seda")
			End If
			Dim i1 As InputStream
			Dim o1 As OutputStream
			i1=job.GetInputStream
		o1=File.OpenOutput(File.DirRootExternal & "/app/seda",cur.GetString("nam1"),False)
							
			File.Copy2(i1,o1)
			i1.Close
			o1.Close
			ToastMessageShow("با موفقیت ذخیره شد",False)
				Else
			ToastMessageShow("دانلود نشد",False)
	End If
	End Sub
Sub Buttonexit_Click
	Activity.Finish
	ExitApplication
End Sub

من اینها را قبلا توی پست دیگه مطرح کردم منتها یکی از دوستان (mr mrdia)گفت که باید تایپیک بزنم و سوالم را مطرح کنم و کدها را بذارم
اینها همه کدهای من هست  
من اومدم توی برنامه ام(صدای حیوانات) لینک های صوتی را داخل دیتابیس گذاشتم
توی این اکتویتی اومدم اون لینک ها را با تگ و سندر  دانلود میکنم 
ولی چند مشکل هست:
1- من وقتی 3 لینک را دانلود میکنم(در پوشه برنامه فقط یک فایل هست، و یک نام)
نکته جالبتر اینکه وقتی من فایل اول را دانلود میکنم و پوشه را نگاه میکنم مثلا حجم فایل دانلود شه  با نام پلنگ  2 مگ هست وقتی فایل دوم را دانلود می کنم باز در پوشه برنامه فقط یک فایل با نام پلنگ هست ولی با حجم 5 مگ و هرچی لینک ها را بیشتر دانلود میکنم همون یک فایل  با نام پلنگ هست فقط حجمش زیاد میشه

2- من در دیتابیس  خودم اومدم یه ستون به نامnam1 گذاشتم که میخام وقتی دانلود شد با نامهای که دراون ستون هست در پوشه برنامه فایل ها ذخیره بشه...ولی نمیشه

3- لینک های داخل دیتابیس من ثابت نیست و تغییر میکنه ولی فرمتش همگی mp3 هستش حالا توی بخش دانلود یا ذخیره  سازی بگم  فایل را بر اساس نام یا فرمت آخرش دانلود و بر اساس نامی که در ستونnam1 هستش ذخیره کن

-قبلا من یه برنامه درست کرده بودم روش و ساختار دیتابیس اون مثل همین بود فقط اونجا لینکها ،لینک عکس بود
با کتابخونه آریا گلاید به راحتی می اومد لینک ها را یکبار فقط (دفعات بعد پیغام تکراری میداد)دانلود و در برنامه ذخیره میکرد و حتی وقتی لینکها در دیتابیس تغییر میکرد   اونها را به عنوان لینک جدید میشناخت و دانلود میکرد

لینک ارسال
به اشتراک گذاری در سایت های دیگر

8 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

در 15 ساعت قبل، KMOHAMMAD گفته است :

سلام
خروجی کدهای اصلاح شده شما:
Capture.JPGهمانطور که میبینید 
نوع فایل  مشخص نیست؟؟    لینک ها همگی صوتی و Mp3 بوده ول یدر پوشه هیچی مشخص نیست
 

توی خط ۶۷ قسمت نام پسوند رو اضاف کتید

Cur.getstring("nam1")&".mp3"

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 9 ساعت قبل، KMOHAMMAD گفته است :

Sub Process_Globals
  Dim sql1 As SQL
  Dim cur As Cursor
End Sub
Sub Globals
	Private ScrollView1 As ScrollView
	Private Panel1 As Panel
	Dim top As Int=2%y
	Private Label1 As Label
	Private Label2 As Label
	Dim hight As Int
	Dim su As StringUtils
	Dim ht As HttpJob
	Private Buttonexit As Button
End Sub
Sub Activity_Create(FirstTime As Boolean)
	'Do not forget to load the layout file created with the visual designer. For example:
	Activity.LoadLayout("scpnl")
	File.Copy(File.DirAssets,"hefdah.db",File.DirInternal,"hefdah.db")
	sql1.Initialize(File.DirInternal,"hefdah.db",False)
	cur=sql1.ExecQuery("SELECT * FROM st")
	For i=0 To cur.RowCount-1
		cur.Position=i
		Dim p As Panel
		p.Initialize("p")
		ScrollView1.Panel.AddView(p,2%x,top,95%x,85%y)
		p.LoadLayout("pnlpnl")
		Label2.Color=Colors.DarkGray
		Label1.Color=Colors.DarkGray
		Label1.Text=cur.GetString("matn1")
		hight=su.MeasureMultilineTextHeight(Label1,cur.GetString("matn1"))+15%y
		Label2.Text="دریافت صوت"
   		p.Height=hight+10dip
		top=top+hight
		ScrollView1.Panel.Height=top
		Label1.Gravity=Gravity.CENTER
		Label2.Gravity=Gravity.CENTER     
		Label2.tag =cur.getstring("link1")' تگ لیبل 2 
	Next
End Sub
Sub Activity_Resume
End Sub
Sub Activity_Pause (UserClosed As Boolean)
End Sub
Sub Label2_Click
	Dim lbl As Label
	lbl=Sender
ht.Initialize("ht",Me)
Log(lbl.Tag)
ht.Download(lbl.Tag)
End Sub
Sub JobDone(job As HttpJob)
	 If ht.Success =True Then
		If File.IsDirectory(File.DirRootExternal,"app/seda")=False Then
	 	       File.MakeDir(File.DirRootExternal,"app/seda")
			End If
			Dim i1 As InputStream
			Dim o1 As OutputStream
			i1=job.GetInputStream
		o1=File.OpenOutput(File.DirRootExternal & "/app/seda",cur.GetString("nam1"),False)
							
			File.Copy2(i1,o1)
			i1.Close
			o1.Close
			ToastMessageShow("با موفقیت ذخیره شد",False)
				Else
			ToastMessageShow("دانلود نشد",False)
	End If
	End Sub
Sub Buttonexit_Click
	Activity.Finish
	ExitApplication
End Sub

من اینها را قبلا توی پست دیگه مطرح کردم منتها یکی از دوستان (mr mrdia)گفت که باید تایپیک بزنم و سوالم را مطرح کنم و کدها را بذارم
اینها همه کدهای من هست  
من اومدم توی برنامه ام(صدای حیوانات) لینک های صوتی را داخل دیتابیس گذاشتم
توی این اکتویتی اومدم اون لینک ها را با تگ و سندر  دانلود میکنم 
ولی چند مشکل هست:
1- من وقتی 3 لینک را دانلود میکنم(در پوشه برنامه فقط یک فایل هست، و یک نام)
نکته جالبتر اینکه وقتی من فایل اول را دانلود میکنم و پوشه را نگاه میکنم مثلا حجم فایل دانلود شه  با نام پلنگ  2 مگ هست وقتی فایل دوم را دانلود می کنم باز در پوشه برنامه فقط یک فایل با نام پلنگ هست ولی با حجم 5 مگ و هرچی لینک ها را بیشتر دانلود میکنم همون یک فایل  با نام پلنگ هست فقط حجمش زیاد میشه

2- من در دیتابیس  خودم اومدم یه ستون به نامnam1 گذاشتم که میخام وقتی دانلود شد با نامهای که دراون ستون هست در پوشه برنامه فایل ها ذخیره بشه...ولی نمیشه

3- لینک های داخل دیتابیس من ثابت نیست و تغییر میکنه ولی فرمتش همگی mp3 هستش حالا توی بخش دانلود یا ذخیره  سازی بگم  فایل را بر اساس نام یا فرمت آخرش دانلود و بر اساس نامی که در ستونnam1 هستش ذخیره کن

-قبلا من یه برنامه درست کرده بودم روش و ساختار دیتابیس اون مثل همین بود فقط اونجا لینکها ،لینک عکس بود
با کتابخونه آریا گلاید به راحتی می اومد لینک ها را یکبار فقط (دفعات بعد پیغام تکراری میداد)دانلود و در برنامه ذخیره میکرد و حتی وقتی لینکها در دیتابیس تغییر میکرد   اونها را به عنوان لینک جدید میشناخت و دانلود میکرد

سلام

من کداتون رو یه نگاه انداختم و متوجه یه مشکل شدم امیدوارم همین باشه و مشکلتون حل شه

شما قبل از خط زیر باید پوزیشن کرزرتون رو مشخص کنید (cur.position) الان که معرفی نکردید تو حلقه ای که تو تابع Main  هست پوزیشن کرزر مقدار آخر رو میگیره و همیشه همون مقدار میمنونه

 

o1=File.OpenOutput(File.DirRootExternal & "/app/seda",cur.GetString("nam1"),False)
					

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 2 ساعت قبل، m007moh گفته است :

سلام

من کداتون رو یه نگاه انداختم و متوجه یه مشکل شدم امیدوارم همین باشه و مشکلتون حل شه

شما قبل از خط زیر باید پوزیشن کرزرتون رو مشخص کنید (cur.position) الان که معرفی نکردید تو حلقه ای که تو تابع Main  هست پوزیشن کرزر مقدار آخر رو میگیره و همیشه همون مقدار میمنونه

 


o1=File.OpenOutput(File.DirRootExternal & "/app/seda",cur.GetString("nam1"),False)
					

 

این حلقه را کجا بذارم؟؟
cur.position=0 که جواب نمیده
اگر هم 
بخام 
cur.position=i بذارم خودش با یک کلیک میاد همه فایل ها را دانلود میکنه
میشه در این مورد راهنمایی بیشتر کنید
ممنون

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 12 ساعت قبل، KMOHAMMAD گفته است :

این حلقه را کجا بذارم؟؟
cur.position=0 که جواب نمیده
اگر هم 
بخام 
cur.position=i بذارم خودش با یک کلیک میاد همه فایل ها را دانلود میکنه
میشه در این مورد راهنمایی بیشتر کنید
ممنون

شما یه متغیر گلوبال int تعریف کن و پوزیشن کرزرتون رو در لحظه کلیک توی اون بریز

زمانی که دالود کامل شد اون مقدار رو به عنوان پوزیشن کرزری که میخواید نام از اون گرفته شه قرار بده

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام

تشکراز جوابدهی شما

من توی گلوبال اینو نوشتم
dim k as int
این هم کدهای داخل رویداد کلیک و دانلود کامل 
 

Sub Label2_Click
		Dim lbl As Label
		lbl=Sender
		ht.Initialize("ht",Me)
		Log(lbl.Tag)
		ht.Download(lbl.Tag)
		cur.Position=k
 End Sub
Sub JobDone(job As HttpJob)
	 If ht.Success =True Then
		If File.IsDirectory(File.DirRootExternal,"app/seda")=False Then
	 	       File.MakeDir(File.DirRootExternal,"app/seda")
			End If
			Dim i1 As InputStream
			Dim o1 As OutputStream
			i1=job.GetInputStream
			k=cur.GetString("id")
		o1=File.OpenOutput(File.DirRootExternal & "/app/seda",k,False)
							
			File.Copy2(i1,o1)
			i1.Close
			o1.Close
			ToastMessageShow("با موفقیت ذخیره شد",False)
				Else
			ToastMessageShow("دانلود نشد",False)
	End If
	End Sub

حالا نمیدونم درست  نوشتم یا نه ولی
فایل ها را به تفکیک دانلود میکنه ولی مطابق با ایدی هم  نیست و نوع فایل هم ناشناخته هم  نیست
من میخام مطابق با اون ستون نام که داخل دیتابیس هست ذخیره بشه و نوع فایل هم مشخص باشه که صوتی هست ولی اینجور نمیشه
حتی اومدم 
dim k as string
 هم امتحان کردم و بجای Id ستون nam1 را دادم ولی به 
cur.postion=k
توی رویداد کلیک  گیر میداد 
سورس را بذارم ببینید؟؟؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 1 ساعت قبل، KMOHAMMAD گفته است :

سلام

تشکراز جوابدهی شما

من توی گلوبال اینو نوشتم
dim k as int
این هم کدهای داخل رویداد کلیک و دانلود کامل 
 


Sub Label2_Click
		Dim lbl As Label
		lbl=Sender
		ht.Initialize("ht",Me)
		Log(lbl.Tag)
		ht.Download(lbl.Tag)
		cur.Position=k
 End Sub
Sub JobDone(job As HttpJob)
	 If ht.Success =True Then
		If File.IsDirectory(File.DirRootExternal,"app/seda")=False Then
	 	       File.MakeDir(File.DirRootExternal,"app/seda")
			End If
			Dim i1 As InputStream
			Dim o1 As OutputStream
			i1=job.GetInputStream
			k=cur.GetString("id")
		o1=File.OpenOutput(File.DirRootExternal & "/app/seda",k,False)
							
			File.Copy2(i1,o1)
			i1.Close
			o1.Close
			ToastMessageShow("با موفقیت ذخیره شد",False)
				Else
			ToastMessageShow("دانلود نشد",False)
	End If
	End Sub

حالا نمیدونم درست  نوشتم یا نه ولی
فایل ها را به تفکیک دانلود میکنه ولی مطابق با ایدی هم  نیست و نوع فایل هم ناشناخته هم  نیست
من میخام مطابق با اون ستون نام که داخل دیتابیس هست ذخیره بشه و نوع فایل هم مشخص باشه که صوتی هست ولی اینجور نمیشه
حتی اومدم 
dim k as string
 هم امتحان کردم و بجای Id ستون nam1 را دادم ولی به 
cur.postion=k
توی رویداد کلیک  گیر میداد 
سورس را بذارم ببینید؟؟؟

 

نه اینی که شما نوشتی اشتباس

ببینید من براتون توضیح میدم

زمانی که شما میاید توی تابع main با استفاده از حلقه توی مولتی پنلتون لیست درست میکنید کارش اینه که میاد همه تیبلتون رو دونه دونه با استفاده ار پوزیشن چک میکنه زمانی که میرسید به آخر حلقه مقدار پوزیشن میشه آخرین مقدار و اگر بعد از اون توی برنامتون پوزیشن رو تغییر ندید همیشه مقدار آخر میمونه

واسه همین باید لحظه ای ک روی او لینک کلیک میکنید باید کرزر رو بفرستید

من کدتون رو چنتا تغییر میدم تست کنید

 

Sub Process_Globals
  Dim sql1 As SQL
  Dim cur As Cursor
End Sub
Sub Globals
	Private ScrollView1 As ScrollView
	Private Panel1 As Panel
	Dim top As Int=2%y
	Private Label1 As Label
	Private Label2 As Label
	Dim hight As Int
	Dim su As StringUtils
	Dim ht As HttpJob
	Private Buttonexit As Button
End Sub
Sub Activity_Create(FirstTime As Boolean)
	'Do not forget to load the layout file created with the visual designer. For example:
	Activity.LoadLayout("scpnl")
	File.Copy(File.DirAssets,"hefdah.db",File.DirInternal,"hefdah.db")
	sql1.Initialize(File.DirInternal,"hefdah.db",False)
	cur=sql1.ExecQuery("SELECT * FROM st")
	For i=0 To cur.RowCount-1
		cur.Position=i
		Dim p As Panel
		p.Initialize("p")
		ScrollView1.Panel.AddView(p,2%x,top,95%x,85%y)
		p.LoadLayout("pnlpnl")
		Label2.Color=Colors.DarkGray
		Label1.Color=Colors.DarkGray
		Label1.Text=cur.GetString("matn1")
		hight=su.MeasureMultilineTextHeight(Label1,cur.GetString("matn1"))+15%y
		Label2.Text="دریافت صوت"
   		p.Height=hight+10dip
		top=top+hight
		ScrollView1.Panel.Height=top
		Label1.Gravity=Gravity.CENTER
		Label2.Gravity=Gravity.CENTER     
		Label2.tag =i 'اینجا تغییر کرده
	Next
End Sub
Sub Activity_Resume
End Sub
Sub Activity_Pause (UserClosed As Boolean)
End Sub

Sub Label2_Click
	Dim lbl As Label
	lbl=Sender
ht.Initialize("ht",Me)
Log(lbl.Tag)
	cur.Position=lbl.Tag'اینجا تغییر کرده
ht.Download(cur.getstring("link1"))'اینجا تغییر کرده
End Sub
Sub JobDone(job As HttpJob)
	 If ht.Success =True Then
		If File.IsDirectory(File.DirRootExternal,"app/seda")=False Then
	 	       File.MakeDir(File.DirRootExternal,"app/seda")
			End If
			Dim i1 As InputStream
			Dim o1 As OutputStream
			i1=job.GetInputStream
		o1=File.OpenOutput(File.DirRootExternal & "/app/seda",cur.GetString("nam1"),False)
							
			File.Copy2(i1,o1)
			i1.Close
			o1.Close
			ToastMessageShow("با موفقیت ذخیره شد",False)
				Else
			ToastMessageShow("دانلود نشد",False)
	End If
	End Sub
Sub Buttonexit_Click
	Activity.Finish
	ExitApplication
End Sub

 

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام
خروجی کدهای اصلاح شده شما:
Capture.JPGهمانطور که میبینید 
نوع فایل  مشخص نیست؟؟    لینک ها همگی صوتی و Mp3 بوده ول یدر پوشه هیچی مشخص نیست
 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

س لام
مشکل مشخص شدن فایل ها حل شد  ممنون:53:
اگر بخواهم پخش انلاین داشته باشم
میشه بدون دانلود هم پخش بشه ؟؟؟
یا اول باید دانلود بشه بعد پخش بشه؟؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...