نظام الملفات كقائمة على vb6. القراءة والكتابة في ملف نصي

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

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

واصف الملف

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

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

ملف مجاني [(RangeNumber) ]

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

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

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

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

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

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

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

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

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

DimMyFile

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

MyFile = ملف مجاني

افتح ("C: \ TEST.txt") للإدخال كـ #MyFile

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

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

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

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

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

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

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

بالنسبة إلى i = 1 إلى 5

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

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

بعدها انا

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

شبابيك

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

أسئلة المراقبة:

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

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

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

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

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

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

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

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

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

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

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

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

مشط (ي) إزالة العنصر الأول

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

فرعي خاص mnuInsert_Click ()

أنا ٪ = مشط (0) .ListIndex

اذا انا< 0 Then

MsgBox "حدد سطر لإدراجه قبله" ، vbExclamation

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

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

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

مشط (3) .AddItem InputBox ("أدخل مكان الميلاد.") ، i

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

فرعي خاص mnuUpdate_Click ()

أنا ٪ = مشط (0) .ListIndex

اذا انا< 0 Then

MsgBox "حدد خط لتعديل" ، vbExclamation

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

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

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

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

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

mnuClear_Click الفرعية الخاصة ()

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

mnuLoad_Click الفرعية الخاصة ()

افتح "person.txt" للإدخال كـ # 1

الإدخال رقم 1 ، numb ، fio ، bdate ، bloc

مشط (0) إضافة خدر

مشط (1)

مشط (2)

مشط (3) كتلة إضافة

"كتابة تفاصيل الجدول في ملف نصي:

mnuSave_Click الفرعية الخاصة ()

N٪ = مشط (0) .ListCount

افتح "person.txt" للإخراج كـ # 1

بالنسبة إلى i = 0 إلى N - 1

خدر = Val (مشط (0) قائمة (i))

fio = مشط (1) قائمة (i)

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

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

اكتب رقم 1 ، numb ، fio ، bdate ، bloc

اغلاق التطبيق:

mnuExit_Click الفرعية الخاصة ()

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

تنسيق الملف رسالة قصيرةسيتم تحميله في حقل النص (الحقل الأيسر في الشكل 7.2) ، وملف التنسيق RTF- في الميدان ثريمربع الكتابة(الهامش الأيمن في الشكل 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) لقاعدة بيانات "Auto Service".

سيارة

سيارة

الأعطال

يُظهر الصف السفلي من الجدول 7.1 أنواع الحقول.

الخيار 2.

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

الأعطال

اسم

الأعطال

سعر

يُظهر الصف السفلي من الجدول 7.2 أنواع الحقول.

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

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

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

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

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

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

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

RichTextBox1.SelText = الحافظة. الحصول على النص

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

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

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

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

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

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

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

FileHandle٪ = ملف مجاني

' افتح الملف

افتح FilePath_

كـ [#] FileHandle٪

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

أغلق [#] FileHandle

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

· FreeFile هو اسم دالة تقوم بإرجاع مؤشر ملف ؛

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

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

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

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

الجدول 15

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

أوضاع الوصول

وصف

ألحق

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

الثنائية

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

مدخل

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

انتاج |

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

عشوائي

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

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

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

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

· اكتب - سجل

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

ملحوظة

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

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

الجدول 16

القيم الممكنة لمعلمة LockType

معنى

وصف

مشترك

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

قراءة القفل

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

قفل الكتابة

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

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

يحظر القراءة والكتابة على حد سواء.

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

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

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

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

· إغلاق هو بيان يغلق الملف المرتبط بالمقبض المحدد.

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

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

EOF (FileHandle)

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

· FileHandle هو مقبض الملف الذي يتم تحديد نهايته.

ترجع الدالة True (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 (مسار الملف)

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

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

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

SavePicture ImageCtrl .Picture ، 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، Section، Key [، Default])

· MyString - سلسلة لتخزين القيمة التي تم إرجاعها بواسطة الوظيفة ؛

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

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

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

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

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

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

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

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

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

MyVariant = SetAllSettings (VBKeyName ، قسم)

· MyVariant عبارة عن مجموعة من القيم من النوع "Variant" التي تُرجعها الدالة.

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

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

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

DeleteSetting VBKeyName ، قسم ، مفتاح

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

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

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



قمة