نظام الملفات كقائمة على vb6. إضافة البيانات إلى ملف

شبابيك

الهدف من العمل: تعلم واستخدام مشغلي لغة VB 6 للعمل مع الملفات أنواع مختلفة: الملفات المتسلسلة (النصية)، ملفات الوصول العشوائي، الملفات الثنائية. البحث واستخدام الأداة شائعالحوارلفتح الملفات وحفظها، وتحديد الخطوط والألوان، واستخدام الكائن الحافظةلتخزين أجزاء النص، باستخدام مثال إنشاء محرر نص بسيط.

أسئلة التحكم:

1. ما هي طرق فتح ملف نصي؟ كيفية إغلاق النص وأي شيء آخر ملف مفتوح?

2. كيف تتم كتابة البيانات في ملف نصي قابل للكتابة؟ ما الفرق بين عبارات الكتابة والطباعة؟

3. كيفية قراءة البيانات من الفتح للقراءة ملف نصي؟ ما هو الفرق بين مشغلي الإدخال وإدخال الخط؟ ما الوظيفة التي يمكن استخدامها لقراءة عدد معين من الأحرف من ملف؟ كيف تقرأ جميع أحرف الملف؟

4. ما هو نوع مخصصالبيانات وكيفية استخدام هذا المفهوم عند العمل مع ملفات الوصول العشوائي ( راف)?

5. مع ما عوامل التشغيل من الملف رافتتم قراءة السجلات وإدخالها في الملف رافسجلات جديدة يجري كتابتها؟

6. لأي غرض يتم تحديد الفهرس واستخدامه عند العمل مع ملف راف?

7. ما هي مميزات استخدام الملفات الثنائية؟ كيف يفتحون؟ كيف تتم القراءة من ملف ثنائي والكتابة إلى ملف ثنائي؟

8. كيف يمكن تطبيق الرقابة شائعالحوارلتحميل محتويات ملف نصي في حقل نصي؟ كيفية استخدام نفس عنصر التحكم لحفظ النص المحرر في ملف نصي؟

9. كيف يمكنك تطبيق التحكم شائعالحوارلتحميل محتوى الملف rtfفي الميدان ثريمربع الكتابة؟ كيفية استخدام نفس عنصر التحكم لحفظ النص المحرر في ملف rtf?

10. كيف يمكنك تطبيق الرقابة شائعالحوارلتغيير قيم معلمات الخط ولتغيير لون النص في النافذة مربع الكتابة(أو جزء محدد من النص في النافذة ثريمربع الكتابة)?

مثال 7.1. خذ بعين الاعتبار تطبيقًا يوضح الكتابة إلى (والقراءة من ملف نصي) "تفاصيل الموظف" - وهي سلاسل تحتوي كل منها على رقم تعريف الموظف والاسم الكامل وتاريخ الميلاد ومكان الميلاد. تشكل الصفوف جدولاً شكل الشاشةسوف يحاكي 4 عناصر تحكم في Combo Box (الشكل 7.1)، مكونًا مصفوفة من كائنات Comb(i) مع تعيين خاصية Style على 1 - SimpleCombo.

قم بتمييز السطر المراد حذفه"، vbExclamation

مشط (ي).RemoveItem ط

'إدراج رقم قياسي جديدإلى الطاولة:

فرعي خاص mnuInsert_Click()

i% = Comb(0).ListIndex

اذا انا< 0 Then

MsgBox "اختر سطراً لإدراجه قبله"، vbExclamation

Comb(0).AddItem InputBox("أدخل الرقم")، i

Comb(1).AddItem InputBox("أدخل الاسم")، i

Comb(2).AddItem InputBox("أدخل تاريخ الميلاد.")، i

Comb(3).AddItem InputBox("أدخل مكان الميلاد."), i

"تغيير الإدخال في الجدول:

فرعي خاص mnuUpdate_Click()

i% = Comb(0).ListIndex

اذا انا< 0 Then

MsgBox "اختر السطر المراد تعديله"، vbExclamation

Comb(0).List(i) = InputBox("أدخل الرقم"، Comb(0).List(i))

Comb(1).List(i) = InputBox("أدخل الاسم"، Comb(1).List(i))

Comb(2).List(i) = InputBox("أدخل تاريخ الميلاد"، Comb(2).List(i))

Comb(3).List(i) = InputBox("أدخل مكان الميلاد"، Comb(3).List(i))

‘ مسح الجدول بأكمله:

فرعي خاص mnuClear_Click()

‘ ملء الجدول بالمعلومات من ملف نصي:

فرعي خاص mnuLoad_Click()

افتح "person.txt" للإدخال كرقم 1

الإدخال رقم 1، خدر، قوة المراقبة الدولية، bdate، كتلة

مشط (0).AddItem خدر

مشط (1).AddItem قوة المراقبة الدولية

مشط (2).AddItem bdate

مشط (3).كتلة AddItem

‘ كتابة تفاصيل الجدول إلى ملف نصي:

فرعي خاص mnuSave_Click()

N% = مشط(0).ListCount

افتح "person.txt" للإخراج رقم 1

لأني = 0 إلى N - 1

خدر = فال (مشط (0).قائمة (ط))

قوة المراقبة الدولية = مشط (1). القائمة (ط)

bdate = CDate(Comb(2).List(i))

الكتلة = مشط (3). القائمة (ط)

اكتب #1، خدر، قوة المراقبة الدولية، bdate، كتلة

"إيقاف التطبيق:

فرعي خاص mnuExit_Click()

مثال 7.2 . فكر في تطبيق يوضح استخدام عناصر التحكم شائعالحوارلفتح ملف وحفظه، ولتحديد الخط واللون، ولتحرير النص.

تنسيق الملف رسالة قصيرةسيتم تحميله في حقل النص (الحقل الأيسر في الشكل 7.2)، وملف التنسيق رتف- في الميدان ثريمربع الكتابة(الهامش الأيمن في الشكل 7.2).

هدف

فصل

هدف

ملكية

هدف

قيمة العقار

"اللوحات العامة

حوار"

فتح/حفظ باسم علامة التبويب

علامة تبويب الخط

علامة التبويب اللون

لا يعرض الجدول خصائص أوامر القائمة الخط, لونو يحرر. يوجد أدناه رمز الإجراء أيضًا لأوامر القائمة فقط ملف (يفتح, يحفظو يحفظمثل). تجميع التعليمات البرمجية لأوامر القائمة الأخرى هو موضوع المهمة الثانية من هذا العمل.

فرعي خاص mnuOpen_Click()

CommonDialog1.ShowOpen

F$ = CommonDialog1.FileName

إذا كان اليمين (F، 3) = "rtf" إذن

RichTextBox1.LoadFile F

ElseIf Right(F, 3) = "txt" إذن

افتح F للإدخال كرقم 1

S$ = الإدخال (N، 1)

فرعي خاص mnuSave_Click()

CommonDialog1.ShowSave

F$ = CommonDialog1.FileName

فرعي خاص mnuSaveAs_Click()

CommonDialog1.ShowSave

F$ = CommonDialog1.FileName

RichTextBox1.SaveFile F، rtfRTF

في سياق هذا العمل، يجب على الطالب إكمال مهمتين.

التمرين 1. في عملية إكمال المهمة، يتقن الطلاب إمكانيات العمل مع ملفات الوصول العشوائي المتوفرة في VB 6 ( سلاح الجو الملكي البريطاني-عشوائيوصولملف).

بالنسبة لجدول قاعدة بيانات معين، يتم الإعلان عن نوع بيانات محدد من قبل المستخدم، ويتم الإعلان عن متغير من هذا النوع (البرنامج التعليمي، الصفحات 108 - 112)، ويتم تجميع الإجراءات وتصحيح الأخطاء التي تستخدم متغير النوع المحدد من قبل المستخدم.

على وجه الخصوص، يتم تنفيذ إجراءات أوامر القائمة. الكتابة إلى الملفسلاح الجو الملكي البريطانيو القراءة من الملفسلاح الجو الملكي البريطاني. كما في المثال 7.1، يتم استخدام مصفوفة من الكائنات لتحرير البيانات. كومبوصندوقوالقائمة يحررمع خمسة أوامر القائمة الفرعية: أضف ملاحظة, حذف المدخلات, أدخل الإدخال, تحرير دخول, مسح الجدول.

الخيار 1.

قم بتعريف نوع بيانات مخصص لجدول "السيارة" (الجدول 7.1) لقاعدة بيانات "الخدمة التلقائية".

سيارة

سيارة

الأعطال

يوضح الصف السفلي من الجدول 7.1 أنواع الحقول.

الخيار 2.

قم بتعريف نوع بيانات مخصص لجدول الأخطاء (الجدول 7.2) لقاعدة بيانات خدمة السيارات.

الأعطال

اسم

الأعطال

سعر

يوضح الصف السفلي من الجدول 7.2 أنواع الحقول.

باستخدام تطبيق المثال 7.1 كعينة، قم بتنظيم إدخال البيانات وتحريرها للجدول المعروض، وكتابة هذه البيانات إلى ملف وصول عشوائي، وقراءة البيانات من ملف وصول عشوائي. كما في المثال 7.1، يتم تنفيذ هذه الإجراءات كعمل أوامر القائمة الموضحة في الشكل. 7.1.

المهمة 2. كجزء من النشاط، يقوم الطلاب بإضافة ميزات جديدة إلى التطبيق النموذجي 2 الذي يسمح بمعاملة التطبيق كمحرر نصوص بسيط.

الخيار 1 شائعالحوارتنفيذ أوامر القائمة الخطو لون(مع القائمة الفرعية لون الشخصيةو لون الخلفية). بمساعدة هذه الأوامر، يجب توفير اختيار الخط (اسمه ونمطه وحجمه) لجزء النص المحدد في النافذة. ثريمربع الكتابةوكذلك اختيار لون رموز الجزء المحدد واختيار لون خلفية هذه النافذة بأكملها.

ملحوظة:عند إعداد كائن شائعالحوارلتحديد خط باستخدام الخاصية (مخصص)، تأكد من ضبط قيمة خاصية الأعلام على 1 أو 2 أو 3 (انظر الدليل، ص 183).

الخيار 2. باستخدام التحكم شائعالحوارتنفيذ أوامر القائمة يحرر(القائمة الفرعية ينسخ, يقطعو معجون)، والغرض منه نسخأو إزالةإلى الحافظة الخاصة بجزء النص المحدد، وكذلك إدراجإلى المكان المحدد في نص محتويات الحافظة.

ملحوظة:إلى الحافظة (object الحافظة) يمكنك استخدام طريقتي SetText وGetText:

الحافظة. SetText RichTextBox1.SelText

RichTextBox1.SelText = Clipboard. الحصول على النص

يجب على كل برنامج حفظ البيانات على القرص وقراءتها من القرص. يعد ذلك ضروريًا، على سبيل المثال، لحفظ إعدادات البرنامج، فمن غير المرجح أن يعجب المستخدم بالبرنامج، والذي يجب تهيئته مرة أخرى في المرة التالية التي يتم فيها تشغيله.

في هذه المقالة نحن سوف نتكلمحول العمل مع الملفات النصية باستخدام Visual Basic.

واصف الملف

للعمل مع الملفات نظام التشغيليستخدم قنوات الإدخال/الإخراج، أي. كل ملف مفتوح له رقمه الخاص.

هناك وظيفة في Visual Basic ملف مجاني، والذي يقوم بإرجاع رقم القناة المجانية التي يمكن استخدامها للعمل مع الملف. إذا لم تكن هناك قنوات مجانية، فسيحدث خطأ.

ملف مجاني[(رقم النطاق) ]

رقم النطاق- معلمة اختيارية تسمح لك بتحديد نطاق القنوات المجانية إذا رقم النطاق= 0 (افتراضي)، فسيتم إرجاع رقم القناة من النطاق 1 - 255، وإذا كان 1، فمن النطاق 256 - 511.

MyFile = FreeFile "تم تعيين قناة مجانية لـ Variable MyFile ويمكن الآن استخدامه للعمل مع الملفات

العمل مع الملفات النصية

في أغلب الأحيان يكون من الضروري مقابلة الملفات النصية. تتكون الملفات النصية من مجموعة أحرف ASCII (الكود القياسي الأمريكي لتبادل المعلومات).

قبل البدء في كتابة / قراءة البيانات، يجب فتح الملف، ويتم ذلك باستخدام المشغل يفتح(اسم الملف) كما ل #رقم الملف، أين:

مدخل- فتح ملف للقراءة، إذا كان الملف غير موجود، يحدث خطأ؛

انتاج |- للكتابة، إذا كان الملف غير موجود، سيتم إنشاؤه، وإذا كان الملف موجودا، فسيتم الكتابة فوقه؛

ألحق- بالنسبة للإضافة، إذا كان الملف غير موجود سيتم إنشاؤه، وإذا كان الملف موجودا، فسيتم إضافة البيانات إلى نهاية الملف.

يمكن قراءة الملفات النصية بطريقتين: قراءة حرف بحرف باستخدام الوظيفة مدخل(Number_of_read_characters, #رقم الملف) سطرا سطرا، لهذا يتم استخدام الوظيفة خط المدخلات#رقم الملف, أين_القراءة.

DimMyFile

خافت S كسلسلة "متغير لتخزين بيانات القراءة

MyFile = FreeFile

افتح ("C:\TEST.txt") للإدخال باسم #MyFile

إدخال الخط #MyFile، S "اقرأ السطر الأول من الملف TEST.TXT إلى المتغير S

DimMyFile "قم بتعريف متغير لملف مجاني

خافت ط كعدد صحيح "متغير للحلقة

خافت tS كسلسلة "متغير لقراءة السلاسل

خافت S كسلسلة "متغير لتخزين البيانات النهائية

MyFile = FreeFile "قم بتعيين قناة مجانية للعمل مع الملفات

"افتح الملف TEST.TXT للقراءة

لأني = 1 إلى 5

إدخال السطر #MyFile، tS "اقرأ الملف TEST.TXT سطراً سطراً

إذا كنت => 5 ثم S = tS "إذا كان السطر الخامس، فقم بتخزينه في المتغير S

بعدها انا

أغلق #MyFile "أغلق الملف

Dim MyFile "قم بتعريف متغير لملف مجاني

Dim S As String "متغير لتخزين بيانات القراءة

MyFile = FreeFile "قم بتعيين قناة مجانية للعمل مع الملفات

افتح ("C:\TEST.txt") للإدخال باسم #MyFile "افتح الملف TEST.TXT للقراءة

S = الإدخال$(سجل(1)، 1) "اقرأ الملف بأكمله في المتغير S

أغلق #MyFile "أغلق الملف

هناك عوامل للكتابة إلى ملف. مطبعة#رقم الملف, بياناتو يكتب#رقم الملف, بيانات. والفرق الوحيد بين هؤلاء المشغلين هو ذلك يكتبيكتب البيانات في علامات الاقتباس، و مطبعةبدون اقتباسات.

سيقوم التعليمة البرمجية التالية بإنشاء ملف جديد TEST.TXT على محرك الأقراص C:\ وكتابة سطرين فيه، الأول بدون علامات الاقتباس والثاني مع علامات الاقتباس:

DimMyFile "قم بتعريف متغير لملف مجاني

MyFile = FreeFile "قم بتعيين قناة مجانية للعمل مع الملفات

افتح ("C:\TEST.txt") للإخراج باسم #MyFile "افتح الملف TEST.TXT للكتابة

طباعة #MyFile، "تمت كتابة هذه السلسلة بواسطة عبارة الطباعة، وهي بدون علامات اقتباس..."

اكتب #MyFile، "تمت كتابة هذه السلسلة بواسطة عبارة الكتابة، وهي بين علامتي اقتباس..."

أغلق #MyFile "أغلق الملف

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

المقالة خام بعض الشيء، لكنها ستكون مفيدة للمبرمجين المبتدئين. في المرة القادمة سأتحدث عن العمل مع الملفات الثنائية.

8. تخزين المعلومات وقراءتها

بحيث بعد انتهاء البرنامج، لا يتم فقدان جميع البيانات التي تم إنشاؤها في الذاكرة، يجب أن تكون قادرا على حفظ المعلومات على القرص الثابت. وإلا فإن جميع المعلومات سوف تختفي دون أن يترك أثرا. يمكن تخزين البيانات وقراءتها بطرق مختلفة. يمكن استخدام الملفات الثنائية والنصية للتعامل مع المعلومات ذات الأحجام والتنسيقات المختلفة. يمكنك استخدام سجل Windows لتخزين كميات صغيرة من المعلومات. وبالنسبة للمهام الأكثر تعقيدا، فمن المعقول استخدام قواعد البيانات.

8.1. فتح الملفات باستخدام "يفتح "

الملف عبارة عن منطقة مسماة لأي وسيط تخزين خارجي. البيانات "تعيش" في ذاكرة الكمبيوتر والملفات موجودة على القرص الصلب. البرنامج لا يعمل مع الملفات مباشرة، بل يستخدم نظام التشغيل كوسيط.

هناك نوعان من أسماء الملفات: كامل - بالإضافة إلى اسم الملف، تتم الإشارة أيضًا إلى موقع الملف على الوسائط الخارجية (على سبيل المثال، "C:\Program Files\Microsoft Visual Studio\VB98\VB 6.EXE" ) وباختصار - اسم الملف فقط (VB 6.EXE ). إذا لم يتم تحديد موقع الملف، فسيتم البحث عنه في المجلد الحالي، بشكل افتراضي - المجلد الذي يوجد به تطبيقك. يتكون اسم الملف المباشر من جزأين: اسم الملف الفريد الفعلي وامتداده. يحدد الاسم نفسه الملف، بينما يشير الامتداد عادة إلى تنسيق الملف أو البرنامج الذي تم إنشاؤه به.

قبل البدء في العمل مع ملف، يجب عليك أن تسأل نظام التشغيل المؤشر (واصف) ملف. للحصول عليه، استخدم "FreeFile". ثم، باستخدام عبارة "فتح"، يرتبط هذا المؤشر بالملف المطلوب. فقط بعد ذلك سيكون البرنامج قادرًا على العمل معه. بناء جملة فتح الملف كما يلي:

"احصل على مؤشر ملف مجاني وقم بتعيينه لمتغير."

FileHandle% = FreeFile

' افتح الملف

افتح مسار الملف _

كـ[#]FileHandle%

...(العمل مع ملف)

إغلاق[#]معالج الملف

· FileHandle % هو متغير يقوم بتخزين مؤشر الملف؛

· FreeFile هو اسم الدالة التي تُرجع مؤشر الملف؛

· مفتوح - اسم المشغل؛

· FilePath - الاسم الكامل للملف؛

· For هي كلمة أساسية متبوعة بوصف لوضع الوصول إلى الملف؛

· الوضع - وضع الوصول إلى الملفات (انظر الجدول 15)؛

الجدول 15

أوضاع الوصول إلى الملفات

أوضاع الوصول

وصف

ألحق

إلحاق البيانات بنهاية ملف نصي موجود. إذا كان الملف غير موجود، سيتم إنشاؤه

الثنائية

فتح ملف في الوضع الثنائي، أي. كمجموعة من البايتات. إذا كان الملف غير موجود ولكن سيتم إنشاؤه

مدخل

فتح ملف للقراءة بتنسيق نصي

انتاج |

فتح ملف لكتابة ملف نصي. في هذه الحالة، سيتم حذف كافة المعلومات القديمة. إذا كان الملف غير موجود ولكن سيتم إنشاؤه

عشوائي

فتح ملف في وضع الوصول العشوائي. يستخدم هذا الوضع للعمل مع السجلات البسيطة. إذا كان الملف غير موجود ولكن سيتم إنشاؤه

· الوصول هو كلمة أساسية اختيارية متبوعة بوصف لنوع الوصول؛

· AccessType - وصف نوع الوصول:

· قراءة القراءة؛

· اكتب - سجل؛

· قراءة كتابة - القراءة والكتابة.

ملحوظة

تسمح أوضاع الوصول للإلحاق والإخراج فقط بالوصول للكتابة، والوصول للإدخال فقط للقراءة، وأنواع الوصول الثنائية والعشوائية جميعها.

· LockType هو معلمة اختيارية تحدد ما إذا كان بإمكان البرامج الأخرى استخدام هذا الملف أثناء عمل برنامجك معه. وعادة ما يرتبط بالشبكات (انظر الجدول 16).

الجدول 16

القيم المحتملة لمعلمة LockType

معنى

وصف

مشترك

سيكون لجميع المستخدمين الذين لديهم الحقوق اللازمة حق الوصول الكامل إلى الملف

قراءة القفل

قراءة الملف محظورة، ولكن الكتابة مسموحة

قفل الكتابة

الكتابة في الملف محظورة، لكن القراءة مسموحة

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

يحظر القراءة والكتابة فيه.

· كما هي الكلمة الأساسية متبوعة بمؤشر الملف.

· # هو حرف يشير إلى أن القيمة التي تليها هي مؤشر ملف.

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

· CharInBuffer % - طول السجل للملف المفتوح في وضع الوصول العشوائي (عشوائي).

· Close عبارة عن عبارة تغلق الملف المرتبط بالمقبض المحدد.

من المهم إغلاق الملف بعد الانتهاء من العمل معه. تقوم عبارة "إغلاق" بتحرير مؤشر الملف ومنطقة الذاكرة المرتبطة به.

عند العمل مع ملف، أي عند القراءة منه، من المهم جدًا تحديد نهاية الملف. يمكن تعريفه باستخدام وظيفة EOF (نهاية الملف):

EOF (مقبض الملف)

· EOF - اسم الوظيفة؛

· FileHandle هو مؤشر الملف الذي يتم تحديد نهايته.

تقوم الدالة بإرجاع True (صحيح) إذا تم الوصول إلى نهاية الملف، وإلا فإنها ترجع False (False).

8.2. القراءة والكتابة في ملف نصي

يتم فتح الملف النصي في وضع الوصول "الإدخال" أو "الإخراج" أو "الإلحاق" (انظر الجدول 15). تكمن خصوصية هذا الوضع في أنه يعمل فقط مع أحرف محددة قابلة للطباعة. لا فائدة من العمل مع رموز الخدمة.

لكتابة المعلومات، يتم استخدام عبارتين "طباعة" و"كتابة"، ويكون تركيبهما كما يلي:

طباعة #FileHandle%، VarBuffer[;]

اكتب #FileHandle%، VarBuffer[;]

· طباعة / كتابة - الكلمات الرئيسية للمشغل.

· #FileHandle % - مؤشر الملف الذي سيتم وضع المعلومات عليه.

· VarBuffer هي القيمة التي سيتم كتابتها في الملف.

· ; - معلمة اختيارية تستخدم عند الكتابة إلى ملف نصي، تعني أنه سيتم كتابة القيمة التالية على نفس السطر، وإذا كانت غائبة، إلى السطر التالي.

لقراءة المعلومات من ملف، يتم استخدام عوامل التشغيل "الإدخال" و"إدخال الخط". بناء الجملة مشابه لبعضها البعض:

إدخال السطر #FileHandle%، VarBuffer

أدخل #FileHandle٪، VarBuffer

· إدخال / إدخال الخط - الكلمات الرئيسية للمشغل.

· #FileHandle % - مؤشر الملف الذي ستتم قراءة المعلومات منه.

· VarBuffer هو متغير سيتم قراءة المعلومات فيه.

الفرق بين مشغلي إدخال الخط والإدخال هو أن الأول مخصص فقط للملفات النصية، والثاني مخصص لأي منها. في حالة الملفات النصية، يقرأ "الإدخال" البيانات الموجودة على نفس السطر حتى المحدد الأول (بالنسبة للبيانات النصية، يكون المحدد "،" (فاصلة)، وبالنسبة للبيانات الرقمية - " " (مسافة) و"،" )، و"إدخال السطر » يقرأ السطر بأكمله مرة واحدة، متجاهلاً أي محددات.

ملحوظة

ليس لدى Visual Basic أي سيطرة على تنسيق الملفات التي تم إنشاؤها مسبقًا. لذلك، يمكن قراءة الرمز "2" على أنه الرقم المقابل والعكس صحيح.

8.3. العمل مع الملفات الثنائية

الملفات مفتوحة في تنسيق ثنائيعامل التشغيل " فتح" في الوضع " ثنائي". السمة المميزة لهذا الوضع هي أن العمل مع الملف يركز حصريًا على وحدات بايت محددة. وبما أن Visual Basic يمكنه التوجه مباشرة إلى الموقع المطلوب للملف، فإن هذا الوضع يسمى أيضًا − وضع الوصول المباشر. ميزة أخرى لهذا الوضع هي القدرة على كتابة وقراءة المعلومات في وقت واحد إلى أجزاء مختلفة من الملف دون إعادة فتحه. تتم الكتابة إلى ملف مفتوح في الوضع الثنائي باستخدام بناء الجملة التالي:

ضع #FileHandle%،، NameVar

· ضع - اسم المشغل لكتابة المعلومات.

· RecNumber – رقم البايت للملف الذي سيتم كتابة المعلومات عليه (معلمة اختيارية).

· NameVar هو متغير سيتم كتابة محتوياته في الملف.

تتم قراءة المعلومات من ملف في الوضع الثنائي باستخدام العبارة التالية:

احصل على #FileHandle%،، NameVar

· Get هو اسم مشغل تسجيل المعلومات.

· FileHandle٪ - مؤشر الملف.

· RecNumber – رقم البايت للملف الذي سيتم قراءة المعلومات منه (اختياري).

· NameVar - اسم المتغير الذي سيتم وضع معلومات القراءة فيه.

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

ملحوظة

إذا كانت المعلمة "RecNumber" غائبة، فسيتم كتابة المعلومات أو قراءتها في البايت التالي من الملف بعد البايت الذي عملت به من قبل.

8.4. التلاعب بالرسومات

يمكن أيضًا حفظ الصور الرسومية في ملفات واسترجاعها منها. لاستخراج صورة من صورة نقطية أو ملف رمز وتعيينها إلى الخاصية "صورة" لعنصري التحكم "PictureBox" و"الصورة"، استخدم وظيفة "LoadPicture ()" مع بناء الجملة التالي:

ImageCtrl.Picture = LoadPicture(FilePath)

· ImageCtrl هو اسم عنصر تحكم نافذة الصورة أو عنصر تحكم الصورة أو النموذج؛

· LoadPicture - اسم الوظيفة؛

· FilePath هو الاسم الكامل للملف.

SavePicture ImageCtrl .صورة، FilePath

· SavePicture - اسم المشغل؛

· ImageCtrl هو اسم عنصر تحكم نافذة الصورة أو عنصر تحكم الصورة أو النموذج؛

· الصورة - اسم خاصية الكائن المسؤولة عن الصورة؛

· FilePath هو الاسم الكامل للملف، مما يشير إلى موقعه على القرص.

8.5. العمل مع البيانات في التسجيل

يمكنك استخدام سجل Windows لتخزين أجزاء صغيرة من معلومات تنسيق الأحرف. يحتوي Visual Basic على أربعة إجراءات يمكنك استخدامها للوصول إليه. إنها سهلة الاستخدام للغاية، ولكن لها عيبًا رئيسيًا واحدًا: يمكنك فقط الوصول إلى البيانات من مفتاح تسجيل محدد: "MyComputer \HKEY _CURRENT _USER \Software \VB and VBA Program Settings". للوصول إلى مفاتيح التسجيل الأخرى، تحتاج إلى استخدام الوظائف الخاصة " Win 32 API».

للحصول على قيمة الإعداد من مفتاح تسجيل Windows الخاص بـ Visual Basic، استخدم الوظيفة التالية:

MyString = GetSetting(VBKeyName، القسم، المفتاح [، الافتراضي])

· MyString - سلسلة لتخزين القيمة التي ترجعها الدالة؛

· GetSetting هو اسم الوظيفة.

· VBKeyName هي قيمة سلسلة تمثل اسم المفتاح الفرعي VB /VBA الداخلي.

· المفتاح هو قيمة سلسلة تمثل اسم المعلمة في القسم.

· الافتراضي هو وسيطة اختيارية سيتم إرجاع قيمتها في حالة حدوث خطأ (المعلمة مفقودة).

لتخزين قيمة في سجل ويندوز، استخدم العبارة التالية:

SaveSetting VBKeyName، القسم، المفتاح، MyString

· SaveSetting هو اسم المشغل.

· MyString هو متغير سلسلة سيتم وضع القيمة التي تم العثور عليها فيها.

للحصول على مصفوفة من السجل تحتوي على كافة قيم المعلمات من مفتاح فرعي محدد، استخدم الوظيفة التالية:

MyVariant = SetAllSettings(VBKeyName، القسم)

· MyVariant عبارة عن مجموعة من القيم من النوع "Variant" التي يتم إرجاعها بواسطة الوظيفة.

· SetAllSettings هو اسم الوظيفة.

· القسم - قيمة سلسلة تمثل قسمًا أو قسمًا فرعيًا لتطبيق معين.

لإزالة قسم المعلمة بالكامل، استخدم عامل التشغيل بالصيغة التالية:

حذف إعداد VBKeyName، القسم، المفتاح

· حذف الإعداد هو اسم المشغل.

أسئلة أمنية للفحص الذاتي

  1. كيف يمكن تخزين بعض المعلومات على المدى الطويل؟
  2. ما هو الملف؟
  3. ما هي أسماء الملفات التي تعرفها؟
  4. أعط بناء جملة عامل التشغيل "Open". اشرح الغرض من معلماته.
  5. كيف يمكنني تنظيم الوصول المشترك لعدة تطبيقات إلى نفس الملف في نفس الوقت؟
  6. كيفية تحديد أن المعلومات الموجودة في الملف قد استنفدت؟
  7. لماذا يوصى بإغلاق الملف بعد العمل به؟
  8. ما هو الفرق بين أوضاع النص والملفات الثنائية في نظرك؟
  9. كيف تتم قراءة البيانات وكتابتها في وضع الملف النصي؟
  10. كيف تتم قراءة البيانات وكتابتها في وضع الملف الثنائي؟
  11. ما الفرق بين عاملي "الطباعة" و"الكتابة" عند العمل مع الملفات؟
  12. ما الفرق بين عبارات "الإدخال" و"إدخال الخط" عند العمل مع الملفات؟
  13. كيف يمكنك العمل مع البيانات الرسومية؟
  14. ما هي المبادئ الأساسية للعمل مع سجل ويندوز؟



قمة