1. الإدارة العامة

    صفحة منتديات زيزووم للأمن والحماية

  2. الإدارة العامة

    الصفحة الرسمية لمنتديات زيزووم للأمن والحماية الفيس بوك

  3. الإدارة العامة

    الصفحة الرسمية لمنتديات زيزووم للأمن والحماية التلكرام

[3] - دورة الاوتوات "AutoIt" :::: اوامر + شروحات + دروس

الموضوع في 'منتدى البـرامــج العـامــة' بواسطة LINEZERO, بتاريخ ‏فبراير 10, 2011.

حالة الموضوع:
مغلق
  1. himoScript

    himoScript زيزوومى مميز

    إنضم إلينا في:
    ‏مايو 3, 2008
    المشاركات:
    673
    الإعجابات :
    169
    نقاط الجائزة:
    550
    الجنس:
    ذكر
    الإقامة:
    معشوقتى الاولى وامى (مصر)
    برامج الحماية:
    Kaspersky
    نظام التشغيل:
    Windows 8




    صامت firefox 4.0.1 المشروع الاولى لتثبيت
    وان كان البرنامج مثبت يتم عرض رساله وبها الاصداره المثبته






    كود PHP:
    ;~ fix one التأكد من وجود ملف التثبيت
        
    Switch FileExists(@ScriptDir "\setup.exe")
            case 
    0
        MsgBox
    (0+16+524352,"خطأ","ملف تثبيت البرنامج غير موجود")
        exit
        EndSwitch
    $prog_path       =  FileExists (@ProgramFilesDir"\Mozilla Firefox\")
    $prog_reg_path   = "HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\Mozilla Firefox\4.0.1 (en-US)\Main" ; exe , dir
    $progread_in_reg = RegRead($prog_reg_path,"Install Directory")
    $prog_reg_v      = "HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\Mozilla Firefox"
    $progread_in_reg_v = RegRead($prog_reg_v,"CurrentVersion")
    if  
    $prog_path = 1 Or  $progread_in_reg = "C:\\Program Files\\Mozilla Firefox" Then ; البرنامج مثبت بالفعل


    Select
        case 
    $prog_path = 0 ; مجلد البرنامج غير موجود
            traytip("
    silent Firefox 4.0.1","من فضلك انتظر Mozilla Firefox 4.0.1 جارى تثبيت ",1) ;جارى تثبيت البرنامج
            ShellExecuteWait("
    setup.exe","/S")
            MsgBox(0+48+524352,"
    تم التثبيت","Mozilla Firefox 4.0.1 تم الانتهاء من تثبيت برنامج")
            exit
        case else ;البرنامج مثبت بالفعل


            If 
    $progread_in_reg_v = "" Then
            
    $progread_in_reg_v =  "غير معلوم "
        endif

    MsgBox(0+64+524352,"
    البرنامج موجود","مثبت بالفعل Mozilla firefox برنامج"& @CRLF & $progread_in_reg_v &"  رقم النسخه " & @CRLF & "........جارى الخروج")

    exit
    EndSelect
        else ; البرنامج غير مثبت ولم يتم العثور على شوائب فى الرجسترى
        traytip("
    silent Firefox 4.0.1","Firefox 4.0جارى تثبيت من فضلك انتظر",1) ;جارى تثبيت البرنامج
            ShellExecuteWait("
    setup.exe","/S")
            MsgBox(0+48+524352,"
    تم التثبيت","Firefox 4.0.1 تم الانتهاء من تثبيت برنامج")
            exit
    endif
     
  2. himoScript

    himoScript زيزوومى مميز

    إنضم إلينا في:
    ‏مايو 3, 2008
    المشاركات:
    673
    الإعجابات :
    169
    نقاط الجائزة:
    550
    الجنس:
    ذكر
    الإقامة:
    معشوقتى الاولى وامى (مصر)
    برامج الحماية:
    Kaspersky
    نظام التشغيل:
    Windows 8
    مثال بسيط عن الحلقات صفحه 46
    تعالوا نعد مع بعض :q:

    راح تجيلك الجلطه الكبرى لو فكرت تعد :hh:

    كود PHP:
    break(0)

    $input=""
    $in=""
    while $input <> 1000000
        $input 
    InputBox("هههههههه","ها تعالوا نعد من واحد الى 6 وانا راح اساعدك")
        
    $in=$input+1
        msgbox
    (0,"",$in)
        if 
    $in 7 Then
            msgbox
    (0,"اسف","تعرف تعد لحد مليون ههههههههههههه رحت فيها يااخ")
            endif
    wend

     
  3. ramay

    ramay زيزوومى مبدع

    إنضم إلينا في:
    ‏أكتوبر 17, 2008
    المشاركات:
    1,655
    الإعجابات :
    144
    نقاط الجائزة:
    700
    الإقامة:
    سوريه
    برامج الحماية:
    Kaspersky
    نظام التشغيل:
    Windows 7
    نعم يا غالي هي هنا

    كود:
    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU
     
  4. himoScript

    himoScript زيزوومى مميز

    إنضم إلينا في:
    ‏مايو 3, 2008
    المشاركات:
    673
    الإعجابات :
    169
    نقاط الجائزة:
    550
    الجنس:
    ذكر
    الإقامة:
    معشوقتى الاولى وامى (مصر)
    برامج الحماية:
    Kaspersky
    نظام التشغيل:
    Windows 8
    رامى
    برافو عليك فعلا نفس توقعى
    ال يتعمق فى الرجسترى يمتلك اسحله فتاكه :hh:

    تسلم يغالى ايه اخبارك فى الحلقات طمنى ؟

    شفتك فى الصفحات الماضيه بتحارب مع عبارات اللغه الشروط روحك
    عاليه جدا وصبور بدرجه غريبه
    الله يوفئك
    سلام
     
  5. ramay

    ramay زيزوومى مبدع

    إنضم إلينا في:
    ‏أكتوبر 17, 2008
    المشاركات:
    1,655
    الإعجابات :
    144
    نقاط الجائزة:
    700
    الإقامة:
    سوريه
    برامج الحماية:
    Kaspersky
    نظام التشغيل:
    Windows 7
    السلام عليكم ورحمة الله وبركاته

    أما عن حلقات أنه صعبه قليل أو عندما سوف تتكتمل دروسه كله ونبدأ في تنفيذ عملي سأفهمه أن شاء الله الافضل
     
  6. waget

    waget زيزوومى مبدع

    إنضم إلينا في:
    ‏يناير 9, 2009
    المشاركات:
    1,367
    الإعجابات :
    82
    نقاط الجائزة:
    640
    الجنس:
    ذكر
    الإقامة:
    K.S.A
    برامج الحماية:
    Microsoft Security Essentials
    نظام التشغيل:
    Windows 7

    الحلقات اللانهائية

    الحلقات اللانهائية هي ببساطة وضع شرط لا يمكن كسره ويكون صحيح دائماً ..

    راح نشوف الان صيغ لهذه الشروط ..

    1) عملية مقارنه ..لايمكن أن تتغير ..

    مثل 7<10

    هذا الشرط صحيح دائماً .. تذكرون عند وضع شرط عملية مقارنة كنا نضع عدد ثابت ونضع المقارنه

    على قيمة متغيرة ..تتغير (بالزيادة أو النقصان أو قيمة راجعه لدالة أو إدخال مستخدم)

    هنا لن يحدث أي من ذالك والشرط سيقى على حالة ..

    كود:
    [COLOR=Blue]while[/COLOR][COLOR=Red]([/COLOR][COLOR=Indigo]10[/COLOR] [COLOR=Red]>[/COLOR][COLOR=Indigo] 7[/COLOR][COLOR=Red])[/COLOR]
        [I][COLOR=Navy]msgbox[/COLOR][/I][COLOR=Red]([/COLOR][COLOR=Indigo]0[/COLOR][COLOR=Red],[/COLOR][COLOR=Silver]""[COLOR=Red],[/COLOR]"Welcome"[/COLOR][COLOR=Red])[/COLOR]
    [COLOR=Blue]wend[/COLOR]
    
    2)
    الطريقة الثانية هي التحقق هل القيم صحيحة أو خاطئة ..

    زي ماقلنا سابقاً إذا وضعت قيمة نصية في مكان الشرط أو قيمة رقيمة ..

    فالاتوات يعتبر القيمة النصية "" <<الفارغه false
    والقيمة النصية ألي تحتوي ولو على حرف واحد true

    وأيضاً بالنسبة للأعداد يعتبر أي عدد صحيح عدا الصفر true

    والصفر false

    إستخدمت عبارة - يعتبر - ولكن الحقيقة هو يحول القيم لقيم منطقية true -false

    سيكون لنا وقفه مع تحويل القيم في الاتوات :d:

    نرجع لموضوعنا الان نضع الشرط كنص أي نص ..

    كود:
    [COLOR=Blue]while[/COLOR][COLOR=Red]([/COLOR][COLOR=Silver]"Waget"[/COLOR][COLOR=Red])[/COLOR]
        [I][COLOR=Navy]MsgBox[/COLOR][/I][COLOR=Red]([/COLOR][COLOR=Indigo]0[/COLOR][COLOR=Red],[/COLOR][COLOR=Silver]""[COLOR=Red],[/COLOR]"WELCOME"[/COLOR][COLOR=Red])[/COLOR]
    [COLOR=Blue]wend[/COLOR]
    
    :d:

    مع الاعداد نضع عدد أي عدد عدا 0 وفي الغالب والمتعارف علية هو الواحد
    كود:
    [COLOR=Blue]while [/COLOR][COLOR=Indigo]1[/COLOR]
        [I][COLOR=Navy]MsgBox[/COLOR][/I][COLOR=Red]([/COLOR][COLOR=Indigo]0[/COLOR][COLOR=Red],[/COLOR][COLOR=Silver]""[/COLOR][COLOR=Red],[/COLOR][COLOR=Silver]"WELCOME"[/COLOR][COLOR=Red])[/COLOR]
    [COLOR=Blue]wend[/COLOR]
    
    3) وضع true مكان الشرط

    كود:
    [COLOR=Blue]while true[/COLOR]
        [I][COLOR=Navy]MsgBox[/COLOR][/I][COLOR=Red]([/COLOR][COLOR=Indigo]0[/COLOR][COLOR=Red],[/COLOR][COLOR=Silver]""[COLOR=Red],[/COLOR]"WELCOME"[/COLOR][COLOR=Red])[/COLOR]
    [COLOR=Blue]wend[/COLOR]
    
    في الغالب نستخدم الطريقتين السابقة :d:

    الان كيف أخرج من هذه الحلقات...

    ياتي الان دور ExitLoop

    الصيغة العامة /
    كود:
    [COLOR=Blue]ExitLoop [/COLOR][COLOR=Silver][level][/COLOR]
    
    level : مستوى الخروج :wink:

    الافتراضي 1 ويعني الحلقة الحالية
    تستخدم مع الشرط ..

    تمكنا مثلا من الخروج من الحلقات اللانهائية أو وضع شرط آخر داخل الحلقة :)

    تفيدنا في تلافي أخطاء قاتلة في السيكريبت ..

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

    بعده .. فلو كانت نتيجة العملية في السطر الاول خاطئة .. فما الداعي لتنفيذ العملية الاخرى

    التي تستوجب صحة العملية السابقة :u:

    قد تكون لدينا حلوول آخرى لكن الخروج يبقى أحدها :d:

    ^
    بعد الفلسفة ألي فوق نشوف بعض الامثلة :)
    كود:
    [COLOR=DarkRed]$caunt[/COLOR][COLOR=Red]=[/COLOR] [COLOR=Indigo]0[/COLOR]
    [COLOR=Blue]while true[/COLOR]
        [COLOR=Navy][I]MsgBox[/I][/COLOR][COLOR=Red]([/COLOR][COLOR=Indigo]0[/COLOR][COLOR=Silver][COLOR=Red],[/COLOR]""[COLOR=Red],[/COLOR]"WELCOME"[/COLOR][COLOR=Red])[/COLOR]
     [COLOR=DarkRed]   $caunt = $caunt[/COLOR][COLOR=Red] +[/COLOR] [COLOR=Indigo]1[/COLOR]
       [COLOR=Blue] if[/COLOR][COLOR=DarkRed] $caunt[/COLOR] [COLOR=Red]=[/COLOR] [COLOR=Indigo]10 [/COLOR][COLOR=Blue]Then[/COLOR]
            [COLOR=Blue]ExitLoop[/COLOR]
        [COLOR=Blue]endif[/COLOR]
    [COLOR=Blue]wend[/COLOR]
    
    
    أعتقد واضح :d:
    كود:
    
    
    [COLOR=Blue]while[/COLOR][COLOR=Red]([/COLOR][I][COLOR=Navy]ProcessExists[/COLOR][/I][COLOR=Red]([/COLOR][COLOR=Silver]"IDMan.exe"[/COLOR][COLOR=Red]))[/COLOR]
        
    [COLOR=DarkRed]    $close [/COLOR][COLOR=Red]=[/COLOR] [I][COLOR=Navy]ProcessClose[/COLOR][/I][COLOR=Red]([/COLOR][COLOR=Silver]"IDMan.exe"[/COLOR][COLOR=Red]) [/COLOR]
      [COLOR=Blue]  if[/COLOR][COLOR=DarkRed] $close[/COLOR] [COLOR=Red]<>[/COLOR] [COLOR=Indigo]1[/COLOR] [COLOR=Blue]Then[/COLOR]
            [COLOR=Blue]ExitLoop[/COLOR]
    
        [COLOR=Blue]endif[/COLOR]
    
        [COLOR=Navy][I]FileDelete[/I][/COLOR][COLOR=Red]([/COLOR][COLOR=Magenta]@ProgramFilesDir[/COLOR] [COLOR=Red]&[/COLOR] [COLOR=Silver]"\Internet Download Manager\IDMan.exe"[/COLOR][COLOR=Red])[/COLOR]
        
    [COLOR=Blue]wend[/COLOR]
    
    هنا شرط الدخول للحلقة هو وجود العملية IDman

    يحاول البرنامج يغلقها إذا نجح حذف الملف من مجلد البرنامج إذا لم يستطع خرج من الحلقة

    لو وضعنا ContinueLoop

    لن يتم الخروج من الحلقه حتى يستطيع إغلاق البرنامج :d:

    نأتي الان للحلقات المتداخله و lavel

    كود:
    [COLOR=DarkRed]$caunt [/COLOR][COLOR=Red]= [/COLOR][COLOR=Indigo]0[/COLOR]
    [COLOR=Blue]while [/COLOR][COLOR=Red]([/COLOR][COLOR=DarkRed]$caunt[/COLOR][COLOR=Red] <[/COLOR] [COLOR=Indigo]20[/COLOR][COLOR=Red])[/COLOR]
    
        [COLOR=Blue]while[/COLOR][COLOR=Red]([/COLOR][COLOR=Blue]true[/COLOR][COLOR=Red])[/COLOR]
            [COLOR=Navy][I]MsgBox[/I][/COLOR][COLOR=Red]([/COLOR][COLOR=Indigo]0[/COLOR][COLOR=Red],[/COLOR][COLOR=Silver]"B"[/COLOR][COLOR=Red],[/COLOR][COLOR=DarkRed]$caunt[/COLOR][COLOR=Red])[/COLOR]
           [COLOR=DarkRed] $caunt [/COLOR][COLOR=Red]+=[/COLOR][COLOR=Indigo]1[/COLOR]
           [COLOR=Blue] if[/COLOR] [COLOR=DarkRed]$caunt[/COLOR] [COLOR=Red]=[/COLOR] 10 [COLOR=Blue]Then[/COLOR]
                [COLOR=Blue]Exitloop[/COLOR]
            [COLOR=Blue]endif[/COLOR]
        [COLOR=Blue]wend[/COLOR][COLOR=YellowGreen];==>End B
    [/COLOR] 
    
        [COLOR=Blue]while[/COLOR]([COLOR=DarkRed]$caunt [/COLOR][COLOR=Red]<[/COLOR][COLOR=Indigo] 20[/COLOR])
            [COLOR=Navy][I]MsgBox[/I][/COLOR][COLOR=Red]([/COLOR][COLOR=Indigo]0[/COLOR][COLOR=Red],[/COLOR][COLOR=Silver]"C"[/COLOR][COLOR=Red],[/COLOR][COLOR=DarkRed]$caunt[/COLOR][COLOR=Red])[/COLOR]
    
          [COLOR=DarkRed]  $caunt[/COLOR] [COLOR=Red]+=[/COLOR][COLOR=Indigo]1[/COLOR]
    
        [COLOR=Blue]wend [/COLOR][COLOR=YellowGreen];==> End C[/COLOR]
    
    [COLOR=Blue]wend [/COLOR][COLOR=YellowGreen];==>End A[/COLOR]
    
    
    لدينا هنا ثلاث حلقات ..
    الحلقة A راح نقول إنها الحلقة الام

    بداخلها حلقتين B ,C

    نشوف أول شيء الlavel هو الان 1

    أين سيتم الخروج ؟؟

    سيتم الخروج إلى الحلقة A وإكمال باقي الاوامر

    هنا مافي غير الحلقه الثانية C يتم إختبار شرطها والدخول لها

    طيب لو غيرنا الlavel ؟؟
    إلى 2 أين راح يتم الخروج

    راح يتم الخروج من الحلقة A وبالتالي لن يتم الدخول للحلقة C

    :d:
     
  7. waget

    waget زيزوومى مبدع

    إنضم إلينا في:
    ‏يناير 9, 2009
    المشاركات:
    1,367
    الإعجابات :
    82
    نقاط الجائزة:
    640
    الجنس:
    ذكر
    الإقامة:
    K.S.A
    برامج الحماية:
    Microsoft Security Essentials
    نظام التشغيل:
    Windows 7
    كود:
    $1 = 0 ; متغير 1
    $2 = 16  ; متغير2
    $msg ="";  ؟؟؟
    While($1 < 9) ; هنا أنا كان متغير 1 أضغر من شرط أدخل
     $msg &= $1 &"" ; ؟؟
     While($2 > 15);   أن كان متغير 2 أكبر من شرط أدخل شرط
      $msg & =  $2 &" " ;  إضافه القيمة الجديدة للمتغير بجانب القيم السابقة
      ;مع إضافه مسافة بينها
      ;$msg = $msg & $2 & "" <== يماثل هذا
     MsgBox(0,"",$msg);  هنا لي أظهار مسج  أن تحقق شرط
     $2 = $2 + 1;  هنا يزيد واحد في كل مر ه
    WEnd;  خروج
    [COLOR=Red]$msg &= @CRLF ; هنا إضافه سطر جديد مع وجود القيم السابقة لإضهارها في المسج[/COLOR]
    [COLOR=Red] + 1; ي$1 = $1زيد واحد في كل مره[/COLOR]
    [COLOR=Red]$2 = 1 ; في مثالك ماله هدف :)[/COLOR]
    [COLOR=Red]; في المثال ألي وضعته أنا الهدف منه إعادة قيمة المتغير ل1 ليبدأ من جديد في الحلقة التالية[/COLOR]
    WEnd;  خروج
    
    
    :d: تجربتك هذي مثال على الحلقات اللانهائية لأنك واضع المتغير أكبر من 15من الاساس

    بالنسبة للي بالاحمر لن يتنفذ لأنه لن يخرج من الحلقة الثانية :)

    إقرأ الملاحظات :)

    شوف الاامثلة ألي وضعتها أنا ووضعها الاستاذ بندر و إلعب فيها إحذف أضيف وشوف النتيجة

    ^_^
     
  8. waget

    waget زيزوومى مبدع

    إنضم إلينا في:
    ‏يناير 9, 2009
    المشاركات:
    1,367
    الإعجابات :
    82
    نقاط الجائزة:
    640
    الجنس:
    ذكر
    الإقامة:
    K.S.A
    برامج الحماية:
    Microsoft Security Essentials
    نظام التشغيل:
    Windows 7

    ^
    :openmouth:

    حاتم & إبراهيم :openmouth:k:

    إطلعت على الامثلة ماشاء الله مايحتاج

    حتوم حبيت لو إنك لعبت في التطبيق شوي ..

    أعذروني على ردي المتأخر << قعد يعد لمليوون :hh:
     
  9. waget

    waget زيزوومى مبدع

    إنضم إلينا في:
    ‏يناير 9, 2009
    المشاركات:
    1,367
    الإعجابات :
    82
    نقاط الجائزة:
    640
    الجنس:
    ذكر
    الإقامة:
    K.S.A
    برامج الحماية:
    Microsoft Security Essentials
    نظام التشغيل:
    Windows 7
    تم تجديد الفهرس هنا :d:
     
  10. waget

    waget زيزوومى مبدع

    إنضم إلينا في:
    ‏يناير 9, 2009
    المشاركات:
    1,367
    الإعجابات :
    82
    نقاط الجائزة:
    640
    الجنس:
    ذكر
    الإقامة:
    K.S.A
    برامج الحماية:
    Microsoft Security Essentials
    نظام التشغيل:
    Windows 7
    [5]الحلقات..العبارة Do


    [5]الحلقات..العبارة Do

    العبارة do مشابهه جداُ لwhile

    ينطبق عليها جميع ماسبق من دروس الحلقات

    يوجد إخلاف بينها وبين while وسنوضحه وهذي العبارة هي الاقل إستدخدام :d:

    الصيغه العامة /

    كود:
    [COLOR=Blue]Do[/COLOR]
       [COLOR=Silver] statements
        ...[/COLOR]
    [COLOR=Blue]Until [/COLOR][COLOR=Silver]<expression>[/COLOR]
    
    نلاحظ هنا أن الشرط يكتب في آخر العبارة بعد كلمةUntil

    ومنه نستنتج أن الشرط يختبر بعد إتمام كل الحلقة وليس قبل الدخول لها ..

    نقدر نسوغ هذي الطريقة بإختبار الخروج من الحلقة

    وفي while نقدر نقول إختبار الدخول للحلقة

    المميز في do هو إنك تضمن تنفيذ ماف داخل جسم العبارة ولو مره واحده على الاقل :d:

    والسبب هو إن الاختبار زي ماقلنا فوق يحدث في آخر كل لفه عكس while

    وعند كتابة الشرط يجب أن تراعي شيء :)

    في while حنا نضع الشرط لكي تستمر الحلقة

    هنا نضع الشرط علشان الخروج يعني علشان تستمر الحلقة يجب أن يكون ناتج التحقق من الشرط

    false إذا أصبح true يخرج من الحلقة

    أعيد وأقول الشرط الي نضعه هو شرط للخروج :smile:



    كود:
    [COLOR=DarkRed]$var1[/COLOR] [COLOR=Red]=[/COLOR] [COLOR=Navy]5[/COLOR]
    [COLOR=DarkRed]$var2 [/COLOR][COLOR=Red]=[/COLOR] [COLOR=Navy]6[/COLOR]
    [COLOR=Blue]do[/COLOR]
        [COLOR=DarkRed]$var2[/COLOR] [COLOR=Red]=[/COLOR] [COLOR=DarkRed]$var2[/COLOR] [COLOR=Red]+[/COLOR] [COLOR=Navy]1[/COLOR]
        [COLOR=Navy][I]MsgBox[/I][/COLOR][COLOR=Red]([/COLOR][COLOR=Navy]0[/COLOR][COLOR=Red],[/COLOR][COLOR=Silver]""[/COLOR][COLOR=Red],[/COLOR][COLOR=DarkRed]$var2[/COLOR][COLOR=Red])[/COLOR]
    
    [COLOR=Blue]Until [/COLOR][COLOR=Red]([/COLOR][COLOR=DarkRed]$var1[/COLOR] [COLOR=Red]<[/COLOR] [COLOR=DarkRed]$var2[/COLOR][COLOR=Red])[/COLOR]
    
    الشرط يقول إذا المتغير الاول أصغر من الثاني

    أخرج من الحلقة وفي داخل الحلقة راح يزيد المتغير الثاني ب1

    طبعا لو نشوف قيم المتغيرات نلاحظ إن الاول أصغر من الثاني ..

    ونلاحظ لما نجرب السيكريبت إنه تمت زيادة المتغير الثاني ب1

    فهذا يدل إنه راح يدخل جسم الحلقة وينفذها ثم يختبر الشرط :d:

    حتى لو تحقق الشرط :)

    أقصد باتحقق الشرط هو أن يصبح true

    وهذا يعني الخروج
    :d::d:

    الان نقدر نكتب حلقة متداخله بإستخدام do
    كود:
    
    [COLOR=DarkRed]$var1[/COLOR] [COLOR=Red]=[/COLOR] [COLOR=Navy]1[/COLOR]
    [COLOR=DarkRed]$var2[/COLOR][COLOR=Red] =[/COLOR] [COLOR=Navy]0[/COLOR]
    [COLOR=DarkRed]$result [/COLOR][COLOR=Navy][COLOR=Red]=[/COLOR] [/COLOR][COLOR=Silver]""[/COLOR]
    [COLOR=Blue]Do[/COLOR]
       [COLOR=DarkRed] $result  [COLOR=Red]=[/COLOR] $result [COLOR=Red]&[/COLOR] $var1[/COLOR]
    [COLOR=DarkRed]  [COLOR=Blue]  Do[/COLOR]
            $var2 [COLOR=Red]=[/COLOR] $var2[/COLOR] [COLOR=Red]+[/COLOR][COLOR=Navy] 1[/COLOR]
           [COLOR=DarkRed] $result [COLOR=Red]=[/COLOR]  $result [COLOR=Red]&[/COLOR] [COLOR=Silver]"  "[/COLOR] [COLOR=Red]&[/COLOR] $var2[/COLOR]
            [COLOR=Indigo][I]MsgBox[/I][/COLOR][COLOR=Red]([/COLOR][COLOR=Navy]0[/COLOR][COLOR=Red],[/COLOR][COLOR=Silver]""[/COLOR][COLOR=DarkRed][COLOR=Red],[/COLOR]$result[/COLOR] [COLOR=Red])[/COLOR]
    
        [COLOR=Blue]Until [/COLOR][COLOR=Red]([/COLOR][COLOR=DarkRed]$var2 [/COLOR][COLOR=Red]> [/COLOR][COLOR=Navy]9[/COLOR][COLOR=Red])[/COLOR]
      [COLOR=DarkRed]  $var2[/COLOR] [COLOR=Red]= [/COLOR][COLOR=Navy]0[/COLOR]
    [COLOR=DarkRed]    $var1 [COLOR=Red]=[/COLOR] $var1 [/COLOR][COLOR=Red]+[/COLOR] [COLOR=Navy]1[/COLOR]
      [COLOR=DarkRed]  $result  [COLOR=Red]=[/COLOR] $result[/COLOR] [COLOR=Red]&[/COLOR] [COLOR=Magenta]@crlf[/COLOR]
    [COLOR=Blue]Until [/COLOR][COLOR=Red]([/COLOR][COLOR=DarkRed]$var1[/COLOR] [COLOR=Red]>[/COLOR] [COLOR=Navy]9[/COLOR][COLOR=Red])[/COLOR]
    
    
    مافي شيء جديد غير الشرط:d:

    في الحلقة الام إذا المتغير الاول أصبح أكبر من 9 أخرج من الحلقة

    نفس الكلام مع المتغير الثاني :)

    إستخدام Exit Loop

    مافي شيء جديد أقدر أقوله

    وهذا مثال عليها :d:
    كود:
    [COLOR=DarkRed]$var1[/COLOR] [COLOR=Red]= [/COLOR][COLOR=Navy]1[/COLOR]
    [COLOR=DarkRed]$result [/COLOR][COLOR=Red]=[/COLOR] [COLOR=Silver]""[/COLOR]
    [COLOR=Blue]Do[/COLOR]
     [COLOR=DarkRed]   $result[/COLOR]  [COLOR=Red]=[/COLOR] [COLOR=DarkRed]$result [COLOR=Red]& [/COLOR]$var1[/COLOR]
        [COLOR=Indigo][I]MsgBox[/I][/COLOR][COLOR=Red]([/COLOR][COLOR=Navy]0[/COLOR][COLOR=Red],[/COLOR][COLOR=Silver]""[/COLOR][COLOR=Red],[/COLOR][COLOR=DarkRed]$result[/COLOR][COLOR=Red])[/COLOR]
    [INDENT]     [COLOR=DarkRed]$var1[/COLOR] [COLOR=Red]=[/COLOR][COLOR=DarkRed] $var1[/COLOR] [COLOR=Red]+[/COLOR] [COLOR=Navy]1[/COLOR]
    [/INDENT]     [COLOR=Blue]if[/COLOR] [COLOR=DarkRed]$var1[/COLOR] [COLOR=Red]=[/COLOR] [COLOR=Navy]5[/COLOR] [COLOR=Blue]Then[/COLOR]
            [COLOR=Blue]exitloop[/COLOR]
        [COLOR=Blue]endif[/COLOR]
       [COLOR=DarkRed] $result  [COLOR=Red]=[/COLOR] $result[/COLOR] [COLOR=Red]&[/COLOR] [COLOR=Magenta]@crlf[/COLOR]
    [COLOR=Blue]Until [/COLOR][COLOR=Red]([/COLOR][COLOR=DarkRed]$var1[/COLOR] [COLOR=Red]>[/COLOR] [COLOR=Navy]9[/COLOR][COLOR=Red])[/COLOR]
    
    بالنسبة لlavel نفس الفكره

    لأن Exit Loop و ContinueLoop تستخدم مع جميع العبارات

    إستخدام ContinueLoop

    :wink:

    كود:
    [COLOR=DarkRed]$var1[/COLOR] [COLOR=Red]=[/COLOR] [COLOR=Indigo]0[/COLOR]
    [COLOR=DarkRed]$result[/COLOR] [COLOR=Red]=[/COLOR] [COLOR=Silver]""[/COLOR]
    [COLOR=Blue]Do[/COLOR]
    [COLOR=DarkRed]
        $var1 = $var1[/COLOR] [COLOR=Red]+[/COLOR] [COLOR=Indigo]1[/COLOR]
        [COLOR=Blue]if[/COLOR] [COLOR=DarkRed]$var1[/COLOR] [COLOR=Red]=[/COLOR] [COLOR=Indigo]5[/COLOR] [COLOR=Blue]Then[/COLOR]
            [COLOR=Blue]continueloop[/COLOR]
        [COLOR=Blue]endif[/COLOR]
     [COLOR=DarkRed]   $result  [COLOR=Red]=[/COLOR] $result [COLOR=Red]&[/COLOR] $var1 [/COLOR][COLOR=Red]&[/COLOR] [COLOR=Magenta]@crlf[/COLOR]
        [COLOR=Navy][I]MsgBox[/I][/COLOR][COLOR=Red]([/COLOR][COLOR=Indigo]0[/COLOR][COLOR=Red],[/COLOR][COLOR=Silver]""[/COLOR][COLOR=DarkRed][COLOR=Red],[/COLOR]$result[/COLOR][COLOR=Red])[/COLOR]
    
    [COLOR=Blue]Until [/COLOR][COLOR=Red]([/COLOR][COLOR=DarkRed]$var1[/COLOR] [COLOR=Red]>[/COLOR] [COLOR=Indigo]9[/COLOR][COLOR=Red])[/COLOR]
    
    
    ونفس الكلام ينطبق على lavel هنا مافي شيء جديد :d:

    الحلقات اللا نهائية في do

    حنا نعرف إن اللي يخلي الحلقة غير نهائية هو الشرط

    والان نعرف إن do الامر فيها مختلف بالنسبة للشرط

    لذا لوضع حلقة نهائية في do

    نضع شرط دائما خاطئ false أو تحول قيمته ل false

    أمثلة على هذه الشروط

    عند وضع "" << نص فارغ في مكان الشرط

    كود:
    [COLOR=Blue]Until [/COLOR][COLOR=Red]([COLOR=Silver]""[/COLOR])[/COLOR]
    
    عند وضع 0 مكان الشرط
    كود:
    [COLOR=Blue]Until[COLOR=Red] [/COLOR][/COLOR][COLOR=Red]([COLOR=Indigo]0[/COLOR])[/COLOR]
    
    عند وضع false مكان الشرط

    كود:
     [COLOR=Blue]Until [COLOR=Red]([/COLOR]false[COLOR=Red])[/COLOR][/COLOR]
     
    عند وضع عملية مقارنه خاطئة دائماً

    كود:
     [COLOR=Blue]Until[/COLOR][COLOR=Red][COLOR=Blue] [/COLOR]([/COLOR][COLOR=Indigo]1[/COLOR][COLOR=Red]>[/COLOR] [COLOR=Indigo]10[/COLOR][COLOR=Red])[/COLOR]
     
    :d:
    كود:
    [COLOR=DarkRed]$var1[/COLOR] [COLOR=Red]=[/COLOR] [COLOR=Indigo]0[/COLOR]
    [COLOR=DarkRed]$result[/COLOR] [COLOR=Red]=[/COLOR] [COLOR=Silver]""[/COLOR]
    [COLOR=Blue]Do[/COLOR]
    
    [COLOR=DarkRed]    $var1 [COLOR=Red]=[/COLOR] $var1[/COLOR] [COLOR=Red]+[/COLOR] [COLOR=Indigo]1[/COLOR]
       [COLOR=Blue] if[/COLOR][COLOR=DarkRed] $var1[/COLOR] [COLOR=Red]=[/COLOR] [COLOR=Indigo]15[/COLOR] [COLOR=Blue]Then[/COLOR]
            [COLOR=Blue]exitloop
        endif[/COLOR]
       [COLOR=DarkRed] $result  [COLOR=Red]=[/COLOR] $result [COLOR=Red]&[/COLOR] $var1[/COLOR] [COLOR=Red]&[/COLOR] [COLOR=Magenta]@crlf[/COLOR]
        [COLOR=Navy][I]MsgBox[/I][/COLOR][COLOR=Red]([/COLOR][COLOR=Indigo]0[/COLOR][COLOR=Red],[/COLOR][COLOR=Silver]""[/COLOR][COLOR=Red],[/COLOR][COLOR=DarkRed]$result[/COLOR][COLOR=Red])[/COLOR]
    
    [COLOR=Blue]Until false[/COLOR]
    
    وصلى الله وسلم على نبينا محمد وعلى آله وصحبه وسلم


     
  11. waget

    waget زيزوومى مبدع

    إنضم إلينا في:
    ‏يناير 9, 2009
    المشاركات:
    1,367
    الإعجابات :
    82
    نقاط الجائزة:
    640
    الجنس:
    ذكر
    الإقامة:
    K.S.A
    برامج الحماية:
    Microsoft Security Essentials
    نظام التشغيل:
    Windows 7
    [6]الحلقات..العبارة for

    [6]الحلقات..العبارة for

    العبارة for تعتبر أسهل عبارة وتعتبر أيضاُ عباره مهمه خاصه مع المصفوفات

    وهي نوعين نوع راح نأخذه الان ونوع قد نأخذه بعد المصفوفات :d:

    النوع الاول يتعامل مع الاعداد
    الصيغه العامه ...

    كود:
    [COLOR=Blue]For[/COLOR] [COLOR=Silver]<variable>[/COLOR] [COLOR=Red]=[/COLOR] [COLOR=Silver]<start> [/COLOR][COLOR=Blue]To [/COLOR][COLOR=Silver]<stop>[/COLOR] [COLOR=Red][[/COLOR][COLOR=Blue]Step [/COLOR][COLOR=Silver]<stepval>[/COLOR][COLOR=Red]][/COLOR]
       [COLOR=Silver] statements
        ...[/COLOR]
    [COLOR=Blue]Next[/COLOR]
    
    طويله شوي لكن سهله بالنسبه مابين الاقواس إختياري وسوف نوضحه :)

    تبدأ بالكلمة المحجوزة for

    ثم تعرف متغير وتضع له قيمة إبتدائية

    ثم تستخدم الكلمة To
    وتضع القيمة النهائية الي تريد أن تنتهي بها الحلقة

    إذا أردت تحديد مقدار الزيادة أو النقصان إستخدم Step
    وضع بعده مقدار الزيادة أو النقصان الافتراضي 1

    ثم تنتهي بالكلمة next
    نجي للأمثلة الان
    كود:
    [COLOR=Blue]For[/COLOR] [COLOR=DarkRed]$var1[/COLOR] [COLOR=Red]= [/COLOR][COLOR=Indigo]0[/COLOR] [COLOR=Blue]to[/COLOR] [COLOR=Indigo]10 [/COLOR]
        [COLOR=Navy][I]MsgBox[/I][/COLOR][COLOR=Red]([/COLOR][COLOR=Indigo]0[/COLOR][COLOR=Red],[/COLOR][COLOR=Silver]""[/COLOR][COLOR=Red],[/COLOR][COLOR=DarkRed]$var1[/COLOR][COLOR=Red])[/COLOR]
    [COLOR=Blue]Next[/COLOR]
    
    عرفنا متغير زي ما إتفقنا ووضعنا القيمة الابتدائية 0 وتنتهي بالقيمة النهائية 10

    لم نضع step لأن الافتراضي 1 ونحن نريد الزيادة بواحد

    :d::d:

    نريد الزيادة ب 3

    كود:
    [COLOR=Blue]For [/COLOR][COLOR=DarkRed]$var1[/COLOR] [COLOR=Red]=[/COLOR] [COLOR=Indigo]0[/COLOR][COLOR=Blue] to[/COLOR] [COLOR=Indigo]10[/COLOR]  [COLOR=Blue]step [/COLOR][COLOR=Indigo]3[/COLOR]
        [COLOR=Navy][I]MsgBox[/I][/COLOR][COLOR=Red]([/COLOR][COLOR=Indigo]0[/COLOR][COLOR=Red],[/COLOR][COLOR=Silver]""[/COLOR][COLOR=Red],[/COLOR][COLOR=DarkRed]$var1[/COLOR][COLOR=Red])[/COLOR]
    [COLOR=Blue]Next[/COLOR]
    
    نريد أن نعد ولكن بالعكس من 10 إلى 0

    كود:
    [COLOR=Blue]For [/COLOR][COLOR=DarkRed]$var1[/COLOR] [COLOR=Red]=[/COLOR] [COLOR=Indigo]10[/COLOR] [COLOR=Blue]to[/COLOR] [COLOR=Indigo]0 [/COLOR] [COLOR=Blue]step [/COLOR][COLOR=Red]-[/COLOR][COLOR=Indigo]1[/COLOR][INDENT][INDENT][INDENT]    [I][COLOR=Navy]MsgBox[/COLOR][/I][COLOR=Red]([/COLOR][COLOR=Indigo]0[/COLOR][COLOR=Red],[/COLOR][COLOR=Silver]""[/COLOR][COLOR=Red],[/COLOR][COLOR=DarkRed]$var1[/COLOR][COLOR=Red])[/COLOR]
    [/INDENT][/INDENT][/INDENT][COLOR=Blue]Next[/COLOR]
    
    حلقتين متداخلة :d:

    كود:
    [COLOR=DarkRed]$result [/COLOR][COLOR=Red]=[/COLOR][COLOR=Silver] ""[/COLOR]
    [COLOR=Blue]For [/COLOR][COLOR=DarkRed]$var1[/COLOR] [COLOR=Red]=[/COLOR] [COLOR=Indigo]1[/COLOR][COLOR=Blue] to[/COLOR] [COLOR=Indigo]10[/COLOR]
      [COLOR=DarkRed]  $result[/COLOR] [COLOR=Red]=[/COLOR] [COLOR=DarkRed]$result [/COLOR][COLOR=Red]&[/COLOR][COLOR=DarkRed] $var1[/COLOR] [COLOR=Red]&[/COLOR] [COLOR=Silver]" "[/COLOR]
        [COLOR=Blue]For [/COLOR][COLOR=DarkRed]$var2[/COLOR] [COLOR=Red]=[/COLOR][COLOR=Indigo] 1[/COLOR] [COLOR=Blue]to[/COLOR][COLOR=Indigo] 10[/COLOR]
            [COLOR=DarkRed]$result[/COLOR][COLOR=Red] =[/COLOR] [COLOR=DarkRed]$result[/COLOR] [COLOR=Red]&[/COLOR][COLOR=DarkRed] $var2[/COLOR]
            [COLOR=Navy][I]MsgBox[/I][/COLOR][COLOR=Red]([/COLOR][COLOR=Indigo]0[/COLOR][COLOR=Red],[/COLOR][COLOR=Silver]""[/COLOR][COLOR=Red],[/COLOR][COLOR=DarkRed]$result[/COLOR][COLOR=Red])[/COLOR]
        [COLOR=Blue]next[/COLOR]
       [COLOR=DarkRed] $result[/COLOR] [COLOR=Red]=[/COLOR] [COLOR=DarkRed]$result[/COLOR]  [COLOR=Red]&[/COLOR] [COLOR=Magenta]@crlf[/COLOR]
    [COLOR=Blue]Next[/COLOR]
    
    إستخدام continueloop
    ما في شيء جديد :d:
    كود:
    [COLOR=DarkRed]$result [/COLOR][COLOR=Red]=[/COLOR] [COLOR=Silver]""[/COLOR]
    [COLOR=Blue]For[/COLOR][COLOR=DarkRed]$var1 [/COLOR][COLOR=Red]= [/COLOR][COLOR=Indigo]1[/COLOR] [COLOR=Blue]to[/COLOR] [COLOR=Indigo]10[/COLOR]
      [COLOR=Blue]  if[/COLOR] [COLOR=DarkRed]$var1 [/COLOR][COLOR=Red]=[/COLOR] [COLOR=Indigo]5[/COLOR] [COLOR=Blue]Then[/COLOR]
            [COLOR=Blue]continueloop[/COLOR]
        [COLOR=Blue]endif[/COLOR]
    [COLOR=DarkRed]    $result [/COLOR][COLOR=Red]=[/COLOR] [COLOR=DarkRed]$result [/COLOR][COLOR=Red]&[/COLOR] [COLOR=DarkRed]$var1[/COLOR] [COLOR=Red]&[/COLOR] [COLOR=Silver]" "[/COLOR]
        [COLOR=Navy][I]MsgBox[/I][/COLOR][COLOR=Red]([/COLOR][COLOR=Indigo]0[/COLOR][COLOR=Red],[/COLOR][COLOR=Silver]""[/COLOR][COLOR=Red],[/COLOR][COLOR=DarkRed]$result[/COLOR][COLOR=Red])[/COLOR]
    [COLOR=Blue]Next[/COLOR]
    
    إستخدام exitloop

    أيضاً لاجديد

    كود:
    [COLOR=DarkRed]$result [/COLOR][COLOR=Red]=[/COLOR] [COLOR=Silver]""[/COLOR]
    [COLOR=Blue]For[/COLOR][COLOR=DarkRed] $var1[/COLOR] [COLOR=Red]=[/COLOR] [COLOR=Indigo]1[/COLOR][COLOR=Blue] to [/COLOR][COLOR=Indigo]10[/COLOR]
      [COLOR=Blue]  if[/COLOR][COLOR=DarkRed]$var1 [/COLOR][COLOR=Red]=[/COLOR] [COLOR=Indigo]5[/COLOR] [COLOR=Blue]Then[/COLOR]
            [COLOR=Blue]exitloop[/COLOR]
        [COLOR=Blue]endif[/COLOR]
       [COLOR=DarkRed] $result [/COLOR][COLOR=Red]=[/COLOR] [COLOR=DarkRed]$result [/COLOR][COLOR=Red]&[/COLOR][COLOR=DarkRed] $var1[/COLOR] [COLOR=Red]&[/COLOR] [COLOR=Silver]" "[/COLOR]
        [COLOR=Navy][I]MsgBox[/I][/COLOR]([COLOR=Indigo]0[/COLOR][COLOR=Red],[/COLOR][COLOR=Silver]""[/COLOR][COLOR=Red],[/COLOR][COLOR=DarkRed]$result[/COLOR][COLOR=Red])[/COLOR]
    [COLOR=Blue]Next[/COLOR]
    
    
     
  12. LINEZERO

    LINEZERO زيزوومى محترف

    إنضم إلينا في:
    ‏يوليو 23, 2007
    المشاركات:
    2,916
    الإعجابات :
    377
    نقاط الجائزة:
    820
    الجنس:
    ذكر
    الإقامة:
    KSA-Dammam
    برامج الحماية:
    اخرى
    نظام التشغيل:
    Mac OS
    استاذي عبدالله

    ازادك الله من علمه ؛؛؛ ماندري كيف نرد جمايلك علينا

    بالتوفيق والى الاااامام <<< شوي واقول زنقه زنقه :d:​
     
  13. waget

    waget زيزوومى مبدع

    إنضم إلينا في:
    ‏يناير 9, 2009
    المشاركات:
    1,367
    الإعجابات :
    82
    نقاط الجائزة:
    640
    الجنس:
    ذكر
    الإقامة:
    K.S.A
    برامج الحماية:
    Microsoft Security Essentials
    نظام التشغيل:
    Windows 7
    :b::b:تراني بديت أنتفخ وأصدق إني أستاذ :d:

    جميلك سابق أخوي ~ لا تحرمنا طلتك :smile:

    :king::king:
     
  14. waget

    waget زيزوومى مبدع

    إنضم إلينا في:
    ‏يناير 9, 2009
    المشاركات:
    1,367
    الإعجابات :
    82
    نقاط الجائزة:
    640
    الجنس:
    ذكر
    الإقامة:
    K.S.A
    برامج الحماية:
    Microsoft Security Essentials
    نظام التشغيل:
    Windows 7
    الماكرو Error And Extended



    بسم الله الرحمن الرحيم

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

    وكان عندنا طريقتين -التحقق من بيانات القيم الراجعه و الطريقة الاخرى معرفه هل الدلة أرجعت قيمة

    تفسر على إنها صحيحة أو خاطئة ...

    في السابق عند حدوث خطأ عندنا حلين إما الخروج من البرنامج أو إخبار المستخدم

    بوجود خطأ مع عدم معرفه ماهيه هذا الخطأ

    أحيناً يفيدك معرفه الخطأ بإصلاحهه برمجاً أو إخبار المستخدم بالخطأ
    وطريقة الحل

    الطريقة اللي راح نتعالمها الايوم لاتعمل على كل الدوال
    بل دوال محدده .. أخذنا بعضها وبنرجعها الان

    طيب يأتي سائل يقول .. الطريقة هذي لبعض الدوال ماذا أفعل في البقية
    الطريقة هذي وضعت في دوال يكون أسباب فشل عملها متعدد
    عكس بعض الدوال مثل fileCopy فهي لاتخطئ إلا إذا كان الملف غير موجود

    بعد هذي المقدمة أعتقد إنك إقتنعت بأهمية هذي الطريقة !!

    بالنسبة لإصلاح الخطأ بعد معرفته ومعرفه إمكانية الحل فهنا بكل تأكيد سنستخدم اللوب

    ^
    هذا سبب تأجيلي شرح هذا الموضوع :d:

    الماكرو error

    كود:
    @error
    
    تكون قيمة الماكرو 0 إذا تم عمل الدالة بشكل صحيح

    تكون قيمته غير الصفر إذا فشلت الدالة ولكل قيمة تفسير معين

    حسب الخطأ ونأخذه من الكتاب المساعد :)

    مثل /

    الدالة RunWait تذكرون لما أخذنها قلت هذي الدالة مانقدر نعرف هل أتمت عملها بشكل صحيح
    أو لا بسبب إن القيمة الراجعه لها في حالة الصحه أحيناُ <بل غالباً تساوي 0 وعند الفشل تساوي 0
    فهنا كيف أعرف إن الدالة أتمت عملها :d:

    نروح للكتاب المساعد ونشوف

    [​IMG]

    بمعنى إنه في حالة الخطأ سوف تعين قيمة للماكرو وهي لا تسوي الصفر :)

    كود:
    while 1
    RunWait(@scriptdir & "\run.exe")
    if(@error)Then
        $msg = MsgBox(5 + 16 ,"Error","في هذا المسار  run.exe تأكد أن الملف" & @crlf & _
        @scriptdir & "\run.exe")
        if $msg = 4 Then
            ContinueLoop
        Else
            exitloop
        endif
    Else
        exitloop
    endif
    wend
    
    وضعنا حلقة لا نهائية يتم الخروج منها فقط إذا تم تشغيل الملف بنجاح ..

    كيف ذالك ؟؟

    وضعنا الماكرو في الشرط ويمكننا أيضا حفظ قيمته والتحقق منها بالطريقة الاعتيادية

    الماكرو إذا ساوت قيمته غير الصفر تفسر القيمة على إنها true

    بمعنى الشرط تحقق والملف لم يتم تشغيله ..

    تظهر رسالة للمستخدم يتأكد من وجود الملف وبعدها يعيد المحاولة

    ولاحظ أعدنا اللوب هنا ليتم تنفيذ الدالة مره آخرى والتحقق مره أخرى

    أو يخرج من السيكريبت :d: والخروج من الحلقة إما بتشغيل الملف بشكل صحيح أو الخروج من قبل المستخدم وكلها بإستخدام ExitLoop
    نفس الفكرة مع دالة ShellExecuteWait

    ملاحظة مهمة /

    الان لو عندنا دالتين مثلاً تشغيل برنامجين /
    كود:
    ShellExecuteWait ("prog1.exe") 
    ShellExecuteWait ("prog2.exe")
    
    الان الماكرو error يخص أي دالة :)

    الماكرو يخص الدالة ألي فوقه مباشرة يعني حسب مكان إستخدامك له

    الماكرو Extended

    كود:
    @extended 
    
    نادر الاستخدام في الغالب يأتي إذا نجحت الدالة يوفر معلومات إضافية

    إن شاء الله الدرس القادم بيكون في مثال عليها

    :d:
     
  15. waget

    waget زيزوومى مبدع

    إنضم إلينا في:
    ‏يناير 9, 2009
    المشاركات:
    1,367
    الإعجابات :
    82
    نقاط الجائزة:
    640
    الجنس:
    ذكر
    الإقامة:
    K.S.A
    برامج الحماية:
    Microsoft Security Essentials
    نظام التشغيل:
    Windows 7

    تلبية لإقتراح الاخ بندر الذي كان حريص من بدء الدورة

    أن تصل الفائدة للجميع و بسبب قلة التفاعل
    من الاعضاء المشاركين وأهمية الدروس القادمة

    تمت إعادة فتح الموضوع مره أخرى

    والرجاء الاطلاع على الشروط في أول الموضوع

    أي إستفسار خارج محتوى الدورة ضعه هنا

    وأي دالة لم تشرح الرجاء عدم وضعها في التطبيق لكي لاتحرر المشاركة


    جزيل الشكر للأخوان بندر ونور MAAX

    وفق الله الجميع لما يحبه ويرضاه

    :king:
     
  16. LINEZERO

    LINEZERO زيزوومى محترف

    إنضم إلينا في:
    ‏يوليو 23, 2007
    المشاركات:
    2,916
    الإعجابات :
    377
    نقاط الجائزة:
    820
    الجنس:
    ذكر
    الإقامة:
    KSA-Dammam
    برامج الحماية:
    اخرى
    نظام التشغيل:
    Mac OS
    عساك على القوووه :d:
     
  17. waget

    waget زيزوومى مبدع

    إنضم إلينا في:
    ‏يناير 9, 2009
    المشاركات:
    1,367
    الإعجابات :
    82
    نقاط الجائزة:
    640
    الجنس:
    ذكر
    الإقامة:
    K.S.A
    برامج الحماية:
    Microsoft Security Essentials
    نظام التشغيل:
    Windows 7
    التعامل مع الملفات Read And Write

    إن شاء الله اليوم راح نأخذ مجموعة من الدوال للتعامل مع الملفات

    نبدأ مع قرأة الملفات

    FileRead


    الصيغة العامة :
    كود:
    [COLOR=Navy][I]FileRead [/I][/COLOR][COLOR=Red]([/COLOR] [COLOR=Silver]"filehandle/filename"[/COLOR][COLOR=Red] [,[/COLOR] count[COLOR=Red]] )[/COLOR]
    
    filehandle/filename:

    filename: إسم الملف ومساره
    أو
    filehandle: مقبض أو مؤشر الملف في الذاكرة راح نفصله في الجزء الثاني للدرس ..

    count /عدد الحروف الي تريد قرأتها من الملف

    الافتراضي .. جميع الاحرف في الملف

    القيم الراجعه للدالة /

    في حالة النجاح : ترجع جميع بيانات الملف سواء كانت نص / binary
    وأيضاًُ يحمل الماكرو extended@ عدد الاحرف في الملف / عدد البايتات

    حالة خاصة : في حالة قرأه الملف إلى الاخير يحمل error@ القيمة -1

    في حالة الخطأ : يحمل الماكرو Error@ القيمة 1 /والخطأ يعني الملف غير قابل للقرأه - أو ليس في وضع
    القرأه


    مثال (1)

    كود:
    [COLOR=DarkRed]$text[/COLOR] [COLOR=Red]=[/COLOR] [COLOR=Navy][I]FileRead[/I][/COLOR][COLOR=Red]([/COLOR][COLOR=Silver]"1.txt"[/COLOR][COLOR=Red])[/COLOR]
    [COLOR=Blue]if[/COLOR] [COLOR=Magenta]@error[/COLOR] [COLOR=Red]=[/COLOR] 1 [COLOR=Blue]then[/COLOR]
        [COLOR=Navy][I]MsgBox[/I][/COLOR][COLOR=Red]([/COLOR][COLOR=Indigo]16[/COLOR][COLOR=Red],[/COLOR][COLOR=Silver]""[/COLOR][COLOR=Red],[/COLOR][COLOR=Silver]"لايمكن فتح الملف للقرأه"[/COLOR][COLOR=Red])[/COLOR]
    [COLOR=Blue]Else[/COLOR]
        [COLOR=Navy][I]MsgBox[/I][/COLOR][COLOR=Red]([/COLOR][COLOR=Indigo]0[/COLOR][COLOR=Red],[/COLOR][COLOR=Silver]""[/COLOR][COLOR=Red],[/COLOR][COLOR=DarkRed]$text [/COLOR][COLOR=Red]&[/COLOR] [COLOR=Magenta]@crlf[/COLOR] [COLOR=Red]&[/COLOR][COLOR=Silver] "عدد الاحرف :" [/COLOR][COLOR=Red]&[/COLOR] [COLOR=Magenta]@extended[/COLOR] [COLOR=Red])[/COLOR]
    [COLOR=Blue]endif[/COLOR]
    
    في الملف 1.txt كتبنا نص بسيط فمن غير الممكن إستخدام msgbox
    للملفات الكبيرة الهدف هو إيضاح الفكرة

    زي ماشفنا القيمة الراجعه للدالة هي النص الموجود في الملف وهذا يعني

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

    سوف نستخدم الدالة StringInStr

    مثال (2)

    كود:
    [COLOR=DarkRed]$path[/COLOR] = [COLOR=Magenta]@SystemDir[/COLOR] [COLOR=Red]&[/COLOR][COLOR=Silver]"\drivers\etc\hosts"[/COLOR]
    [COLOR=DarkRed]$text[/COLOR] [COLOR=Red]=[/COLOR]  [I][COLOR=Navy]Fileread[/COLOR][/I][COLOR=Red]([/COLOR][COLOR=DarkRed]$path[/COLOR][COLOR=Red])[/COLOR]
    [COLOR=Blue]if[/COLOR] [COLOR=Magenta]@error[/COLOR] [COLOR=Red]=[/COLOR] 1 [COLOR=Blue]Then[/COLOR]
        [I][COLOR=Navy]MsgBox[/COLOR][/I][COLOR=Red]([/COLOR][COLOR=Indigo]16[/COLOR][COLOR=Red],[/COLOR][COLOR=Silver]""[/COLOR][COLOR=Red],[/COLOR][COLOR=Silver]"لايكمن فتح الملف للقرأة"[/COLOR][COLOR=Red])[/COLOR]
    [COLOR=Blue]Else[/COLOR]
        [COLOR=DarkRed]$sarch[/COLOR] [COLOR=Red]= [/COLOR][COLOR=Navy][I]StringInStr[/I][/COLOR][COLOR=Red]([/COLOR][COLOR=DarkRed]$text[/COLOR][COLOR=Red],[/COLOR][COLOR=Silver]"www.zyzoom.org/vb"[/COLOR][COLOR=Red])[/COLOR]
        [COLOR=Blue]if[/COLOR] [COLOR=DarkRed]$sarch[/COLOR][COLOR=Red] <>[/COLOR] 0 [COLOR=Blue]then[/COLOR]
            [COLOR=Navy][I]MsgBox[/I][/COLOR][COLOR=Red]([/COLOR][COLOR=Indigo]16[/COLOR][COLOR=Red],[/COLOR][COLOR=Silver]""[/COLOR][COLOR=Red],[/COLOR][COLOR=Silver]"الموقع محجوب"[/COLOR][COLOR=Red])[/COLOR]
        [COLOR=Blue]Else[/COLOR]
            [COLOR=Navy][I]MsgBox[/I][/COLOR][COLOR=Red]([/COLOR][COLOR=Indigo]0[/COLOR][COLOR=Red],[/COLOR][COLOR=Silver]""[COLOR=Red],[/COLOR]"الموقع ليس محجوب لديك"[/COLOR][COLOR=Red])[/COLOR]
        [COLOR=Blue]endif[/COLOR]
    
    [COLOR=Blue]endif[/COLOR]
    
    
    التحقق هل منتدى زيزووم محجوب من ملف الهوست :)



    FileReadLine

    هي تقرأء سطر واحد في الملف تحدد /عند عدم التحديد يقرأ السطر الاول
    الصيغة العامة للدالة
    كود:
    [COLOR=Navy][I]FileReadLine[/I][/COLOR][COLOR=Red]([/COLOR][COLOR=Silver] "filehandle/filename"[/COLOR][COLOR=Red] [,[/COLOR] line[COLOR=Red]] )[/COLOR]
    
    filename: إسم الملف ومساره
    أو
    filehandle: مقبض أو مؤشر الملف في الذاكرة ..

    line :
    رقم السطر المراد قرأته يبدء العد من 1
    ولقرأه أخر سطر بالتحديد ضع -1

    القيم الراجعه

    في حالة النجاح : ترجع الدالة بالسطر

    حالة خاصة : عند قرأة السطر الاخير أي وضعت -1 في الوسيطات الماكرو error@ يحمل القيمة -1

    في حالة الفشل :يحمل الماكرو error@ 1 /والخطأ يعني الملف غير قابل للقرأة - أو ليس في وضع القرأة

    مثال

    كود:
    [COLOR=DarkRed]$line[/COLOR][COLOR=Red]=[/COLOR] [COLOR=Navy][I]FileReadLine [/I][/COLOR][COLOR=Red]([/COLOR][COLOR=Silver] "1.txt"[/COLOR][COLOR=Red])[/COLOR]
    [COLOR=Blue]if[/COLOR] [COLOR=Magenta]@error[/COLOR] [COLOR=Red]<>[/COLOR] [COLOR=Indigo]1[/COLOR] [COLOR=Blue]then[/COLOR]
        [COLOR=Navy][I]MsgBox[/I][/COLOR][COLOR=Red]([/COLOR][COLOR=Indigo]0[/COLOR][COLOR=Red],[/COLOR][COLOR=Silver]""[/COLOR][COLOR=DarkRed][COLOR=Red],[/COLOR]$line[/COLOR][COLOR=Red])[/COLOR]
    [COLOR=Blue]endif[/COLOR]
    
    FileWrite

    الدالة هذي تقوم بكتابة نص في ملف ... إذا لم يكن الملف موجود سيتم إنشائه

    إذاكان موجود يتم الكتابة بعد آخر حرف في الملف

    كود:
    [COLOR=Navy][I]FileWrite[/I][/COLOR][COLOR=Red]([/COLOR] [COLOR=Silver]"filehandle/filename"[/COLOR][COLOR=Red],[/COLOR] [COLOR=Silver]"text/data"[/COLOR] [COLOR=Red])[/COLOR]
    
    filehandle/filename :

    filename: إسم الملف ومساره
    أو
    filehandle: مقبض أو مؤشر الملف في الذاكرة ..

    text/data : البيانات المراد إضافتها سواء كانت نص / Binary

    القيمة الراجعه للدالة :

    في حالة النجاح : 1

    في حالة الفشل : 0 / يعني الملف غير قابل للكتابة - أو ليس في وضع الكتابة .

    مثال

    كود:
    [COLOR=Blue]if[/COLOR] [COLOR=Navy][I]FileWrite[/I][/COLOR][COLOR=Red]([/COLOR][COLOR=Silver]"2.txt"[/COLOR][COLOR=Red],[/COLOR][COLOR=Silver]"Welcome"[/COLOR][COLOR=Red])[/COLOR] [COLOR=Blue]Then[/COLOR]
        [COLOR=Navy][I]MsgBox[/I][/COLOR][COLOR=Red]([/COLOR][COLOR=Indigo]0[/COLOR],[COLOR=Silver]""[/COLOR],[COLOR=Silver]"تمت إضافة النص للملف"[/COLOR][COLOR=Red])[/COLOR]
    [COLOR=Blue]endif[/COLOR]
    
    FileWriteLine

    الصيغة العامة :

    كود:
    [COLOR=Navy][I]FileWriteLine [/I][/COLOR][COLOR=Red]([/COLOR] [COLOR=Silver]"filehandle/filename"[/COLOR][COLOR=Red],[/COLOR] [COLOR=Silver]"line"[/COLOR] [COLOR=Red])[/COLOR]
    
    line : السطر المراد كتابته في الملف.

    شبية جدأ بالدالة السابقة - ونفس القيم والراجعه

    بالنسبة للفروق .. الفرق هنا إن الدالة بعد كتابة النص تنزل سطر في الملف

    أي تضيف crlf@ بعد النص بشكل تلقائي ..

    مع الامثلة بتوضح الفروق أكثر ..

    نستخدم الدالة الاولى ..

    كود:
    [COLOR=DarkRed]$file[/COLOR][COLOR=Red] =[/COLOR] [COLOR=Silver]"test.txt"[/COLOR]
    [COLOR=Navy][I]FileWrite[/I][/COLOR][COLOR=Red]([/COLOR][COLOR=DarkRed]$file[/COLOR][COLOR=Red] ,[/COLOR] [COLOR=Silver]"Waget "[/COLOR][COLOR=Red])[/COLOR]
    [COLOR=Navy][I]FileWrite[/I][/COLOR][COLOR=Red]([/COLOR][COLOR=DarkRed]$file[/COLOR] [COLOR=Red],[/COLOR] [COLOR=Silver]"zyzoom.org"[/COLOR][COLOR=Red])[/COLOR]
    
    لو فتحنا الملف بالnotepad نلقاه بهذي الصورة

    كود:
    Waget zyzoom.org
    
    طيب نستخد بالاول الدالة الثانية ...

    كود:
    [COLOR=DarkRed]$file [/COLOR][COLOR=Red]=[/COLOR] [COLOR=Silver]"test.txt"[/COLOR]
    [COLOR=Navy][I]FileWriteline[/I][/COLOR][COLOR=Red]([/COLOR][COLOR=DarkRed]$file [/COLOR][COLOR=Red],[/COLOR] [COLOR=Silver]"Waget "[/COLOR][COLOR=Red])[/COLOR]
    [I][COLOR=Navy]FileWrite[/COLOR][/I][COLOR=Red]([/COLOR][COLOR=DarkRed]$file[/COLOR][COLOR=Red] ,[/COLOR] [COLOR=Silver]"zyzoom.org"[/COLOR][COLOR=Red])[/COLOR]
    
    
    كود:
    Waget 
    zyzoom.org
    
    كتب الكلمة ونزل سطر وإستخدمنا الدالة filewrite . وهي تكمل عند ماتوقف في السطر الجديد

    لو إستخدمنا crlf@ في الدالة filewrite راح تكون مكافئة للدلة filewriteline

    إيضاحات
    بالنسبة ل[ الملف غير قابل للقرأة - أو ليس في وضع القرأة]

    وأيضاً [الملف غير قابل للكتابة - أو ليس في وضع الكتابة] .

    ألي يهمنا في هذا الدرس .. وهو عدم قابلية الكتابة أوالقرأة

    لإنك لو إستخدمت الطريقة الموضحة بالدرس لن يأتيك غير هذا الخطأ

    وحلة برمجياُ بإستخدام FileSetAttrib

    بالنسبة لوضع القرأة والكتابة راح نتكلم عنها بالدرس القادم ...

    الطريقة المشروحة هي أبسط طريقة لتحرير الملفات .. فأنت هنا لا تحتاج لتحديد الترميز
    عند القرأة أو الكتابة الاتوات تتكفل بذالك .. لكن هذي الطريقة بطيئة مع الملفات الكبيرة

    الدرس القادم يشرح الطريقة المتقدمة للتعامل مع الملفات :kmj-by0000 (72):

    :d:
     
  18. ramay

    ramay زيزوومى مبدع

    إنضم إلينا في:
    ‏أكتوبر 17, 2008
    المشاركات:
    1,655
    الإعجابات :
    144
    نقاط الجائزة:
    700
    الإقامة:
    سوريه
    برامج الحماية:
    Kaspersky
    نظام التشغيل:
    Windows 7
    السلام عليكم ورحمة الله وبركاته عساكم على خير يا شباب :king:
    بارك الله فيك أستاذ عبد الله سنعود لمراجعة الدروس بس من أين أبدا خاصة أني مش فهما دروس حلقات ابدأ :?:
     
  19. waget

    waget زيزوومى مبدع

    إنضم إلينا في:
    ‏يناير 9, 2009
    المشاركات:
    1,367
    الإعجابات :
    82
    نقاط الجائزة:
    640
    الجنس:
    ذكر
    الإقامة:
    K.S.A
    برامج الحماية:
    Microsoft Security Essentials
    نظام التشغيل:
    Windows 7
    إنت قلتها :d: إبدأ من الحلقات

    جرب كل كود وعدل علية وشوف إيش التغييرات

    وأي سؤال إحنا موجودين :d:
     
  20. ramay

    ramay زيزوومى مبدع

    إنضم إلينا في:
    ‏أكتوبر 17, 2008
    المشاركات:
    1,655
    الإعجابات :
    144
    نقاط الجائزة:
    700
    الإقامة:
    سوريه
    برامج الحماية:
    Kaspersky
    نظام التشغيل:
    Windows 7
    هي مشكلة مش مستوعب درس خالص
    طيب ممكن بدل الامثلة على رياضيات
    نقوم في كم كود عملي يعني على االدالة
     
حالة الموضوع:
مغلق

مشاركة هذه الصفحة

جاري تحميل الصفحة...