رفتن به مطلب
برای استفاده از انجمن و عضـویت کلیک کنید.

AnswerCenter

مرکز پاسخگویی به سوالات برنامه نویسی

  • مرجع پاسخگویی
  • تولید آموزش
  • سفارش پروژه

درخواست سفارش پروژه

اطلاعیه

کاربر گرامی

به انجمن برنامه نویسی AnswerCenter.ir خوش آمدید

 برای استفاده از تمامی امکانات سایت لطفا در انجمن عضو شوید


پست های پیشنهاد شده

Ebi99    1

کاربر عادی

با سلام و خسته نباشید میشه کتابخانه 7z   یا همون سون زیپ هم برای بیسیک رپ کنید چون مشابه سایت مرجع خیلی باگ داره و تو گوشی های ضعیف یا حتی اس 8 هم فایل های حجیم تو اکسترکت مثلا 800 مگ کرش میکنه ولی زیپ معمولی قدرت فشردگی سون زیپ رو نداره و هنوز انجمن های ایرانی رپش نکردند و نساختنش بیشتر زیپ میسازند  ولی تو اندروید استودیو کتابخانه های سون زیپ تو فایل های حجیم مشکلی ندارند ممنون میشم جواب بدید و کتابخانه ای بسازید تشکر

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
محمدرضا شاهپیری    3,620

معاون انجمن

سلام عزیز ببیند چیزی که توی اندروید استودیو هست با ++c نوشته شده که قاعدتا خیلی قدرتمنده. پیاده کردنش توی بیسیک خیلی دشواره.

شما چرا از فرمت xz استفاده نمیکنید؟ به نظرم این فرمت از 7z هم بهتره و حجم رو بیشتر کم میکنه. تو کتابخونه اکسترکت کردن فایلهای xz موجوده و میتونید فایلهاتونو باهاش اکسترکت کنید.

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


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

کاربر عادی

ممنونم از جوابتون ولی طبق تستی که انجام دادم ر و چندتا فایل  7زیپ تا ده مگ حجم رو کمتر میکرد  

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


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

کاربر عادی

در در 1396/07/27, 02:27:58، محمدرضا شاهپیری گفته است :

خیر عزیز این کتابخونه فعلا با فایلهای زیپ کار میکنه. 

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

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

ان شاالله منتظر اپدیت جدید با فرمت سون زیپ 7z خواهیم داشت زیرا قطعا نسبت بتمام فرمت ها سریعتر و فشردگی بالاتری داره و تو تست ها هم جواب داده و xz هم نتونسته بهش برسه با تشکر منتظر اپدیت نسخه جدیدتون هستیم 

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
محمدرضا شاهپیری    3,620

معاون انجمن

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

 

  • پسندیدن 1

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


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

کاربر رو به رشد

در در 1396/08/23, 16:19:48، محمدرضا شاهپیری گفته است :

انشالا

سلام

ممنون بابت زحماتی که میکشید...

بنده کتابخانه خوب شما رو خریداری کردم.

جسارتا آیا برای ساخت فایل zip باید مسیر فایل مورد نظر در مسیر DirRootExternal باشه ؟!

کاش برای هر پارامتری توضیحاتی هم ثبت کرده بودید !

مثلا przip.withFileName(File.DirRootExternal&"/"&rd&".zip").withRunInThread(True) برای چیه !

من یه فایل 50 کیلوباتی رو میخوام zip کنم و ارور زیر رو میده !

split length less than minimum allowed split length of 65536 Bytes

یعنی سایز فایل باید بیشتر از 64 کیلوبایت باشه !

البته الان با فایل 1 مگابایتی هم تست کردم و نشد و ارور بالا رو نمایش داد !

 

آقا من فقط میخوام یه فایل رو با پسورد به zip تبدیل کنم همین. فایل زیپ ساخته شده با چه نامی و کجا ساخته میشه ؟

ممنون میشم راهنماییم کنید.

کد زیر رو در یک باتن نوشتم و نمیشه ، اول هم عکس رو در اکتیویتی نمایش میدم که مطمئن بشیم فایل هست و مشکلی هم نداره:

البته برای فایل بیش از یک مگابایتی SplitLenght رو هم برابر با صفر و یک قرار دادم و بازم نشد ! (البته استفاده بنده برای فایل های حدود 50 الی 100 کیلوبایتی است)

	Activity.SetBackgroundImage(LoadBitmap(File.DirRootExternal,rd & ".jpg"))
	Private przip As PersianZipManager
	Private zipparams As ZipParametr
	zipparams.initialize
	zipparams.withPassword("abcd").isEncryptFiles(True).withEncryptionMethod(zipparams.ENC_METHOD_AES).withAesKeyStrength(zipparams.AES_STRENGTH_256) _
	.withCompressionLevel(zipparams.DEFLATE_LEVEL_NORMAL).withCompressionMethod(zipparams.COMP_DEFLATE)
	przip.initialize("przip")
	przip.withFileName(File.DirRootExternal&"/"&rd&".zip").withRunInThread(True)
	przip.createZipFile(File.DirRootExternal&"/" & rd & ".jpg",zipparams.ZipParameters,False,10)

 

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


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

کاربر رو به رشد

ناچار شدم یه فایل فشرده ایجاد کنم و فایل مورد نظرم رو به اون فایل فشرده اضافه کنم !

اما روش جالبی نیست ...

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
محمدرضا شاهپیری    3,620

معاون انجمن

سلام. مورد رفع شده عزیز. نسخه جدید رو دریافت کنید.

پوزش بابت تاخیر.:53:

  • پسندیدن 1

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


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

کاربر رو به رشد

در 13 ساعت قبل، محمدرضا شاهپیری گفته است :

سلام. مورد رفع شده عزیز. نسخه جدید رو دریافت کنید.

پوزش بابت تاخیر.:53:

یعنی جدا در ساخت فایل فشرده مشکل داشت !

الان مورد جالبی رو فهمیدم ، برای ساخت فایل فشرده میشه با دستور addFileToZip هم این کار رو انجام داد. انگار خود کتابخونه بدلیل عدم وجود فایل فشرده در آدرس مورد نظر فایل فشرده رو میسازه...

ممنونم بابت رفع و پیگیری سریعتون

خدایی کتابخانه خیلی خوبی ساختید...

بنده عذرخواهی میکنم که بی موقع تاکید در رفع مورد مذکور داشتم و روزهای تعطیل رو مد نظر قرار ندادم.

حلال بفرمایید

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


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

کاربر رو به رشد

در در 1396/07/26, 21:21:13، محمدرضا شاهپیری گفته است :

سرعت اکسترکت بستگی به چندتا عامل داره. یکی نوع متد اینکریپت و رمزگزاری هست. هر چی اینکریپت قویتر باشه اکسترکت هم طولانی تر میشه.

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

واسه چیزی که فرمودین یه فایل 700 کیلوبایتی حالا هر چقدم اینکریپت شده باشه نهایتا یکی دو ثانیه باید طول بکشه. من الان یه فایل 5 مگابایتی با اینکریپت AES_STRENGTH_256 که قویترین نوعش هست توی 2 ثانیه اکسترکت کردم. اندروید هم 4.2.2 هستش. بعید میدونم به اون صورت موردی باشه.

و بد نیست این رو خدمتتون عرض کنم که اون فایل 700 کیلوبایتی رو بدون هیچ اینکریپتی اکستکرت کردم و همون 5 الی 7 ثانیه طول کشید !!

یه مورد عجیب برام پیش اومده ! من یکسری فایل رو با برنامه winrar در ویندوز به فایل zip همراه با پسورد تبدیل کردم.

چجوریه که با کتابخانه شما هر طور پارامتر اضافه میکنم اکسترکت میشه !

مثلا با اینکریپت ، بدون اینکریپت و ...

خب اگر برنامه winrar از اینکریپت استفاده نکرده باشه کتابخانه شما چطور با اینکریپت بازش میکنه ؟

 

مورد دیگری که با تست فراوان بهش رسیدم اینه که وقتی عملیات اکسترکت رو در رویداد activity_create انجام میدیم حتما باید withRunInThread برابر با true بـاشـه... وگرنه رویداد przip_onSUCCESS اصلا اجرا نمیشه !! چرا باید اینجوری باشه ؟ چون سعی داشتم کدهامو بلافاصله پس از کد اکسترکت بنویسم ، نه در رویداد اتمام اکسترکت.

البته مشکلی نیستا ... سوالم کلی بود و میتونم کدهام رو تغییر بدم.

 

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

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
rasool.g    91

کاربر رو به رشد

سلام جناب شاهپیری .

قبلا در مورد مشکل اکسترکت کردن فایل های zip داخل گوشی خودم (اندروید 4.2.2 - sony xperia l) براتون گفتم. گفتم ویدئو و جزئیاتش رو هم براتون بزارم اگر فرصت کردید بیزحمت یه بررسیش کنید ببینید مشکلش چیه.

ویدئو

فایل اولی بدون مشکل اکسترکت میشه و پیغام موفقیت امیز بودن سریعا نمایش داده میشه.

فایل دومی هم اکسترکت میشه ولی پیغام موفقیت امیز بودن 20 ثانیه بعد از 100% شدن پروگرس بار نمایش داده میشه. فکر کنم پروگرس بار زود پر میشه

مشخصات فایل 1

مشخصات فایل 2

فایل 1

فایل 2

الان با شبیه ساز nox با اندروید 4.4.2 هم تست کردم . همین مشکل رو داشت. به نظرم باید روی گوشی ها و یا سیستم های کمی ضعیف تر و قدیمی تر و فایل هایی با فشردگی بیشتر مثل فایل های متنی و پایگاه داده تست کنید تا مشکلش معلوم بشه. چون روی گوشی های جدید و همچنین فایل هایی با فشردگی کم مثل ویدئو و موزیک و عکس مشکل و تاخیری ندیدم.

مشخصات فایل 3

فایل شماره 3 هم که بعدا تست کردم یک ویدئو بود و کمتر از 1% فشرده شده بود. در هنگام اکسترکت هم مشکلی نداشت. ظاهرا هرچه بین حجم فشرده شده با حجم غیر فشرده شده فایل ها، اختلاف باشه اختلاف صد درصد شدن پروگرس بار با رویداد اتمام هم به همون اندازه زیاد میشه.

(نرم افزار های دیگه روی گوشیم در اکسترکت کردن مشکلی ندارند)

Sub Process_Globals

End Sub

Sub Globals

	Private ListView1 As ListView
	Private ProgressBar1 As ProgressBar
	Dim przip As PersianZipManager
	
	Dim pr As ZipParametr
	
End Sub

Sub Activity_Create(FirstTime As Boolean)

	Activity.LoadLayout("main")

	Dim l As List = File.ListFiles(File.Combine(File.DirRootExternal,"RRRR/Zip/"))
	
	For i=0 To l.Size - 1
		If File.IsDirectory(File.DirRootExternal,"RRRR/Zip/"& l.Get(i)) = False Then
			ListView1.AddSingleLine(l.Get(i))
		End If
	Next
	
	przip.initialize("przip")
	pr.initialize
	
End Sub

Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)
	
End Sub


Sub ListView1_ItemClick (Position As Int, Value As Object)
	Dim v As String = Value
	'Msgbox(File.DirRootExternal & "/RRRR/Zip/" & v,"file")
	'Msgbox(File.DirRootExternal & "/RRRR/Zip/ext/" & v,"dir")
	
	File.MakeDir(File.DirRootExternal,"/RRRR/Zip/ext/" & v)
	przip.withFileName(File.DirRootExternal & "/RRRR/Zip/" & v).withRunInThread(True)
	przip.extractAll(File.DirRootExternal & "/RRRR/Zip/ext/" & v ,pr.ZipParameters)
	'przip.startMonitoring
End Sub




Sub przip_onCANCELLED
	ToastMessageShow("przip_onCANCELLED",True)
End Sub

Sub przip_onERROR(error As String)
	Msgbox(error,"Error")
End Sub

Sub przip_onProgressing(percent As Int)
	ProgressBar1.Progress = percent
End Sub

Sub przip_onSUCCESS
	ToastMessageShow("przip_onSUCCESS",True)
End Sub

پارامتر ها رو در حالت های دیگه هم تست کردم، تاثیری نداشت. اخرین نسخه کتابخونه رو هم بررسی کردم.

ممنون میشم اگه این مورد رو هم بررسی کنید.

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
rasool.g    91

کاربر رو به رشد

سلام جناب شاهپیری. کتابخونه  PersianZipManager در قسمت نمایش میزان پیشرفت ظاهرا یک مشکل کوچیک ولی جدی داره. امشب دوباره چند تا تست انجام دادم. مشکلش ربطی به نسخه اندروید یا مدل گوشی نداره. اگه حجم فشرده شده با حجم استخراج شده و واقعی فایل تفاوت زیادی داشته باشه. نمایش پروگرس و میزان پیشرفت هم مشکل پیدا میکنه و زودتر پر میشه (مشکلش مشخص میشه) . برای مثال فایل زیر رو که براتون قرار میدم لطفا تست کنید. حجم فشرده شده فایل 3 مگابایت و حجم واقعی فایل که یه فایل متنی با محتوای تکراری هستش نزدیک 1 گیگ هست. در هنگام تست مثل این میمونه که با استخراج 3 مگابایت از 0.9 گیگ پروگرس بار پر میشه (همون اول سریع پر میشه) و پس از مدتی زیادی پیغام تکمیل استخراج نمایان میشه و کار تموم میشه.

b

b - دانلود - آپلود رایگان فایل

کد نمایش میزان پیشرفت هم فکر نکنم مشکلی داشته باشه

Sub przip_onProgressing(percent As Int)
	ProgressBar1.Progress = percent
End Sub

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

ممنون .

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
محمدرضا شاهپیری    3,620

معاون انجمن

ببینید عزیز. لایبرری استفاده شده توی این کتابخونه zip4j هست که میشه گفت یکی از بهترین کتابخونه های کار با فایل فشرده در جاوا هست. جاوا هم با همه خوبیاش بالاخره یه جاهایی محدودیت داره. چیزی که شما استفاده کردین فشردگی خیلی زیادی داره و جاوا هم ظاهرا نتونسته هندل کنه. واسه اینکه یه اپ کامل تو این زمینه داشته باشید مجبورید روبیارید به c و ++c نرما فزارهایی که میبینید خیلی خوب کار میکنن قطعا با این دو زبان نوشته شدن.
اما شما اگه فایلهاتون اینجوریه بهتره متد onProgressing رو استفاده نکنید و یه دیالوگ باز کنید و اونو تو متد onSucces ببندید. 

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
rasool.g    91

کاربر رو به رشد

در در 1396/10/23, 22:09:14، محمدرضا شاهپیری گفته است :

ببینید عزیز. لایبرری استفاده شده توی این کتابخونه zip4j هست که میشه گفت یکی از بهترین کتابخونه های کار با فایل فشرده در جاوا هست. جاوا هم با همه خوبیاش بالاخره یه جاهایی محدودیت داره. چیزی که شما استفاده کردین فشردگی خیلی زیادی داره و جاوا هم ظاهرا نتونسته هندل کنه. واسه اینکه یه اپ کامل تو این زمینه داشته باشید مجبورید روبیارید به c و ++c نرما فزارهایی که میبینید خیلی خوب کار میکنن قطعا با این دو زبان نوشته شدن.
اما شما اگه فایلهاتون اینجوریه بهتره متد onProgressing رو استفاده نکنید و یه دیالوگ باز کنید و اونو تو متد onSucces ببندید. 

ممنون جناب شاهپیری. مشکلم حل شد.

بدون نمایش پیشرفت که خیلی اعصاب خورد کن میشه مخصوصا اگه طول بکشه.

به یک روش دیگه تونستم برای خودم پروگرس بار درست کنم. در تست هایی که داشتم عمکرد دقیق و خوبی هم داشت. حتی تونستم برای استخراج فایل های xz هم پروگرس بار درست کنم. فقط با یک تایمر و متد سایز فایل :oops::dance2:. ممکنه روش استانداردی نباشه ولی ظاهرا خوب کار میکنه و میتونه این محدودیت رو برطرف کنه

البته اون فایل حجیم با فشردگی زیاد رو خودم ساختم تا مشکلش تو گوشی های سریع تر هم کاملا مشخص باشه وگرنه با فایل های دیتابیس معمولی تو گوشی های کند تر هم همین مشکل رو داشتم .

Dim t1 As Timer
Dim ucsize As Long = 156912640
Dim przip As PersianZipManager

t1.Initialize("t1",500)
przip.initialize("przip")

Sub Button1_Click

	przip.extractXZ(File.DirRootExternal&"/Folder/File.xz",File.DirRootExternal&"/Folder/File.db")
	t1.Enabled = True
	
End Sub


Sub t1_Tick
	
	Dim percent As Int = ((File.Size(File.DirRootExternal&"/Folder","File.db")) / ucsize) * 100
	Label1.Text = percent & "%"
	ProgressBar1.Progress = percent
	
End Sub

Sub przip_onSUCCESS
		
	t1.Enabled = False
	Label1.Text = "100%"
	ProgressBar1.Progress = 100 
	
End Sub

 

  • پسندیدن 1

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
mehdi.m    154

کاربر رو به رشد

سلام خسته نباشید

انصافا من تو خرید کتابخونه اصلا شانس ندارم :gerye:

جناب شاهپیری یک فایل زیپ با حجم 5 مگ با پسورد توی File.DirInternal  میخواستم اکسترکت کنم کتابخونه خیلی زور میزنه آخرشم هیچی.

فیلم لاگ b4a   که دو دیقه طول کشید دیگه بیخیال ادامش شدم معلوم نبود تا کی میخواست طول بکشه:ireful:

این کد بنده 

	zipparams.initialize
	PZip.initialize("persianzip")
	zipparams.withPassword("Zjib^%2854jjhKK2584*65)")
	
	PZip.withFileName(File.DirInternal&"/1.zip").withRunInThread(True)
	PZip.extractAll(File.DirInternal,zipparams.ZipParameters)


Sub persianzip_onSUCCESS
	Log("persianzip : SUCCESS")
End Sub

Sub persianzip_onERROR(error As String)
	Log("persianzip : "&error)
End Sub

Sub persianzip_onProgressing(percent As Int)
	Log("persianzip : "&percent)
End Sub

حتی این متود 

.withRunInThread()

True ,False  گذاشتم تاثیری نداشت.

بدون ساب

persianzip_onProgressing(percent As Int  هم تست کردم بازم تفاوتی نداشت.

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

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
محمدرضا شاهپیری    3,620

معاون انجمن

در در 20 تیر 1398 در 20:00، mehdi.m گفته است :

سلام خسته نباشید

انصافا من تو خرید کتابخونه اصلا شانس ندارم :gerye:

جناب شاهپیری یک فایل زیپ با حجم 5 مگ با پسورد توی File.DirInternal  میخواستم اکسترکت کنم کتابخونه خیلی زور میزنه آخرشم هیچی.

فیلم لاگ b4a   که دو دیقه طول کشید دیگه بیخیال ادامش شدم معلوم نبود تا کی میخواست طول بکشه:ireful:

این کد بنده 

حتی این متود 

True ,False  گذاشتم تاثیری نداشت.

بدون ساب

persianzip_onProgressing(percent As Int  هم تست کردم بازم تفاوتی نداشت.

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

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

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


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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به عنوان یک لینک به جای

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.


×
×
  • جدید...