You are on page 1of 11

‫التعامل مع الملفات‬

‫‪www.startimes2.com‬‬ ‫في لغة الفيجوال بسيك‬ ‫‪El-amr‬‬


‫التعامل مع الملفات‬
‫‪www.startimes2.com‬‬ ‫في لغة الفيجوال بسيك‬ ‫‪El-amr‬‬

‫و الصلة والسلم على اشرف المرسلين وخاتم النبيين‬

‫محمد ابن عبد ال‪ ،‬اللهم صل وسلم عليه صلة تنجينا‬

‫عند الممات وترفعنا أعلى الدرجات وتقضي لنا كل‬

‫الحاجات وتحمينا من جميع الفات أمين يا رب العالمين‪.‬‬

‫إنّ الحمد ل نحمدهُ ونستعينهُ ونستغفره ونستهديهِ ونعوذ‬

‫ل فل‬
‫بالِ من شرور أنفسنا وسيئات أعمالنا‪ ،‬من يهدهِ ا ُ‬

‫مضلّ له‪ ،‬ومن يضلل فل هادي له‪ ،‬وأشهد أن ل إله إل‬

‫ال وحده ل شريك له‪ ،‬وأشهد أنّ محمداً عبده ورسوله ‪.‬‬

‫ربي اشرح لي صدري ويسر لي أمري واحلل عقدة من‬

‫لساني يفقه قولي‪.‬‬


‫التعامل مع الملفات‬
‫‪www.startimes2.com‬‬ ‫في لغة الفيجوال بسيك‬ ‫‪El-amr‬‬

‫لجميع من ينطق ب ‪:‬‬

‫إلى أعز إنسانين في الدنيا والداي الكريمين‬

‫إلى أعضاء منتديات ستارتايمز وبالخصوص منتدى لغات‬

‫البرمجة‬
‫التعامل مع الملفات‬
‫‪www.startimes2.com‬‬ ‫في لغة الفيجوال بسيك‬ ‫‪El-amr‬‬

‫التعامل مع الملفات‬
‫في بيئة الفيجوال بسيك‬
‫ل توجد لغة برمجية ل تتعامل مع الملفات و من بين هذه اللغات‬
‫نجد الفيجوال بسيك ‪VB6‬‬
‫ماذا نعني بالتعامل مع الملفات ؟‬

‫عندما نسمع التعامل مع الملفات يخطر بالبال "إنشاء ملف‪ ،‬حذف ملف‪ ،‬نقل ملف‪ ،‬نسخ ملف‪".....‬‬
‫وكل هذا سنتطرق إليه إنشاء ال في هذا الموضوع‬

‫لماذا الملفات ؟‬
‫سؤال يخطر ببال العديد ممن يذكر عندهم التعامل نع الملفات‪ ،‬وهو سؤال مهم أي انه ما هو دور‬
‫الملفات ولماذا سنتعامل ما فائدتها ؟‬
‫طيب‪ .‬الملفات ضرورية لنك ستحتاج إليها في برامجك حيث مثل ستربط برنامج بملف نصي‬
‫وهذا نجده كثيرا فيما يتعلق ب" الرخص ‪ "licence‬في البرامج‪ ،‬أو ملف "إقراني ‪"lisez-moi‬‬
‫مثل حفظ الرخص وغالبا نجده في ملفات ذات المتداد"‪........ " Ini.‬إلى غير ذالك فالملفات لها‬
‫أهميه قصوى في البرامج‬
‫كانت هذه لمحة نظرية جد جد مختصرة عن الملفات بصفة عامة‪ ،‬و الن ننتقل إلى ما يخص‬
‫موضوعنا أي التعامل مع الملفات في ‪.VB6‬‬
‫حيث سنرى كيف نسجل‪ ،‬نقرأ‪ ،‬ونضيف البيانات داخل ملف‬

‫لفتح ملف يجب أن نعرف أول اسمه ثم مساره‪ ،‬وبعد نستعلم عن طريقة فتح الملف هل( للكتابة فيه‬
‫أم القراءة)‬
‫وبهذا يكون الكود على الشكل ‪:‬‬
‫*‬
‫‪Open "chemin de fichier" For Input As #I‬‬
‫نشرح الكود كلمة كلمة ‪:‬‬
‫‪ :Open‬ل أظن أن هذه الكلمة غريبة عنكم فهي تعني افتح الملف‬
‫‪ :Chemin de fichier‬مسار الملف المراد فتحه‬
‫‪ :For Input‬نقصد بها أن الملف هو للقراءة فقط‬
‫‪ :I#‬المقبض أو القناة التي سنتعامل بها مع هذا الملف وهو رقم بين ‪ 1‬و ‪511‬لكن سنرى دالة تغنينا‬
‫عن التعامل مع هذه الرقام‬
‫*‬
‫‪Open "chemin de fichier" For‬‬ ‫‪Output‬‬ ‫‪As #I‬‬

‫ماذا لحظت لم يتغير شئ نفس الكود السابق؟ ل‪ ،‬جيد لحظت الفرق نعم هو‪:‬‬
‫‪ :For Output‬فتح الملف للكتابة‬
‫*‬
‫التعامل مع الملفات‬
‫‪www.startimes2.com‬‬ ‫في لغة الفيجوال بسيك‬ ‫‪El-amr‬‬

‫وعند النتهاء من القيام بالعمليات التي نريد القيام بها يجب غلق الملف‬
‫‪Close #I‬‬
‫*‬
‫‪Open "chemin de fichier" For Append As #I‬‬

‫‪ : For Append‬نقصد بها إضافة في آخر الملف‪.‬‬

‫بعد أن نقوم بفتح الملف بالطريقة التي نريد وطبعا ستكون إما للكتابة أو الضافة لننا ل يمكن أن‬
‫نكتب في ملف مفتوح للقراءة فقط‪ .‬نكتب الكود ‪:‬‬

‫‪Print #I, var‬‬

‫‪ :Print‬أمر الطباعة‬
‫‪ : Var‬ما نريد كتابته فان كنا نريد أن نكتب كلمة محددة نضعها بين عملتي تنصيص " "‪ ،‬أما‬
‫إن كان لدينا متغير فنكتب اسم المتغير بدون العلمتين‬

‫أريد أن أنبه من جديد على أ ن ‪ I‬هو رقم (مثل ‪ )....1 ,2 ,3‬والرقم الذي استعملناه ل‬
‫نغيره مثل اخترنا من البداية ‪ 1‬يجب أن نستعمل دائما ‪1‬‬
‫لكن كما قلت سأشرح طريقة بها لن يقع علينا خلط للرقم الذي استعملت‪:‬‬

‫‪Hand = FreeFile‬‬
‫‪Open "chemin de fichier" For Output As #Hand‬‬
‫‪Print #Hand,Var‬‬
‫‪Close #Hand‬‬

‫" بشرط‬ ‫لحظوا معي الكلمة باللون الحمر‪ " ،‬يمكن‬


‫أن تسرح بها في البداية على أنها ملف فارغ ‪ FreeFile‬كما قمت به في بداية الكود‬
‫قبل النتقال إلى التطبيق يجب معرفة انه أثناء الكتابة أو الضافة في ملف فان البرنامج إن لم يجد‬
‫الملف يقوم بانشاءه وسنلحظ ذالك في التطبيق‪ ،‬لكن إذا أردنا أن نقرأ من ملف وهو أصل غير‬
‫موجود فأكيد ستظهر لنا رسالة الخطأ ‪:‬‬
‫التعامل مع الملفات‬
‫‪www.startimes2.com‬‬ ‫في لغة الفيجوال بسيك‬ ‫‪El-amr‬‬

‫مثال تطبيقي‪:‬‬

‫افتح مشروعا جديدا ب ‪ VB6‬وقم بحفظه تذكر المسار ‪:‬‬


‫ثم أنشئ فورم بهذا الشكل‬

‫دوبل كليك على الزر‪:‬‬


‫ونكتب الكود‬
‫‪)( Private Sub Command1_Click‬‬
‫‪hand = FreeFile‬‬
‫‪Open App.Path & "\fichier.txt" For Output As #hand‬‬
‫‪Print #hand, Text1.Text‬‬
‫‪Close #hand‬‬
‫‪End Sub‬‬

‫الجديد في هذا الكود ‪:‬‬


‫‪ "App.Path & "\fichier.txt‬هنا قلنا للبرنامج أن يتبع مساره الذي يوجد فيه‬
‫وبعد ذالك‬
‫يفتح الملف ‪( fichier.txt‬الملف بامتداد ‪ Txt.‬ويمكن أن تحدد أنت المتداد مثل ‪ ini.‬أو ‪.‬‬
‫‪ ، bin‬وكما قلت سابقا البرنامج إن لم يعثر على الملف سينشئه لننا نريد الكتابة وليس القراءة)‬
‫الن شغل البرنامج بالضغط على ‪F5‬‬

‫اذهب الن إلى المسار الذي حفظت فيه البرنامج ولحظ ما يلي ‪:‬‬
‫التعامل مع الملفات‬
‫‪www.startimes2.com‬‬ ‫في لغة الفيجوال بسيك‬ ‫‪El-amr‬‬

‫جيل أليس كذالك لكن ماذا سيحدث لو قمنا بكتابة شي جديد‬


‫وضغطنا على زر " اكتب ف اللف"‪ ،‬آه لنجرب‪ ،....‬ماذا حدث ؟ لقد‬
‫ت مسح الكلمة السابقة وعوضتها الديدة‪.‬‬
‫نعم فهذا هو الفرق بي الكتابة والضافة (‪ output‬و ‪) append‬‬
‫ف ‪ output‬تسح متوى اللف ث تكتب الديد أما ‪ append‬فتذهب إل‬
‫آخر سطر وتكتب الديد‬
‫ب ‪ append‬وجرب البنامج ستلحظ انه‬ ‫ف الكود نفسه عوض ‪output‬‬
‫ف اللف ينشأ سطر جديد فيه الكلمة الديدة‪.‬‬

‫الن سنجري بعض التطويرات على البرنامج‬


‫اجعل شكل البنامج هكذا‬

‫دوبل كليك على الزر الديد و اكتب الكود التال‬

‫‪)( Private Sub Command2_Click‬‬


‫‪' Dim a As String‬‬
‫‪hand = FreeFile‬‬
‫‪Open App.Path & "\fichier.txt" For Input As #hand‬‬
‫‪Line Input #1, a‬‬
‫‪Close #hand‬‬
‫‪Text1.Text = a‬‬
‫‪End Sub‬‬
‫التعامل مع الملفات‬
‫‪www.startimes2.com‬‬ ‫في لغة الفيجوال بسيك‬ ‫‪El-amr‬‬

‫الديد هنا هو أننا قمنا بالعلن عن متغي نصي أسيناه ‪a‬‬


‫وفتحنا اللف للقراءة‬
‫‪Open App.Path & "\fichier.txt" For Input As #hand‬‬

‫هنا قلنا للبنامج بان يقرأ السطر الول من اللف ث يضعه ف‬


‫التغي ‪a‬‬
‫‪Line Input #1, a‬‬

‫ث نظهر التغي ف خانت الكتابة‬


‫‪Text1.Text = a‬‬

‫هنا بقي الن أن نتطرق إل كيفية قراءة اللف كامل‬


‫ف القيقة هناك عدة طرق لكن وهذه إحداهن‪:‬‬

‫سنقوم بتطوير البنامج مرة أخرى حيث سنجعله بذا الشكل ‪:‬‬

‫" و اكتب الكود التال‬ ‫دوبل كليك على زر "‬

‫‪)( Private Sub Command3_Click‬‬


‫‪hand = FreeFile‬‬
‫‪Dim a As String‬‬
‫‪Open App.Path & "\fichier.txt" For Input As # hand‬‬
‫‪)While Not EOF )hand‬‬
‫‪Input # hand, a‬‬
‫‪Text1.Text = Text1.Text + vbCrLf + a‬‬
‫‪Wend‬‬
‫‪Close # hand‬‬
‫التعامل مع الملفات‬
‫‪www.startimes2.com‬‬ ‫في لغة الفيجوال بسيك‬ ‫‪El-amr‬‬

‫هذا الكود هو أننا نكتب الوجود ف خانة الكتابة ث نعود ال‬


‫السطر بواسطة ‪ vbCrLf‬ونكتب السطر الوال ‪ a‬من اللف‬
‫‪Text1.Text = Text1.Text + vbCrLf + a‬‬

‫نفذ البنامج الن وحاول أن تاول إدخال عدة كلمات بالضغط على‬
‫زر "اكتب ف اللف"‬
‫كما قلت سالفا كيف لكي يتم الكتابة ف آخر اللف يب استعمال‬
‫‪Append‬‬
‫أي أن كود الزر سيكون‬
‫‪)( Private Sub Command1_Click‬‬
‫‪hand = FreeFile‬‬
‫‪Open App.Path & "\fichier.txt" For Append As #hand‬‬
‫‪Print #hand, Text1.Text‬‬
‫أضفت هذا السطر لفراغ محتوى خانة الكتابة بعد التنفيذ' ‪""=Texte.Texte‬‬
‫‪Close #hand‬‬
‫‪End Sub‬‬

‫وليس الكود الول الذي كتبناه ف بداية التطبيق أي هذا‬


‫الكود‪:‬‬
‫‪)( Private Sub Command1_Click‬‬
‫‪hand = FreeFile‬‬
‫‪Open App.Path & "\fichier.txt" For Output As #hand‬‬
‫‪Print #hand, Text1.Text‬‬
‫‪Close #hand‬‬
‫‪End Sub‬‬

‫انتبه للكلمات ذات اللفية المراء‬


‫إذن نفد البنامج وحاول أن تكتب عدة كلمات ف اللف‬
‫" ولحظ النتيجة‬ ‫وبعد ذالك اضغط على زر "‬
‫التعامل مع الملفات‬
‫‪www.startimes2.com‬‬ ‫في لغة الفيجوال بسيك‬ ‫‪El-amr‬‬

‫لقد ت قراءة جيع السطر الوجودة ف اللف‬


‫‪Fichier.txt‬‬
‫التعامل مع الملفات‬
‫‪www.startimes2.com‬‬ ‫في لغة الفيجوال بسيك‬ ‫‪El-amr‬‬

‫وهكذا أيها القارئ الكري ت بمد ال‬


‫النتهاء من هذا الزء الاص بالتعامل مع‬
‫اللفات‬
‫وال أن نلتقي ف إصدار جديد إن كتبه‬
‫ال لنا‬
‫استودعك ال الذي ل تضيع ودائعه‬
‫والسلم عليكم ورحة ال‬

‫وللستفسار عن أي غموض‬
‫بريد الراسلة‬
‫‪el_amr@hotmail.fr‬‬
‫ول تنسوا الدعاء ف ظهر الغيب‬
‫مبكم ف ال‬
‫عمرو اللقب ب‪:‬‬
‫‪El-amr‬‬

You might also like