التعامل مع الملفات الثنائية Vb

الكاتب : نجيب المجيدي   المشاهدات : 1,556   الردود : 12    ‏2004-05-22
      مشاركة رقم : 1    ‏2004-05-22
  1. نجيب المجيدي

    نجيب المجيدي عضو فعّال

    التسجيل :
    ‏2003-12-08
    المشاركات:
    527
    الإعجاب :
    0
    بسم الله الرحمن الرحيم
    السلام عليكم ورحمة الله وبركاته

    بعيداً عن المقدمات الطويلة و المنمقة التي لا أجيدها دعوني أدخل في صلب الموضوع ونبدأ من حيث وقف الأخ العزيز الحمادي ...


    لنرى هذه التعليمة :

    كود:
    Open "FileName" For Binary as #FileNumber
    
    
    Close #FileNumber
    فللتعامل مع الملفات ( تحرير أو إنشاء ) نستخدم هذه التعليمات لفتحها كملفات ثنائية طبعاً

    كل ما علينا هو استبدال
    "FileName"
    باسم الملف و المسار و كذلك الامتداد لهذا الملف , و بالنسبة لـ"FileNumber"
    فهو رقم نستخدمه فيما بعد للإشارة لهذا الملف , ويمكن أن نستعيض عنه بدالة سنأتي على ذكرها فيما بعد

    التعليمة Close #FileNumber

    تستخدم لإغلاق الملف , وبين الفتح و الإغلاق نتعامل مع الملف إما بالكتابة أو بالقرائة

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

    سهل أليس كذلك ...

    =================================

    حسناً دعونا نأخذ مثالاً على ذلك :

    وليكون المثال عملياً دعونا نفكر بشيء مجدي نستخدمه فيه , ما رأيكم ببرنامج مراقبة يظهر لك ما يجري على كمبيوتر آخر .

    حسناً سنبدأ بهذا البرنامج خطوة خطوة ,,,

    أول شيء نريد أن نتعلم كيف نفتح ملف صورة و نأخذ البيانات منه و نضعها في ملف آخر عندما نفتح هذا الملف نجد نفس تلك الصورة ( كل هذا في نفس الجهاز )

    لنفترض أن اسم الصورة هو Pic1.jpg و هي مخزونة في القرص C:

    سنكتب ما يلي:

    أولاً في قسم التصريحات سنكتب

    كود:
    Dim i as long
    Dim CR as Byte
    وفي حدث تحميل الفورم مثلاً سنضع ما يلي

    كود:
    i = 1
    
    open "c:\pic1.jpg" for binary as #1 'هنا قمنا بفتح الملف و إعطائه رقم 1
    
    do while not EOF(1)'وهنا قمنا بعمل دوران لقراءة سجلات الملف سجل سجل 
    get #1,i,CR  'ثم نقرأ البيانات و نضعها بايتا بايتاً في المغير CR
    debug.print CR & "  " 'وأخيراً نطبع البيانات في النافذة ImediateWindow
    i = i + 1 'يتزايد العداد بنسبة واحد في كل مرة
    
    close #1 'نغلق الملف في النهاية
    حسناً جربوا هذا الكود وسنواصل في المرة القادمة بقية الموضوع فإلى اللقاء
     
  2.   مشاركة رقم : 2    ‏2004-05-22
  3. نجيب المجيدي

    نجيب المجيدي عضو فعّال

    التسجيل :
    ‏2003-12-08
    المشاركات:
    527
    الإعجاب :
    0
    على فكرة قمت بكتابة الموضوع على عجل فسامحوني إذا وجدت أي أخطاء
    وأيضاً , تعمدت وضع طرق خاطئة وعند مناقشتنا لأوجه النقص في الكود سأقوم بوضع الطريقة المثلى إن شاء الله , وهذا فقط لتثبيت المعلومة أكثر للقاريء العزيز
     
  4.   مشاركة رقم : 3    ‏2004-05-23
  5. صدى الحرمان

    صدى الحرمان عضو متميّز

    التسجيل :
    ‏2004-01-15
    المشاركات:
    1,519
    الإعجاب :
    0
    نجيب المجيدي
    مشكور على الموضوع
     
  6.   مشاركة رقم : 4    ‏2004-05-23
  7. 3laa3sam

    3laa3sam عضو فعّال

    التسجيل :
    ‏2003-06-21
    المشاركات:
    619
    الإعجاب :
    0
    أستاذ نجيب المجيدي...أحسنت،،،

    أحسنت أستاذ نجيب المجيدي... إستمر وإن شاء الله سوف أشاركك متى ما وجدت فرصه لذلك....لك محبتي
     
  8.   مشاركة رقم : 5    ‏2004-05-23
  9. نجيب المجيدي

    نجيب المجيدي عضو فعّال

    التسجيل :
    ‏2003-12-08
    المشاركات:
    527
    الإعجاب :
    0
    حسناً دعوني أستدرك خطأً كنت وقعت فيه

    في آخر كود في المشاركة السابقة يجب وضع التعليمة
    loop

    قبل إغلاق الملف close #1
     
  10.   مشاركة رقم : 6    ‏2004-05-24
  11. العمراوي

    العمراوي مشرف سابق

    التسجيل :
    ‏2002-11-24
    المشاركات:
    7,510
    الإعجاب :
    4
    موضوع جميل يا نجيب ...


    وواصل دائما ...
     
  12.   مشاركة رقم : 7    ‏2004-05-24
  13. نجيب المجيدي

    نجيب المجيدي عضو فعّال

    التسجيل :
    ‏2003-12-08
    المشاركات:
    527
    الإعجاب :
    0
    أشكرك أخي مشرف القسم

    (اشتقنا لطلاتك يا محقق ;)
     
  14.   مشاركة رقم : 8    ‏2004-05-29
  15. ابن الاصول

    ابن الاصول قلم فضي

    التسجيل :
    ‏2003-07-21
    المشاركات:
    2,607
    الإعجاب :
    0
    مشكور استاذنا نجيب
    موضوع رائع
    استمر
    لي سؤال مانوع الملفات التي قمت بشرحها
    اعتقد ان هناك انواع مختلفه من الملفات
    ايضاًClose #FileNumber
    هل هناك شرط للرقم
    ام اننا نحطي اي رقم يخطر في بالنا
    تحية لك اخي وحبيب قلبي نجيب
     
  16.   مشاركة رقم : 9    ‏2004-05-29
  17. نجيب المجيدي

    نجيب المجيدي عضو فعّال

    التسجيل :
    ‏2003-12-08
    المشاركات:
    527
    الإعجاب :
    0
    [color=000000] بسم الله الرحمن الرحيم
    السلام عليكم ورحمة الله وبركاته

    أخي العزيز ابن الأصول , في البداية أرجو أن تعذرني أنت و جميع المتابعين للموضوع على تأخري ولكن هذا راجع لوجودي حالياً في العاصمة صنعاء لغرض حضور اجتماع مجموعة php و عمل آخر وإن شاء الله أكمل معكم عند عودتي للغالية عدن ...

    بالنسبة لسؤالك أخي فلم أفهم هل تقصد أنواع الملفات في وندوز أم طرق فتح الملفات في vb بالنسبة للأولى فهي معروفة في اعتقادي (ملفات الصور بكافة امتداداتها , ملفات الصوت , ملفات الفيديو , ملفات النصوص , ملفات النظام و الكثير الكثير و نستطيع فتحها جميعاً في الفيجوال بيسك باستخدام دوال التعامل مع الملفات )
    أما بالنسبة لطرق فتح الملفات في الفجوال بيسك فهي ثلاث طرق (الملفات التتابعية و التي يتم قرائة الملف فيها سطراً سطراً و الملفات العشوائية حيث نحدد موقع القرائة عن طريق رقم السجل أو الصف , و الملفات الثنائية و التي هي موضوعنا الآن )

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

    http://ye1.org/vb/showthread.php?s=&threadid=77591

    و هذا أيضاً وهو موضوع جميل فعلاً وبشرح واضح يشكر عليه:

    http://ye1.org/vb/showthread.php?s=&threadid=77588


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




    و بالنسبة للسؤال الثاني حول رقم الملف ...
    نرى أن VB تطلب هذا لكي يسهل التعامل مع الملف فيما بعد فيكفي أن نكتب
    AS #1

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

    GET #1,I,CR

    أي إقرأ السطر رقم I وضع البيانات التي فيه داخل المتغير CR من الملف رقم 1
    طبعاً نستطيع أن نختار أي رقم صحيح ليمثل ملف ما بشرط ألا نكون قد استخدمنا هذا الرقم لملف آخر لا يزال مفتوحاً ...

    و لتسهيل المهمة (حيث يمكن أن ننسى رقم الملف هذا إذا كلن الكود طويلاً على سبيل المثال ) فقد قام VB بتزويدنا بدالة تدعى FreeFile تقوم هذه الدالة بوضع رقم فريد للملف وسأوضح هذا لاحقاً إن شاء الله

    تحياتي

    و السلام عليكم ورحمة الله وبركاته
    [/color]
     
  18.   مشاركة رقم : 10    ‏2004-05-30
  19. ابن الاصول

    ابن الاصول قلم فضي

    التسجيل :
    ‏2003-07-21
    المشاركات:
    2,607
    الإعجاب :
    0
    رائع
    اخي نجيب
    اتضحت لي الصورة
    مشكور
    وربنا يردك الينا بالسلامة
    سلااااااامي لاصحاب صنعاء
     

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