نكمل هذا الدرس الهام مع بعض الأمثلة البسيطة لتطبيق المفاهيم السابقة التي تعلمناها سابقا .
مثال عن فتح ملف نصي للقراءة فقط :
في هذه الحالة يجب أن يكون الملف موجودا على القرص .
في حال لم يكن الملف موجودا أصلا فإن خطأ سوف يحدث ولن نحصل على رقم أو مقبض هذا الملف .
كود PHP:
int handle;
handle=FileOpen("data.csv",FILE_CSV|FILE_READ,';');
if(handle<1)
{
Print("File not found, the last error is ", GetLastError());
return(false);
}
.....
لاحظوا الوظيفة FileOpen تحتاج ثلاثة متحولات وهي:
- المتحول الأول اسم الملف الذي نريد فتحه ونحن أحرار في اختيار الاسم والامتداد الذي نريده ولسنا مقيدين بشروط خاصة .
- المتحول الثاني هو عبارة عن خصائص الملف المفتوح هل هو للقراءة فقط أو للقراءة والكتابة أو للكتابة فقط .
ونحدد ذلك بواسطة المتحولات FILE_READ - FILE_WRIT . والدمج بينهما عن طريق الحرف |
من نفس هذا المتحول نستطيع تحديد نوع الملف المفتوح هل هو نصي أم ثنائي .
الملف النصي نعرفه على أنه FILE_CSV والثنائي FILE_BIN ولا يمكن الدمج بين الحالتين أي أننا يجب أن نختار حالة واحدة فقط .
في مثالنا السابق حددنا نوع الملف على أنه نصي وأنه للقراءة فقط .
- المتحول الثالث هو الفاصل الإفتراضي بين المعلومات المكتوبة على الملف وهو هنا الحرف ؛ الفاصلة المنقوطة .
يمكن تحديد أي حرف آخر ولكن يفضل تركه كما هو لأنه قياسي بالنسبة للبرامج الأخرى مثل الاكسيل مثلا .
مثال عن طريقة كتابة معلومات نصية إلى الملف النصي :
في هذا المثال سوف نتعرف على طريقة كتابة بعض المعلومات التي نريدها إلى ملف نصي وذلك بواسطة الوظيفة FileWrite
كود PHP:
int handle;
handle=FileOpen("data.csv",FILE_CSV|FILE_WRITE,';');
FileWrite(handle,Time[0],Close[0],Open[0],High[0],Low[0]);
FileClose(handle);
في المثال السابق فتحنا الملف النصي data.csv للكتابة فقط . وفي هذه الحالة في عدم وجود الملف مسبقا فإن هذه الوظيفة سوف تنشأه دائما .
أي أنها سوف تحذف الملف القديم وتنشيء ملفا جديدا كل مرة تنفذ فيها هذه الوظيفة .
بعد ذلك استخدمنا الوظيفة FileWrite لكتابة سطر كامل من المعلومات وهي هنا معلومات الشمعة الأخيرة .
إذا نفذنا الكود السابق وفتحنا الملف data.csv فإننا سنجد فيه سطرا واحدا فقط يحتوي على معلومات الشمعة الأخيرة يفصل بين
كل معلومة وأخرى الحرف ؛ .
إذا أردنا كتابة كل معلومات الشارت إلى الملف النصي فإننا سوف نستخدم حلقة لكافة شموع الشارت ويصبح المثال على الشكل
التالي :
كود PHP:
int handle;
handle=FileOpen("data.csv",FILE_CSV|FILE_WRITE,';');
for(int i =0;i<=Bars;i++)
{
FileWrite(handle,Time[i],Close[i],Open[i],High[i],Low[i]);
}
FileClose(handle);
يجب الانتباه إلى أن التعامل مع الملفات الكبيرة ككتابة يجب أن تكون من خلال اسكريبت وليس من خلال مؤشر .
لأنه من غير المعقول كتابة معلومات شموع الشارت كله إلى ملف نصي في كل مرة يتحرك بها السعر .
م/ن للفائدة
تحياتي
نرمين من المغرب.