PDA

View Full Version : پر شدنProgressbar بر حسب یک thread



Mohsen229266
یک شنبه 25 مرداد 1388, 19:08 عصر
با سلام خدمت دوستان من یه فایل رو Rar میکنم بین این فاصله زمانی که فایلو فشرده میکنم میخوام ProgressBar م پربشه

Atena_k
دوشنبه 26 مرداد 1388, 20:08 عصر
سلام
از کامپوننتBackgroundWorker استفاده کنید

tdkhakpur
دوشنبه 26 مرداد 1388, 22:05 عصر
با سلام خدمت دوستان من یه فایل رو Rar میکنم بین این فاصله زمانی که فایلو فشرده میکنم میخوام ProgressBar م پربشه
نه عزیز با این روش شما نمی توانید progressbar را کنترل کنید.
برای این کار میتوانید اندازه فایل را حداکثر progressbar قرا بدید و از صفر شروع کنید و با خواندن هر بایت از فایل مقدار progressbar را یک واحد افزایش بدید.(کد افزایش را داخل حلقه ای که فایل را میخوانید قرار بدید.)

Mohsen229266
سه شنبه 27 مرداد 1388, 09:37 صبح
نه عزیز با این روش شما نمی توانید progressbar را کنترل کنید.
برای این کار میتوانید اندازه فایل را حداکثر progressbar قرا بدید و از صفر شروع کنید و با خواندن هر بایت از فایل مقدار progressbar را یک واحد افزایش بدید.(کد افزایش را داخل حلقه ای که فایل را میخوانید قرار بدید.)
میشه لطفا بیشتر توضیح بدید

اندازه فایل را حداکثر progressbar قرا بدید
چطور باید این کارو انجام بدم؟و...
اگه مثالی یا لینکی هست بزارید ممنون میشم

tdkhakpur
سه شنبه 27 مرداد 1388, 14:31 عصر
سلام
من با c کار میکنم و c#همراهم نیست شما میتوانید با متد getFileSize اندازه فایل را بدست بیارید و داخل progressbar پراپرتی max و افزایش دهنده progressbar وجود دارد با استفاده از روش فوق میتوانید تغییر دهید.
این کد c هست میتوانید تبدیل کنید.


int Handle;
Handle = sopen( "test.txt" , O_BINARY | SH_DENYNO, S_IREAD) ;
unsigned long size;
ProgressBar1->Max = GetFileSize(Handle, &size);
close (Handle);
while(--size>0)
{
// پردازش زیپ را در اینجا قرار بدید البته در زیر واحد افزایش را به توجه به تعداد بایتهایی که خواندید در نظر بگیرید
ProgressBar1->Position ++;
}

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

Mohsen229266
سه شنبه 27 مرداد 1388, 20:52 عصر
میشه لطفا یکی از دوستان با سی شارپ کد بزاره ممنون

fazel-d
دوشنبه 02 شهریور 1388, 02:59 صبح
دقیقا با قرار دادن اندازه فایل در خاصیت Max پروگرس بار می تونی این کار رو انجام بدی.

از کامپوننتBackgroundWorker استفاده کنید

ه عزیز با این روش شما نمی توانید progressbar را کنترل کنید.
اتفاقا با BackGroundWorker به راحتی هر چه تمام تر Progress رو کنترل کرد.
چون که همین کنترل خاصیت progressLog رو داره.

Mohsen229266
دوشنبه 02 شهریور 1388, 16:57 عصر
دقیقا با قرار دادن اندازه فایل در خاصیت Max پروگرس بار می تونی این کار رو انجام بدی.


اتفاقا با BackGroundWorker به راحتی هر چه تمام تر Progress رو کنترل کرد.
چون که همین کنترل خاصیت progressLog رو داره.


میشه لطفا یه مثال بزنید

Mohsen229266
سه شنبه 03 شهریور 1388, 11:31 صبح
یکی از دوستان کد میزاره؟

Mohsen229266
سه شنبه 03 شهریور 1388, 21:32 عصر
چطوری میشه با استفاده از BackGroundWorker یک ProgressBaro در زمانی که یک فایل رو rarمیکنیم پر کنیم

daniel_0247
سه شنبه 03 شهریور 1388, 21:45 عصر
سلام!
من مقاله ای رو در رابطه با BackGroundWorker ها نوشتم که در قسمت مقالات تالار گذاشتم ،
می توانید دانلود کنید ، امیدوارم بهتون کمک کنه!
http://barnamenevis.org/forum/showthread.php?t=12018&page=5

Mohsen229266
سه شنبه 03 شهریور 1388, 22:15 عصر
ممنون قبلا PDF شما رو دیده بودم ولی چطوری باید طی زمان rar شدن فایل ازش استفاده کنم