عودة دورة لغة autoit وإليكم الدرس الثاني عشر

ناصر بعزيز

Administrator
طاقم الإدارة
إنضم
7 أغسطس 2018
المشاركات
646
مستوى التفاعل
666
النقاط
93
الإقامة
الجزائر
الموقع الالكتروني
mx-blind.com
الجنس
ذكر
نظام التشغيل
Windows10
قارئ الشاشة المستخدم
jaws
بسم الله الرحمن الرحيم وبه نستعين والصلاة والسلام على أشرف الخلق والمرسلين.
أما بعد فأيها الأحباب أيها الكرام أحييكم بتحية الإسلام وتحية الإسلام السلام فالسلام عليكم ورحمة الله تعالى وبركاته.
يشرفني اليوم أن أعلن لِحضراتكم بأني قد عدت إلى دورة تعلم autoit وسنتممها إلى النهاية بإذن الله
وهذا بعد توقف طويل بسبب الدراسة ومشاغل الحياة كما نعلم, لاكن وبتوفيق من الله تمكنت من العودة إلى تقديم هذه الدورة إن شاء الله ليستفيد أكبر عدد من الناس.

اليوم سنشرع من الدرس الثاني عشر في الدورة حيث نمُر على أمور بسيطة تمهيدا لما سيأتي
طبعا لمن يبحث عن دروس هذه اللغة السابقين يمكنه العودة إلى المنشور المثبت في هذا المنتدى الذي قام بنشره أخي عاشق التقنية
جزاه الله خير
وإبتداءا من هذا الدرس سأشرع في تقديم الدورة هنا في المنتديات لكي يسهل النقاش فيها إن شاء الله
وإن تمكنت سأحاول نقل المواضيع القديمة إلى هنا لكي يتسنى التنقل بينها دون عناء المدونة
الآن وبدون إطالة لنتوكل على الله تعالى ونشرع في درسنا

محتوى الدرس


في هذا الدرس سنقدم لكم دوال قراءة الملفات الرسمية وكتابتها
حيث من خلال هذه الدوال ستتمكن من فتح الملفات والكتابة عليها وقراءتها بكل سهولة ويسر
حيث سنتطرق لدالتين واحدة للقراءة والثانية للكتابة بالإضافة إلى دالة لفتح الملف ودالة لغلقه
والآن لنتوكل على الله

دوال فتح الملف وغلقه


دالة فتح الملف (fileOpen)


حيث تستخدم هذه الدالة لفتح الملفات النصية في السكربت وتجهيزها للعمل عليها سواءا قراءة أو كتابة
إسم الدالة هو
fileOpen

شكل الدالة هو :

FileOpen ("اسم الملف" [النمط = 0])


إعدادات الدالة


تحتوي هذه الدالة على إعدادين وهما :
الإعدادوصفه
إسم الملفهنا يتم كتابة اسم الملف أو مساره الكامل
النمطهنا يتم تحديد نمط الفتح حيث تقوم باستخدام واحد أو أكثر من هذه الأنماط (يمكنك استخدام أكثر من نمط بالجمع بين الأنماط كمثلا النمط1 + النمط2)

$FO_READ (0) = نمط القراءة فقط (الافتراضي)
$FO_APPEND (1) = نمط الكتابة (في آخر الملف)
$FO_OVERWRITE (2) = نمط الكتابة (حيث يحذف المحتوى القديم)
$FO_CREATEPATH (8) = انشاء مجلد التخزين إذا لم يكن موجود.
$FO_BINARY (16) = إجبار استخدام وضع Binary.
$FO_UNICODE أو $FO_UTF16_LE (32) = استخدام Unicode UTF16 Little Endian في نمط القراءة أو الكتابة.
$FO_UTF16_BE (64) = استخدام Unicode UTF16 Big Endian في القراءة أو الكتابة.
$FO_UTF8 (128) = استخدام Unicode UTF8 (مع BOM) في القراءة أو الكتابة.
$FO_UTF8_NOBOM (256) = استخدام Unicode UTF8 (بدون BOM) في القراءة أو الكتابة.
$FO_ANSI (512) = استخدام ANSI في القراءة أو الكتابة.
$FO_UTF16_LE_NOBOM (1024) = استخدام Unicode UTF16 Little Endian (بدون BOM) في القراءة أو الكتابة.
$FO_UTF16_BE_NOBOM (2048) = استخدام Unicode UTF16 Big Endian (بدون BOM) في القراءة أو الكتابة.
$FO_FULLFILE_DETECT (16384) = للفتح من أجل الكتابة بدون BOM , استخدم محتوى الملف للتعرف على إذاما كان UTF8 أو UTF16. إذا لم تستخدم هذه سيتم التحقق فقط من 64KB الأولى في الملف.
يجب أن يكن مجلد الهدف موجود إلا اذا قمت باستخدام $FO_CREATEPATH.
كما يمكنكم استخدام المتغيرات المذكورة وهذا بعد استدعاء ملف
FileConstants.au3.

وإلا يمكنكم استخدام بدل من ذالك الأرقام الموجودة بين قوسين دون استدعاء الملف

نتيجة الدالة التي ترجع بها


في حال تحققت العملية فستقوم الدالة بإرجاع القيمة الرمزية التي تسمح لك باستخدامها في الدوال الأخرى
أما في حال الفشل فالنتيجة تكون -1

مثال على الدالة


هذا مثال لقراءة ملف بترميز UTF8 مع إنشاء المجلد في حال عدم الوجود بالإضافة إلى الكتابة في آخر الملف
كود:
#include <FileConstants.au3>
local $h_open = FileOpen("d:\myfile.txt", $FO_OVERWRITE + $FO_CREATEPATH + $FO_UTF8)


دالة غلق الملف fileClose


هذه الدالة تستخدم لغلق الملف المفتوح بواسطة FileOpen
حيث إعدادها إعداد واحد وهو
الرمز الذي ترجع به دالة fileOpen
حيث شكلها
fileClose("handle")
إذا تم إغلاق الملف بنجاح فالنتيجة التي تعود بها هي 1 وإلا فهي 0


دوال كتابة وقراءة الملفات


هنا سأقوم باستعراض دوال كتابة وقراءة الملفات
ملاحظة :
كل الدوال التي سأذكرها يمكنكم استخدامها بدون استخدام FileOpen أو FileClose
حيث يمكنكم استخدام المسار الخاص بالملف فقط
لاكن يستحسن استخدامهم مع الدوال المذكورة لأنها تتيح لكم التحكم الشامل

نبدأ أولا مع دوال القراءة

قراءة الملف بالكامل FileRead


هذه الدالة تستخدم لقراءة الملف بالكامل
حيث شكل الدالة كما يلي
FileRead ( "filehandle/filename" [, count])
حيث في الإعداد الأول نكتب إما رمز فتح الملف الذي تحصلنا عليه من خلال دالة FileOpen
أو مسار الملف الكامل
وفي الإعداد الثاني هو اختياري أي يمكنكم تركه فارغا
حيث تحدد هنا عدد الحروف التي تريده أن يقرأها
وبتركه فارغا فأنت تخبر اللغة بقراءة الملف بالكامل

نتائج الدالة


في حال نجحت العملية فنتيجة الدالة تكون محتوى الملف
وإلا فرمز الخطأ يكون 1 في حال تعذر فتح الملف
أو -1 لأي خطأ آخر.

مثال


مثالا على هذه الدالة إليكم التالي

كود:
#include <FileConstants.au3>
;فتح الملف مع وضع القراءة وترميز UTF8
local $h_open = FileOpen("d:\myfile.txt", $FO_READ  + $FO_UTF8)
;قراءة الملف باستخدام الرمز
local $s_read = FileRead($h_open)
;عرض محتوى الملف
msgBox(64, "النص المقروء", $s_read)
;غلق الملف المفتوح
FileClose($h_open)
;الخروج من البرنامج
exit

قراءة سطر محدد من الملف FileReadLine


تستخدم هذه الدالة لقراءة سطر محدد من ملف نصي
وفكرتها نفس فكرة الدالة السابقة لاكن الإعداد الثاني بدلا من عدد الحروف نكتب رقم السطر الذي نريد قراءته
فشكل الدالة كما يلي
FileReadLine("handle", "line number")
إذ الإعداد الأول هو رمز فتح الملف الناتج من دالة fileOpen أو مسار الملف الكامل
أما الإعداد الثاني فنكتب رقم السطر
فالسطر الأول رقمه 1

والثاني 2
إلخ
أما لو أحببنا قراءة السطر الأخير مثلا فيمكن استخدام الرقم -1 لفعل ذالك


نتيجة الدالة


إن هذه الدالة في حال نجحت العملية فإنها تعود بمحتوى السطر المطلوب
وفي حال فشلت فرمز الخطأ يكن 1 أو -1

مثال



كود:
#include <FileConstants.au3>
;فتح الملف مع وضع القراءة وترميز UTF8
local $h_open = FileOpen("d:\myfile.txt", $FO_READ  + $FO_UTF8)
;قراءة السطر الثاني في الملف باستخدام الرمز
local $s_read = FileReadLine($h_open, 2)
;عرض محتوى السطر
msgBox(64, "النص المقروء", $s_read)
;غلق الملف المفتوح
FileClose($h_open)
;الخروج من البرنامج
exit

هذه هي دوال قراءة الملفات الرسمية المتاحة في لغة autoit


أما الآن فنأتي للدوال الخاصة بالكتابة

دالة كتابة المحتوة fileWrite


تستخدم هذه الدالة في كتابة محتوى في ملف محدد
حيث شكل الدالة كما يلي
FileWrite ( "رمز الملف/مسار الملف", "النص" )
حيث الإعداد الأول يمكن كتابة رمز الفتح الذي حصلنا عليه باستخدام دالة fileOpen
أو مسار الملف الكامل

أما الإعداد الثاني فنضع فيه النص الذي نريد كتابته

نتيجة الدالة


إن هذه الدالة في حال نجاح العملية فإنها ستعود لنا بالرقم 1
أما في حال الفشل فتعود بالرقم 0
ومسببات الفشل ربما تكون أن الفتح لم يتم على وضع الكتابة, أو أن الملف للقراءة فقط, أو يمكن أن تكون هناك أسباب أخرى كمثلا صلاحيات المسؤول في بعض المسارات.

مثال


إليكم فيما يلي مثال عن الدالة

كود:
#include <FileConstants.au3>
;فتح الملف مع وضع الكتابة والاستبدال وترميز UTF8
local $h_open = FileOpen("d:\myfile.txt", $FO_OVERWRITE + $FO_UTF8)
;كتابة محتوى في الملف باستخدام رمز الفتح
local $i_Write = FileWrite($h_open, "هذا مثال لكتابة محتوى معين في ملف")
;اظهار نتيجة العملية
msgBox(64, "النتيجة", $i_Write)
;غلق الملف المفتوح
FileClose($h_open)
;الخروج من البرنامج
exit




ملاحظة :


هناك دالة اسمها
FileWriteLine
وهذه الدالة تستخدم لكتابة محتوى في السطر الأخير في الملف
لم أرغب في التفصيل فيها لقلة أهميتها
لأن الدالة الأولى يمكن أن تستبدلها بدون مشاكل
فهذه الدالة فيها إعدادين الإعداد الأول هو لرمز الملف المفتوح أو مساره
أما الإعداد الثاني فهو للسطر الذي نريد أن نظيفه


مثال كامل على الدوال


فيما يلي سأقوم بتجميع الدوال التي تطرقنا إليها في مثال واحد لكي تسهل عليكم التجربة
كود:
#include <FileConstants.au3>
;فتح ملف مع وضع الكتابة وترميز utf8
local $h_open = FileOpen("d:\myfile.txt", $FO_OVERWRITE + $FO_UTF8)
;كتابة محتوى في ملف
FileWrite($h_open, "مرحبا هذا نص مكتوب" & @crlf & "هذا سطر آخر")
;غلق الملف المفتوح
FileClose($h_open)

;قراءة الملف
$s_read = FileRead("d:\myfile.txt")
;عرض المحتوى
msgBox(64, "محتوى الملف", $s_read)
;قراءة السطر الثاني
$s_readLine = FileReadLine("d:\myfile.txt", 2)
;عرض المحتوى
msgBox(64, "محتوى السطر", $s_readLine)
;الخروج من البرنامج
exit

خاتمة


في النهاية لا تنسو أخوكم ناصر من صالح دعاءكم
ومن يملك أي استفسار أو طلب فعلى الرحب
في أي وقت
ولأي استفسار في الدرس يرجى التعليق هنا في الموضوع فقط.
كما من يملك استفسار عام في الدورة أو اللغة يرجى فتح موضوع جديد في المنتدى, رجاءا نظمو الأسئلة حسب المواضيع, فإذا كان لديكم أي سؤال يتعلق بدرس ما فيرجى السؤال في نفس الدرس.
أما إذا كان لديكم سؤال عام ففي موضوع مستقل في المنتدى.
تقبلو تحيات أخاكم في الله ناصر بعزيز, كما لا تنسو مشاركة الموضوع لتعم الفائدة.
 
جميل جدا
ما شاء الله تبارك الله على الروعة والجمال وعلى هذا الإبداع
شرح في غاية الروعة والجمال
شكرا جزيلا لك أخي العزيز ناصر على وصول الدرس الثاني عشر من هذه الدورة الرائعة
وجزاك الله كل خير على هذا الشرح الرائع وعلى إستكمال هذه الدورة الرائعة
بارك الله فيك ونفع بك
وأسأل الله أن يجعل هذه الدورة في ميزان حسناتك وفي ميزان حسنات والدكَ رحمهُ الله رحمةً واسعة وأن يسكن والدكَ الفردوس الأعلى
تقبل تحياتي وإحترامي وتقديري.
 
جميل جدا
ما شاء الله تبارك الله على الروعة والجمال وعلى هذا الإبداع
شرح في غاية الروعة والجمال
شكرا جزيلا لك أخي العزيز ناصر على وصول الدرس الثاني عشر من هذه الدورة الرائعة
وجزاك الله كل خير على هذا الشرح الرائع وعلى إستكمال هذه الدورة الرائعة
بارك الله فيك ونفع بك
وأسأل الله أن يجعل هذه الدورة في ميزان حسناتك وفي ميزان حسنات والدكَ رحمهُ الله رحمةً واسعة وأن يسكن والدكَ الفردوس الأعلى
تقبل تحياتي وإحترامي وتقديري.
بارك الله فيك وجزاك الجنة
رحمنا الله جميعا فوق الأرض وتحتها ويوم العرض يا رب
 
بارك الله فيك وجزاك الجنة
رحمنا الله جميعا فوق الأرض وتحتها ويوم العرض يا رب
اللهم آمين يا رب
وجزاك الله بمثل ما دعوتَ بهِ أخي العزيز
بارك الله فيك وجزاك الله كل خير
وأتمنى لك النجاح والتوفيق في هذه الدورة الرائعة وفي كل حياتك
في النهاية تقبل تحياتي يا عزيزي.
 
عودة رائعة يا ناصر
هلا بك وبدروس الأوتو أت الجميلة
 
عودة
أعلى