الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

Class Progress

مغلق
بدأه Genius في 18 ديسمبر 2001 · 4 رد · 491 مشاهدة · في ارشيف قسم C/C++
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الاخوة الاكارم : أحب ان اقدم لكم هذا ال class وهو عبارة عن progress قم بنسخ الكود وستتعرف عليه اكثر .

/*  Programmed by: Genuis
	Date:12/18/2001
	Contenents: Progress class and example.
	Example: Reading file. 
*/
 #include 
 #include 

 using namespace std;


 class Progress
 {
 private:
         double Deficit;           // Deficit from last time.
         int nPrint;               // Number of charecters have drawn.
 public:
         int Min;                  // Minimum value.
         int Max;                  // Maximum value.
         int Maxdraw;              // Max charecters to be drawn.
         char style;               // Style of charecter to be drawn.
         void Resetall();          // Reset all setting to default.
         void ResetDeficit();      // Reset Deficit to use progress again.
         void Firstdraw();         // Draw the first line number of Maxdraw charecter.
         void DrawProgress(int);   // Draw the progress by adding values.
 };

 int main()
 {
		char *FileName="C:WindowsExplorer.exe"; // File to be read.
		ifstream File;
		int fLen=0;              // Length of File
		int nChunck=4096;        // Number of data to be read each time.
		int Offset=0;            // Offset of file.
		char *cTemp;             // To get data from File.
		int fExit=false;

		Progress prog;
		// Open File
		File.open(FileName,File.binary);
		if (!File)
		{
			cout << "File: " << FileName << " Not Founded" << endl;
			return 1;
		}

		// Get the length of the file.
		File.seekg(0,File.end);
		fLen=File.tellg();
		File.seekg(0,File.beg);

		//Progress Setting
		prog.Resetall();
		prog.Min=0;
        prog.Max=fLen;
        prog.Maxdraw=79;
        prog.style='=';
        prog.Firstdraw(); 
        // Read File
        while (!File.eof() && !fExit)
        {
                Offset=File.tellg();
                if (fLen<= Offset+nChunck)
                {
					// Read the rest of the data in File.
					nChunck=fLen-Offset;
                    fExit=true;
                }
                cTemp=new char[nChunck];
                File.read(cTemp,nChunck);
				// Do whatever with data in nChunck.
                delete [] cTemp;
                prog.DrawProgress(nChunck);
        }
        File.close();
		cout << endl;
		system("PAUSE");
        return 0;
 }


 void Progress::Resetall()
 {
          Min=0;
          Max=100;
          Maxdraw=79;
          style='=';
          Deficit=0;
          nPrint=0;
 }

 void Progress::ResetDeficit()
 {
         Deficit=0;
         nPrint=0;
 }

 void Progress::Firstdraw()
 {
         for (int i=1;i<=Maxdraw;i++)
                 cout << style;
         cout << endl;
 }

 void Progress:: DrawProgress(int Change)
 {
         float PerWithDef;
         float Percent;
		 if (Max==0) return;
         Percent=(float(Change)/ float(Max))*Maxdraw;
         PerWithDef=Percent+Deficit;
         for (int i=1;i<=PerWithDef;i++)
         {
                 if (nPrint>=Maxdraw) break;  // exit when draw over maxdraw
                 cout << style;
                 nPrint++;
         }
         Deficit=PerWithDef-float(--i);
 }

** لاحظ انني في الاخير عند Progress:: DrawProgress عملت مسافة بين : و D قم بحذفها حتى يعمل البرنامج بشكل سليم "لقد فعلت ذلك لي تظهر صورة مكان الرمزين"

#2

السلام عليكم

من نظرة سريعة على الكودمن الناحية القواعدية لي ملاحظة

"C:WindowsExplorer.exe"

في برمجة الـ consol أوالـ dos عند كتابة اي path file لابد من كتابة two backslash و الا فان البرنامج لن يعمل كما هو منتطر منه .

لاضير في وجود او عدم وجود مسافة او اكثر(بقدر محدود طبعا) بعد او قبل :: , هذا احدى مهام الـ compiler كما اعلم فلو كتبت printf ويليها عدد من المسافات فلا خطا في ذلك .

هناك حتى الأحلام أصبحت ممنوعة ...

إنه لعار أن ننتمي لهكذا أوطان ... لكن ... ربما العار أن نكون نحن أبناء لتلكم أوطان .. من يدري ؟!!

ليعلم أولئك ... إنّ الشعوب إنْ هي استيقظت تسحق ظُلامََهَا ...

There, even in dreams u r wanted

To be a programmer, how a nice dream it was

Leaving ...

أعيدوا لإسمي لونه المفضل

#3

اخي الكريم شكرا على التعليق :

في الحقيقة الكود كان مكتوبا كما قلت تماما لكن بعد ارسالي للمشاركة تم تعديلها من قبل المنتدى نفسه :)

#4

السلام عليكم

فعلا اخي يبدو ان الخطا من المنتدى(لاحظت ذلك بعد الدخول على "اقتباس الموضوع" , فعلا يوجد 2 backslash) . عذرا لم انتبه لذلك(ظلمناك بشي لم تقم به , المعذرة اخي) .

لتعديل ذلك اكتب 4 backslash .

"c:a.txt"

هناك حتى الأحلام أصبحت ممنوعة ...

إنه لعار أن ننتمي لهكذا أوطان ... لكن ... ربما العار أن نكون نحن أبناء لتلكم أوطان .. من يدري ؟!!

ليعلم أولئك ... إنّ الشعوب إنْ هي استيقظت تسحق ظُلامََهَا ...

There, even in dreams u r wanted

To be a programmer, how a nice dream it was

Leaving ...

أعيدوا لإسمي لونه المفضل

#5

No problem brother.

Thank you for you participation.

هذا الموضوع مغلق.

مواضيع مشابهة