لم أفهم كيفية معرفة حجم الملف في ++C
السلام عليكم و رحمة الله و بركاته.
لم أفهم كود معرفة حجم الملف الموضوع في درس التعامل مع الملفات في لغة ++C.
لماذا عرفتم المتغير end
بهذه الطريقة streampos end;
؟
#include <iostream> #include <fstream> using namespace std; int main() { // آخر حرف في الملف index لتخزين end سنستخدم المتغير streampos end; // لأننا سنستخدمه لقراءة محتوى ملف موجود في الحاسوب myFile إسمه ifstream هنا قمنا بإنشاء كائن من الكلاس ifstream myFile; // إفترضنا أنه موجود في المشروع "demo.txt" لفتح ملف إسمه open() هنا قمنا باستدعاء الدالة myFile.open("demo.txt"); // لا يوجد فيه أي مشاكل قبل التعامل معه myFile هنا قمنا بالتأكد من أن الإتصال بالملف الذي يشير له الكائن if(myFile) { // لها لجعل المترجم يتوجه لآخر حرف موجود في الملف ios::end و تمرير الثابت seekg() هنا قمنا باستدعاء الدالة myFile.seekg(0, ios::end); // end الحرف الحالي الذي يقف عنده المترجم في الذاكرة و من ثم تخزينه في المتغير index لتخزين tellg() هنا قمنا باستدعاء الدالة end = myFile.tellg(); // آخر حرف في الملف و الناتج سيكون حجم الملف index هنا قمنا بطباعة cout << "Size is: " << end << " bytes."; } else { // ثم نطقتين فوق بعضهما, ثم سبب الخطأ الذي حدث "Error" في حال وجود خطأ سيتم طباعة كلمة perror("Error"); } // لإغلاق الإتصال مع الملف في حال كان قد تم فتحه أصلاً myFile من الكائن close() هنا قمنا باستدعاء الدالة myFile.close(); return 0; }