PDA

View Full Version : تبدیل بایت به درصد



m.4.r.m
شنبه 28 مرداد 1391, 14:17 عصر
سلام

من یک فایلی رو لود کردم مثلا تصویر در برنامه حجمش شده مثلا 34567 بایت حالا من اینو چه جوری به درصد تبدیل کنم و تو پروگرس بار نشون بدم ؟ ممنون میشم

Mr'Jamshidy
شنبه 28 مرداد 1391, 16:14 عصر
فرمول به این صورت هست که

مقدار فعلی تقسیم بر مقدار کلی ضربدر 100

intPercent = int((intCurrent / intTotal) * 100)

عدد صد هر عددی میتونه باشه اما شما گفتی در صد منم صد نوشتم

aleas2
شنبه 28 مرداد 1391, 16:21 عصر
عزیز فکر نمیکنی فرمول مشکل داره این که هر عددی رو تو این فرمول بذاری جواب اخر 100 هسته هر عددی تقسیم برخودش 1 هسته 1*100 میکنه

m.4.r.m
شنبه 28 مرداد 1391, 16:31 عصر
منظور از مقدار فعلی چیه ؟ مقدار کلی میهش اندازه کل فایل .

Mr'Jamshidy
شنبه 28 مرداد 1391, 16:40 عصر
عزیز فکر نمیکنی فرمول مشکل داره این که هر عددی رو تو این فرمول بذاری جواب اخر 100 هسته هر عددی تقسیم برخودش 1 هسته 1*100 میکنه

نه فرمول هیچ مشکلی نداره میتونید امتحان کنید


منظور از مقدار فعلی چیه ؟ مقدار کلی میهش اندازه کل فایل .

مثلا شما میخوای یک فایل 5 مگابایتی رو لود کنید که به عبارتی میشه 5,242,880 بایت خوب این میشه مقدار کلی

حالا داریم فایل رو لود میکنیم 1 مگابایتش لود شده که به عبارتی میشه 1,048,576 بایت این میشه عدد فعلی

حاصل تقسیم عدد فعلی در عدد کلی میشه: 1,048,576 ÷ 5,242,880 = 0.2

حاصل ضرب 0.2 در صد: 0.2 × 100 = 20

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

عدد نهایی میشه 20 که همون درصد ما هست که یعنی ما 20% فایل رو لود کردیم

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

m.4.r.m
شنبه 28 مرداد 1391, 16:50 عصر
مرسی آقای جمشیدی تا اینجا رو فهمیدم تو پست قبلی منظور من این بود که مقدار فعلی رو چه جوری بدست بیارم ؟الان یه کامند داریم یه Common file فایل رو open کردیم تو یک متغییری مقدار کلی با Filelen ذخیره می کنیم حالا مقدار فعلی رو چه جوری باید محاسبه کنم ؟

Mr'Jamshidy
شنبه 28 مرداد 1391, 16:59 عصر
شما اول بگو روش فراخوانی یا همون لود ت چطوریه؟
اصلا چی رو میخوای لود کنی؟

m.4.r.m
شنبه 28 مرداد 1391, 17:01 عصر
من به CommonDialog قرار دادم از طریق این فایلی رو لود می کنم و اندازه فایل رو از طریق Filename همین آبجکت در یک متغیر قرار میدم مثلا عکس رو لود کردم اندازش شده 5 مگابایت که با Filelen خودش به بایت تبدیل میکنه حالا از این جا به بعدش رو موندم چیکار کنم

Mr'Jamshidy
شنبه 28 مرداد 1391, 17:39 عصر
من به CommonDialog قرار دادم از طریق این فایلی رو لود می کنم و اندازه فایل رو از طریق Filename همین آبجکت در یک متغیر قرار میدم مثلا عکس رو لود کردم اندازش شده 5 مگابایت که با Filelen خودش به بایت تبدیل میکنه حالا از این جا به بعدش رو موندم چیکار کنم


شما اول بگو روش فراخوانی یا همون لود ت چطوریه؟
اصلا چی رو میخوای لود کنی؟

دوست من ببین من چی نوشتم بعد جواب بده

دقیق بگو!

مثلا با تابع Get، Input اطلاعات رو از فایل میگیری یا با API از فایل میگیری

اینا همهش مهمه

دقیق جواب بده

مثلا بایت به بایت فایل رو میخونی
1 م 1 مگ میخوانی

یهو کل فایل رو میخونی

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

دقیق مرحله به مرحله بگو توضیح بده

محسن واژدی
شنبه 28 مرداد 1391, 20:00 عصر
سلام علیکم

کد زیر را هم بررسی کنید:

Private Sub Command1_Click()
Dim bytFD(200) As Byte
Open Environ("windir") & "\explorer.exe" For Binary As #1
Do
Erase bytFD
Get #1, , bytFD
Command1 = "%" & Int((Loc(1) * 100) / LOF(1))
DoEvents
Loop Until EOF(1)
Close #1
End Sub


در کد بالا در هربار 200 بایت از explorer را در متغیر bytFD بارگذاری میکند

موفق باشید

m.4.r.m
یک شنبه 29 مرداد 1391, 06:32 صبح
نه جناب آقای جمشیدی من تو لود کردن مشکل دارم یعنی با هیچ کدوم ، اگه میش یه سورس بزارین ممنون میشم

m.4.r.m
یک شنبه 29 مرداد 1391, 13:19 عصر
Private Sub Command1_Click()
CMP.ShowOpen
T1.Text = FileLen(CMP.FileName)
End Sub



من اینطوری عکس رو فراخوانی می کنم و داخل Textbox اندازه فایل رو می خونم بعدش دیگه میمونم چیکار کنم

Mr'Jamshidy
یک شنبه 29 مرداد 1391, 17:18 عصر
ببین دوست من شما میتونی با فرمان LoadPicture عکس رو بارگزاری کنی اما چون پردازش تصویر دست شما نیست نمیتونی برای Progress بزاری

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

که عملا نمیصرفه مگر این که بخوای یک فرمت تصویری جدید اضافه کنی (فرمت نه پسوند)

پس ینظر من بیخیال این موضوع شو

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

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

m.4.r.m
یک شنبه 29 مرداد 1391, 18:17 عصر
دوست عزیزم مرسی از اینکه وقت گذاشتی رو سوالم ،

ببین من میخوام یه عکس رو تو فرمم لود کنم فکر کن تو پایگاه داده مثل عکس پرسنلی ، میخوام یه پروگرس بار داشته باشم و وقتی عکس رو از مسیر مربوط باز کردم حالا هر مسیری قبل از اینکه عکس رو مستقیم در داخل Image یا Picture نشون بده می خوام نسبت به اندازه تصویر مثلا 5 مگابایت ، 1 مگابایت یا .... نسبت به اندازه متغییر دیگه این اندازه رو اول داخل پروگرس بار نشون بده یعنی مدت زمان لود شدن این عکس داخل Image‌ رو داخل پروگرس بار نشون بدم همین . متوجه شدی دوست من ؟

Mr'Jamshidy
یک شنبه 29 مرداد 1391, 19:40 عصر
دوست عزیزم مرسی از اینکه وقت گذاشتی رو سوالم ،

ببین من میخوام یه عکس رو تو فرمم لود کنم فکر کن تو پایگاه داده مثل عکس پرسنلی ، میخوام یه پروگرس بار داشته باشم و وقتی عکس رو از مسیر مربوط باز کردم حالا هر مسیری قبل از اینکه عکس رو مستقیم در داخل Image یا Picture نشون بده می خوام نسبت به اندازه تصویر مثلا 5 مگابایت ، 1 مگابایت یا .... نسبت به اندازه متغییر دیگه این اندازه رو اول داخل پروگرس بار نشون بده یعنی مدت زمان لود شدن این عکس داخل Image‌ رو داخل پروگرس بار نشون بدم همین . متوجه شدی دوست من ؟

متوجه شدم اما شما متوجه منظور من نشدی!

فرمانی که برای لود استفاده میکنی قاعدتا یا LoadPicture هست یا تابع ویندوز... درست؟
خوب این فرمان که به شما نمیگه که چقدر از بارگزاری عکس انجام شده... میگه؟

پس کاری که شما میخوای انجام بدی عملا غیر ممکنه.

مگر...

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