ตัวอย่างรหัสการทำงานของเมนูระบบไฟล์ Vb6 การอ่านและเขียนไปยังไฟล์ข้อความ

หน้าต่าง

เป้าหมายของงาน: การเรียนรู้และการใช้ตัวดำเนินการภาษา VB 6 เพื่อทำงานกับไฟล์ หลากหลายชนิด: ไฟล์ลำดับ (ข้อความ), ไฟล์เข้าถึงโดยสุ่ม, ไฟล์ไบนารี การวิจัยและการใช้เครื่องมือ ทั่วไปกล่องโต้ตอบเพื่อเปิดและบันทึกไฟล์ เลือกแบบอักษรและสี และใช้วัตถุ คลิปบอร์ดสำหรับเก็บเศษข้อความ โดยใช้ตัวอย่างการสร้างโปรแกรมแก้ไขข้อความอย่างง่าย

คำถามควบคุม:

1. มีวิธีใดบ้างในการเปิดไฟล์ข้อความ วิธีการปิดข้อความและอื่น ๆ เปิดไฟล์?

2. ข้อมูลถูกเขียนไปยังไฟล์ข้อความที่เขียนได้อย่างไร? ความแตกต่างระหว่างคำสั่ง Write และ Print คืออะไร?

3. ข้อมูลที่อ่านจากไฟล์ข้อความเปิดให้อ่านได้อย่างไร? อะไรคือความแตกต่างระหว่างตัวดำเนินการ Input และ Line Input? ฟังก์ชันใดสามารถใช้อ่านอักขระตามจำนวนที่ระบุจากไฟล์ได้ วิธีอ่านอักขระทั้งหมดของไฟล์

4. ประเภทข้อมูลที่กำหนดเองคืออะไร และแนวคิดนี้ใช้อย่างไรเมื่อทำงานกับไฟล์เข้าถึงโดยสุ่ม ( กองทัพอากาศ)?

5. ด้วยตัวดำเนินการใดจากไฟล์ กองทัพอากาศบันทึกถูกอ่านและลงในไฟล์ กองทัพอากาศบันทึกใหม่ที่กำลังเขียน?

6. ดัชนีถูกกำหนดและใช้เมื่อทำงานกับไฟล์เพื่อจุดประสงค์ใด กองทัพอากาศ?

7. คุณสมบัติของการใช้ไฟล์ไบนารีคืออะไร? พวกเขาเปิดได้อย่างไร? การอ่านจากไฟล์ไบนารีและการเขียนไปยังไฟล์ไบนารีเป็นอย่างไร

8. วิธีการใช้การควบคุม ทั่วไปกล่องโต้ตอบเพื่อโหลดเนื้อหาของไฟล์ข้อความลงในช่องข้อความ? จะใช้ตัวควบคุมเดียวกันเพื่อบันทึกข้อความที่แก้ไขในไฟล์ข้อความได้อย่างไร

9. คุณจะใช้การควบคุมได้อย่างไร ทั่วไปกล่องโต้ตอบเพื่อดาวน์โหลดไฟล์เนื้อหา rtfในสนาม รวยกล่องข้อความ? วิธีใช้ตัวควบคุมเดียวกันเพื่อบันทึกข้อความที่แก้ไขลงในไฟล์ rtf?

10. คุณจะใช้การควบคุมได้อย่างไร ทั่วไปกล่องโต้ตอบเพื่อเปลี่ยนค่าของพารามิเตอร์แบบอักษรและเปลี่ยนสีของข้อความในหน้าต่าง กล่องข้อความ(หรือข้อความที่เลือกในหน้าต่าง รวยกล่องข้อความ)?

ตัวอย่าง 7.1 พิจารณาใบสมัครที่สาธิตการเขียนถึง (และอ่านจากไฟล์ข้อความ) "รายละเอียดพนักงาน"—สตริงแต่ละรายการประกอบด้วยหมายเลขประจำตัวของพนักงาน ชื่อนามสกุล วันเดือนปีเกิด และสถานที่เกิด แถวสร้างตารางที่จะถูกเลียนแบบในรูปแบบหน้าจอโดยตัวควบคุม Combo Box 4 ตัว (รูปที่ 7.1) ซึ่งสร้างอาร์เรย์ของวัตถุ Comb(i) โดยตั้งค่าคุณสมบัติ Style เป็น 1 - SimpleCombo

เน้นบรรทัดที่จะลบ", vbExclamation

หวี(ญ).RemoveItem i

'แทรก รายการใหม่ไปที่ตาราง:

ส่วนตัวย่อย 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

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, มึน, fio, bdate, bloc

หวี (0) เพิ่มรายการมึนงง

หวี(1).AddItem fio

หวี (2). เพิ่มรายการ bdate

หวี (3) บล็อก AddItem

‘ การเขียนรายละเอียดตารางไปยังไฟล์ข้อความ:

ส่วนตัวย่อย mnuSave_Click()

N% = หวี(0).ListCount

เปิด "person.txt" สำหรับเอาต์พุตเป็น #1

สำหรับ i = 0 ถึง N - 1

ชา = Val(หวี(0).รายการ(i))

fio = หวี (1). รายการ (i)

bdate = CDate(หวี(2).รายการ(i))

bloc = หวี (3). รายการ (i)

เขียน #1, มึน, fio, bdate, bloc

‘ การปิดแอปพลิเคชัน:

ส่วนตัวย่อย mnuExit_Click()

ตัวอย่าง 7.2 . พิจารณาแอปพลิเคชันที่สาธิตการใช้ตัวควบคุม ทั่วไปกล่องโต้ตอบเพื่อเปิดและบันทึกไฟล์ เลือกฟอนต์และสี และแก้ไขข้อความ

ฟอร์แมตไฟล์ TXTจะถูกโหลดลงในช่องข้อความ (ช่องซ้ายในรูปที่ 7.2) และไฟล์รูปแบบ ร.ฟ.ท- ในสนาม รวยกล่องข้อความ(ระยะขอบขวาในรูปที่ 7.2)

วัตถุ

ระดับ

วัตถุ

คุณสมบัติ

วัตถุ

มูลค่าทรัพย์สิน

“แผงทั่วไป

บทสนทนา”

แท็บเปิด/บันทึกเป็น

แท็บแบบอักษร

แท็บสี

ตารางไม่แสดงคุณสมบัติของเมนูคำสั่ง แบบอักษร, สีและ แก้ไข. ด้านล่างนี้เป็นรหัสขั้นตอนสำหรับคำสั่งเมนูเท่านั้น ไฟล์ (เปิด, บันทึกและ บันทึกเช่น). การคอมไพล์โค้ดสำหรับเมนูคำสั่งอื่นๆ เป็นหัวข้อของภารกิจที่ 2 ของงานนี้

ส่วนตัวย่อย mnuOpen_Click()

CommonDialog1.ShowOpen

F$ = CommonDialog1.ชื่อไฟล์

ถ้าใช่ (F, 3) = "rtf" แล้ว

RichTextBox1.LoadFile F

ElseIf Right(F, 3) = "txt" จากนั้น

เปิด F เพื่อป้อนเป็น #1

S$ = อินพุต (N, 1)

ส่วนตัวย่อย mnuSave_Click()

CommonDialog1.ShowSave

F$ = CommonDialog1.ชื่อไฟล์

ส่วนตัวย่อย mnuSaveAs_Click()

CommonDialog1.ShowSave

F$ = CommonDialog1.ชื่อไฟล์

RichTextBox1.SaveFile F, rtfRTF

ในหลักสูตรนี้นักเรียนต้องทำ 2 งาน

แบบฝึกหัด 1. ในกระบวนการทำงานให้เสร็จ นักเรียนจะเชี่ยวชาญความเป็นไปได้ในการทำงานกับไฟล์เข้าถึงโดยสุ่มที่มีอยู่ใน VB 6 ( กองทัพอากาศ-สุ่มเข้าถึงไฟล์).

สำหรับตารางฐานข้อมูลที่กำหนด จะมีการประกาศประเภทข้อมูลที่ผู้ใช้กำหนด ตัวแปรประเภทนี้จะถูกประกาศ (บทช่วยสอน หน้า 108 - 112) โพรซีเดอร์จะถูกคอมไพล์และดีบั๊กโดยใช้ตัวแปรประเภทที่ผู้ใช้กำหนด

โดยเฉพาะอย่างยิ่ง มีการใช้ขั้นตอนสำหรับคำสั่งเมนู เขียนลงไฟล์กองทัพอากาศและ อ่านจากไฟล์กองทัพอากาศ. ดังตัวอย่างที่ 7.1 อาร์เรย์ของอ็อบเจกต์ถูกใช้เพื่อแก้ไขข้อมูล คำสั่งผสมกล่องและเมนู แก้ไขด้วยห้าคำสั่งเมนูย่อย: เพิ่มบันทึก, ลบรายการ, ใส่รายการ, แก้ไขรายการ, ล้างตาราง.

ตัวเลือกที่ 1.

ประกาศประเภทข้อมูลที่กำหนดเองสำหรับตาราง "รถยนต์" (ตาราง 7.1) ของฐานข้อมูล "บริการรถยนต์"

รถ

รถ

ทำงานผิดปกติ

แถวล่างของตารางที่ 7.1 แสดงประเภทของฟิลด์

ตัวเลือก 2.

ประกาศประเภทข้อมูลที่กำหนดเองสำหรับตาราง Faults (ตาราง 7.2) ของฐานข้อมูล Car Service

ทำงานผิดปกติ

ชื่อ

ทำงานผิดปกติ

ราคา

แถวล่างของตาราง 7.2 แสดงประเภทของฟิลด์

ใช้แอปพลิเคชันตัวอย่าง 7.1 เป็นตัวอย่าง จัดระเบียบการป้อนข้อมูลและการแก้ไขสำหรับตารางที่นำเสนอ เขียนข้อมูลนี้ลงในไฟล์เข้าถึงโดยสุ่ม และอ่านข้อมูลจากไฟล์เข้าถึงโดยสุ่ม ดังตัวอย่างที่ 7.1 การกระทำเหล่านี้ถูกนำมาใช้เป็นการทำงานของคำสั่งเมนูที่แสดงในรูปที่ 7.1.

ภารกิจที่ 2 ส่วนหนึ่งของกิจกรรม นักเรียนเพิ่มคุณลักษณะใหม่ให้กับแอปพลิเคชันตัวอย่าง 2 ซึ่งอนุญาตให้แอปพลิเคชันถือเป็นโปรแกรมแก้ไขข้อความอย่างง่าย

ตัวเลือกที่ 1 ทั่วไปกล่องโต้ตอบใช้คำสั่งเมนู แบบอักษรและ สี(มีเมนูย่อย สีตัวละครและ สีพื้นหลัง). ด้วยความช่วยเหลือของคำสั่งเหล่านี้ ควรเลือกแบบอักษร (ชื่อ ลักษณะ และขนาด) สำหรับส่วนของข้อความที่เลือกในหน้าต่าง รวยกล่องข้อความเช่นเดียวกับการเลือกสีของสัญลักษณ์ของส่วนที่เลือกและเลือกสีพื้นหลังของหน้าต่างทั้งหมดนี้

บันทึก:เมื่อตั้งวัตถุ ทั่วไปกล่องโต้ตอบในการเลือกฟอนต์โดยใช้คุณสมบัติ (กำหนดเอง) ต้องแน่ใจว่าได้ตั้งค่าของคุณสมบัติ Flags เป็น 1, 2 หรือ 3 (ดูคู่มือ, หน้า 183)

ตัวเลือก 2. โดยใช้การควบคุม ทั่วไปกล่องโต้ตอบใช้คำสั่งเมนู แก้ไข(เมนูย่อย สำเนา, ตัดและ แปะ) ซึ่งมีวัตถุประสงค์คือ การคัดลอกหรือ การกำจัดไปยังคลิปบอร์ดของส่วนข้อความที่เลือก เช่นเดียวกับ แทรกไปยังตำแหน่งที่เลือกของข้อความเนื้อหาของคลิปบอร์ด

บันทึก:ไปยังคลิปบอร์ด (object คลิปบอร์ด) คุณสามารถใช้เมธอด SetText และ GetText:

คลิปบอร์ด SetText RichTextBox1.SelText

RichTextBox1.SelText = คลิปบอร์ด รับข้อความ

8. การจัดเก็บและการอ่านข้อมูล

เพื่อให้หลังจากโปรแกรมสิ้นสุดลง ข้อมูลทั้งหมดที่สร้างขึ้นในหน่วยความจำจะไม่สูญหาย คุณต้องสามารถบันทึกข้อมูลลงในฮาร์ดดิสก์ได้ มิฉะนั้นข้อมูลทั้งหมดจะหายไปอย่างไร้ร่องรอย สามารถจัดเก็บและอ่านข้อมูลได้หลายวิธี ไฟล์ไบนารีและไฟล์ข้อความสามารถใช้ทำงานกับข้อมูลที่มีขนาดและรูปแบบต่างๆ ได้ คุณสามารถใช้ Windows Registry เพื่อเก็บข้อมูลจำนวนเล็กน้อยได้ และสำหรับงานที่ซับซ้อนที่สุด การใช้ฐานข้อมูลก็สมเหตุสมผล

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

โหมดการเข้าถึงไฟล์

โหมดการเข้าถึง

คำอธิบาย

ผนวก

การเพิ่มข้อมูลต่อท้ายไฟล์ข้อความที่มีอยู่ ถ้าไฟล์นั้นไม่มีอยู่ ไฟล์นั้นจะถูกสร้างขึ้น

ไบนารี่

การเปิดไฟล์ในโหมดไบนารี เช่น เป็นชุดของไบต์ หากไฟล์ไม่มีอยู่แต่จะถูกสร้างขึ้น

ป้อนข้อมูล

การเปิดไฟล์เพื่ออ่านในรูปแบบข้อความ

เอาต์พุต

การเปิดไฟล์เพื่อเขียนไฟล์ข้อความ ในกรณีนี้ ข้อมูลเก่าทั้งหมดจะถูกลบ หากไฟล์ไม่มีอยู่แต่จะถูกสร้างขึ้น

สุ่ม

การเปิดไฟล์ในโหมดการเข้าถึงโดยสุ่ม โหมดนี้ใช้สำหรับทำงานกับเรกคอร์ดอย่างง่าย หากไฟล์ไม่มีอยู่แต่จะถูกสร้างขึ้น

· Access เป็นคีย์เวิร์ดที่ไม่บังคับตามด้วยคำอธิบายประเภทการเข้าถึง

· AccessType - คำอธิบายของประเภทการเข้าถึง:

· อ่าน - อ่าน;

· เขียน - บันทึก;

· อ่านเขียน - การอ่านและการเขียน

บันทึก

โหมดการเข้าถึงส่วนต่อท้ายและเอาต์พุตอนุญาตเฉพาะการเข้าถึงแบบเขียน การเข้าถึงแบบอ่านอย่างเดียวแบบอินพุต และแบบไบนารีและแบบสุ่มทั้งสามประเภท

· LockType เป็นพารามิเตอร์ทางเลือกที่กำหนดว่าโปรแกรมอื่นสามารถใช้ไฟล์นี้ได้หรือไม่ในขณะที่โปรแกรมของคุณกำลังทำงานอยู่ โดยปกติแล้วจะเกี่ยวข้องกับเครือข่าย (ดูตารางที่ 16)

ตารางที่ 16

ค่าที่เป็นไปได้สำหรับพารามิเตอร์ LockType

ความหมาย

คำอธิบาย

ใช้ร่วมกัน

ผู้ใช้ทุกคนที่มีสิทธิ์ที่จำเป็นจะสามารถเข้าถึงไฟล์ได้อย่างเต็มที่

ล็อคอ่าน

การอ่านไฟล์ถูกบล็อก แต่อนุญาตให้เขียนได้

ล็อคการเขียน

การเขียนไปยังไฟล์ถูกบล็อก แต่อนุญาตให้อ่านได้

ล็อคการอ่านเขียน

ห้ามทั้งการอ่านและการเขียน

· เป็นคีย์เวิร์ดตามด้วยตัวชี้ไฟล์

· # เป็นอักขระที่ระบุว่าค่าที่ตามมาคือตัวชี้ไฟล์

· Len เป็นคีย์เวิร์ดที่ไม่บังคับซึ่งต้องตามด้วยพารามิเตอร์ที่ระบุความยาวของรายการ

· CharInBuffer % - ความยาวบันทึกสำหรับไฟล์ที่เปิดในโหมดการเข้าถึงโดยสุ่ม (สุ่ม)

· ปิด คือคำสั่งที่ปิดไฟล์ที่เกี่ยวข้องกับหมายเลขอ้างอิงที่ระบุ

สิ่งสำคัญคือต้องปิดไฟล์หลังจากที่คุณใช้งานเสร็จแล้ว คำสั่ง "ปิด" ปล่อยตัวชี้ไฟล์และพื้นที่หน่วยความจำที่เกี่ยวข้อง

เมื่อทำงานกับไฟล์ กล่าวคือ เมื่ออ่านจากไฟล์ การกำหนดจุดสิ้นสุดของไฟล์เป็นสิ่งสำคัญมาก สามารถกำหนดได้โดยใช้ฟังก์ชัน EOF (End Of File ):

EOF (ตัวจัดการไฟล์)

· EOF – ชื่อฟังก์ชัน;

· FileHandle คือตัวจัดการไฟล์ที่มีการกำหนดจุดสิ้นสุด

ฟังก์ชันจะส่งกลับ True (จริง) หากถึงจุดสิ้นสุดของไฟล์ มิฉะนั้นจะส่งกลับ False (เท็จ)

8.2. การอ่านและเขียนไปยังไฟล์ข้อความ

ไฟล์ข้อความเปิดในโหมดการเข้าถึง "อินพุต" "เอาต์พุต" หรือ "ต่อท้าย" (ดูตาราง 15) ลักษณะเฉพาะของโหมดนี้คือใช้งานได้เฉพาะกับอักขระที่พิมพ์ได้เท่านั้น ไม่มีประโยชน์ที่จะทำงานกับสัญลักษณ์บริการ

ในการเขียนข้อมูล จะใช้คำสั่งสองคำสั่งคือ "พิมพ์" และ "เขียน" ซึ่งมีไวยากรณ์ดังนี้:

พิมพ์ #FileHandle%, VarBuffer[;]

เขียน #FileHandle%, VarBuffer[;]

· พิมพ์ / เขียน - คำหลักตัวดำเนินการ

· #FileHandle % - ตัวชี้ไฟล์ที่จะวางข้อมูล

· VarBuffer คือค่าที่จะเขียนลงในไฟล์

· ; – พารามิเตอร์ทางเลือกที่ใช้เมื่อเขียนไปยังไฟล์ข้อความ หมายความว่าค่าถัดไปจะถูกเขียนลงในบรรทัดเดียวกัน และถ้าไม่มี จะเขียนไปยังค่าถัดไป

หากต้องการอ่านข้อมูลจากไฟล์ จะใช้ตัวดำเนินการ "อินพุต" และ "อินพุตบรรทัด" ไวยากรณ์คล้ายกัน:

บรรทัดอินพุต #FileHandle%, VarBuffer

ป้อน #FileHandle%, VarBuffer

· อินพุตบรรทัด / อินพุต - คำหลักตัวดำเนินการ

· #FileHandle % - ตัวชี้ไฟล์ที่จะอ่านข้อมูล

· VarBuffer เป็นตัวแปรที่จะอ่านข้อมูล

ข้อแตกต่างระหว่างตัวดำเนินการ Line Input และ Input คือตัวแรกมีไว้สำหรับไฟล์ข้อความเท่านั้น และตัวที่สองสำหรับไฟล์ใดๆ ในกรณีของไฟล์ข้อความ "อินพุต" จะอ่านข้อมูลในบรรทัดเดียวกันจนถึงตัวคั่นแรก (สำหรับข้อมูลข้อความ ตัวคั่นคือ "," (จุลภาค) และสำหรับข้อมูลตัวเลข - " " (ช่องว่าง) และ "," ) และ "อินพุตบรรทัด » อ่านทั้งบรรทัดพร้อมกัน โดยไม่สนใจตัวคั่นใดๆ

บันทึก

ใน วิชวลเบสิกไม่มีวิธีการควบคุมรูปแบบของไฟล์ที่สร้างไว้ก่อนหน้านี้ ดังนั้นจึงสามารถอ่านสัญลักษณ์ "2" เป็นตัวเลขที่เกี่ยวข้องและในทางกลับกันได้

8.3. การทำงานกับไฟล์ไบนารี

ไฟล์ที่เปิดใน รูปแบบไบนารีตัวดำเนินการ " เปิด" ในโหมด " ไบนารี". คุณสมบัติที่โดดเด่นของโหมดนี้คือการทำงานกับไฟล์นั้นเน้นไปที่ไบต์ที่ระบุเท่านั้น เนื่องจาก Visual Basic สามารถระบุตำแหน่งที่ต้องการของไฟล์ได้โดยตรง โหมดนี้จึงเรียกว่า - โหมดการเข้าถึงโดยตรง. คุณสมบัติอีกอย่างของโหมดนี้คือความสามารถในการเขียนและอ่านข้อมูลไปยังส่วนต่าง ๆ ของไฟล์พร้อมกันโดยไม่ต้องเปิดใหม่ การเขียนไปยังไฟล์ที่เปิดในโหมดไบนารีทำได้โดยใช้ไวยากรณ์ต่อไปนี้:

ใส่ #FileHandle%, , NameVar

· ใส่ - ชื่อของตัวดำเนินการสำหรับเขียนข้อมูล

· RecNumber – จำนวนไบต์ของไฟล์ที่จะเขียนข้อมูล (พารามิเตอร์ทางเลือก)

· NameVar เป็นตัวแปรที่จะเขียนเนื้อหาลงในไฟล์

การอ่านข้อมูลจากไฟล์ในโหมดไบนารีทำได้โดยใช้คำสั่งต่อไปนี้:

รับ #FileHandle%, , NameVar

· Get เป็นชื่อของผู้ดำเนินการบันทึกข้อมูล

· FileHandle % - ตัวชี้ไฟล์

· RecNumber – จำนวนไบต์ของไฟล์ที่จะอ่านข้อมูล (ไม่บังคับ)

· NameVar - ชื่อของตัวแปรที่จะวางข้อมูลที่อ่าน

เนื่องจากโหมดไบนารีเน้นที่ไบต์ของข้อมูล เมื่ออ่านจากไฟล์ ตัวแปรบัฟเฟอร์จะต้องมีประเภทที่กำหนดไว้อย่างเคร่งครัด: "ไบต์" อย่างใดอย่างหนึ่ง จากนั้นค่าตัวเลขของไบต์จะถูกอ่าน หรืออักขระที่มีความยาวคงที่ ของอักขระหนึ่งตัว จากนั้นไบต์จะถูกอ่านเป็นอักขระ ANSI ซึ่งมีรหัสตรงกับค่าไบต์ อักขระนี้สามารถเป็นอักขระควบคุมได้ ซึ่งไม่สามารถทำได้ในกรณีของไฟล์ข้อความ

บันทึก

ในกรณีที่ไม่มีพารามิเตอร์ "RecNumber" ข้อมูลจะถูกเขียนหรืออ่านในไบต์ถัดไปของไฟล์หลังจากที่เคยทำงานมาก่อน

8.4. การจัดการกราฟิก

รูปภาพกราฟิกสามารถบันทึกในไฟล์และเรียกค้นจากพวกเขาได้ หากต้องการแยกรูปภาพออกจากไฟล์บิตแมปหรือไอคอนและกำหนดให้กับคุณสมบัติ "Picture" ของตัวควบคุม "PictureBox" และ "Image" ให้ใช้ฟังก์ชัน "LoadPicture ()" ด้วยไวยากรณ์ต่อไปนี้:

ImageCtrl.Picture = LoadPicture(พาธของไฟล์)

· ImageCtrl เป็นชื่อของตัวควบคุมหน้าต่างรูปภาพ ตัวควบคุมรูปภาพ หรือฟอร์ม

· LoadPicture - ชื่อฟังก์ชัน;

· FilePath เป็นชื่อเต็มของไฟล์

บันทึกรูปภาพ ImageCtrl .Picture, FilePath

· SavePicture – ชื่อโอเปอเรเตอร์;

· ImageCtrl เป็นชื่อของตัวควบคุมหน้าต่างรูปภาพ ตัวควบคุมรูปภาพ หรือฟอร์ม

· รูปภาพ - ชื่อของคุณสมบัติวัตถุที่รับผิดชอบรูปภาพ

· FilePath คือชื่อเต็มของไฟล์ ซึ่งระบุตำแหน่งบนดิสก์

8.5 การทำงานกับข้อมูลในรีจิสทรี

คุณสามารถใช้ Windows Registry เพื่อเก็บข้อมูลรูปแบบตัวอักษรชิ้นเล็กๆ Visual Basic มีสี่ขั้นตอนที่คุณสามารถใช้เพื่อเข้าถึงได้ ใช้งานง่ายมาก แต่มีข้อเสียเปรียบหลักประการหนึ่ง: คุณสามารถเข้าถึงข้อมูลจากคีย์รีจิสทรีที่ระบุเท่านั้น: "การตั้งค่าโปรแกรม MyComputer \HKEY _CURRENT _USER \Software \VB และ VBA" ในการเข้าถึงรีจิสตรีคีย์อื่น คุณต้องใช้ฟังก์ชันพิเศษ " Win 32 API"

เมื่อต้องการรับค่าของการตั้งค่าจากคีย์รีจิสทรี Windows เฉพาะของ Visual Basic ให้ใช้ฟังก์ชันต่อไปนี้:

MyString = GetSetting(VBKeyName, Section, Key [,ค่าเริ่มต้น])

· MyString - สตริงสำหรับจัดเก็บค่าที่ส่งคืนโดยฟังก์ชัน

· GetSetting คือชื่อของฟังก์ชัน

· VBKeyName คือค่าสตริงที่เป็นชื่อของคีย์ย่อย VB /VBA ภายใน

· คีย์คือค่าสตริงที่แสดงชื่อของพารามิเตอร์ในส่วน

· ค่าดีฟอลต์เป็นอาร์กิวเมนต์ที่ไม่บังคับ ซึ่งค่าจะถูกส่งกลับในกรณีที่เกิดข้อผิดพลาด (ไม่มีพารามิเตอร์)

ในการจัดเก็บค่าในรีจิสทรีของ Windows ให้ใช้คำสั่งต่อไปนี้:

บันทึกการตั้งค่า VBKeyName, Section, Key, MyString

· SaveSetting เป็นชื่อของผู้ดำเนินการ

· MyString เป็นตัวแปรสตริงที่จะวางค่าที่พบ

ในการรับอาร์เรย์จากรีจิสตรีที่มีค่าพารามิเตอร์ทั้งหมดจากคีย์ย่อยเฉพาะ ให้ใช้ฟังก์ชันต่อไปนี้:

MyVariant = SetAllSettings (VBKeyName ส่วน)

· MyVariant เป็นอาร์เรย์ของค่าประเภท "Variant" ที่ส่งคืนโดยฟังก์ชัน

· SetAllSettings เป็นชื่อของฟังก์ชัน

· ส่วน - ค่าสตริงที่แสดงส่วนหรือส่วนย่อยของแอปพลิเคชันเฉพาะ

หากต้องการลบส่วนพารามิเตอร์ทั้งหมด ให้ใช้ตัวดำเนินการที่มีไวยากรณ์ต่อไปนี้:

ลบการตั้งค่า VBKeyName, Section, Key

· DeleteSetting เป็นชื่อของผู้ดำเนินการ

คำถามเพื่อความปลอดภัยสำหรับการตรวจสอบตนเอง

  1. ข้อมูลบางอย่างจะถูกเก็บไว้ในระยะยาวได้อย่างไร?
  2. ไฟล์คืออะไร?
  3. คุณรู้ชื่อไฟล์อะไร
  4. ให้ไวยากรณ์ของตัวดำเนินการ "เปิด" อธิบายวัตถุประสงค์ของพารามิเตอร์
  5. ฉันจะจัดระเบียบการเข้าถึงร่วมกันของหลาย ๆ แอปพลิเคชันไปยังไฟล์เดียวกันในเวลาเดียวกันได้อย่างไร
  6. จะทราบได้อย่างไรว่าข้อมูลในไฟล์หมด?
  7. เหตุใดจึงแนะนำให้ปิดไฟล์หลังจากใช้งานแล้ว
  8. คุณเห็นความแตกต่างระหว่างโหมดไฟล์ข้อความและไฟล์ไบนารีอย่างไร
  9. ข้อมูลถูกอ่านและเขียนในโหมดไฟล์ข้อความอย่างไร
  10. ข้อมูลถูกอ่านและเขียนในโหมดไฟล์ไบนารีอย่างไร?
  11. อะไรคือความแตกต่างระหว่างตัวดำเนินการ "พิมพ์" และ "เขียน" เมื่อทำงานกับไฟล์
  12. อะไรคือความแตกต่างระหว่างคำสั่ง "อินพุต" และ "อินพุตบรรทัด" เมื่อทำงานกับไฟล์
  13. คุณจะทำงานกับข้อมูลกราฟิกได้อย่างไร
  14. หลักการพื้นฐานของการทำงานกับรีจิสทรีของ Windows คืออะไร

ทุกโปรแกรมต้องบันทึกข้อมูลลงดิสก์และอ่านจากดิสก์ สิ่งนี้จำเป็น เช่น เพื่อบันทึกการตั้งค่าโปรแกรม ผู้ใช้จะไม่ชอบโปรแกรมซึ่งจะต้องกำหนดค่าอีกครั้งในครั้งต่อไปที่เริ่มต้น

บทความนี้มุ่งเน้นไปที่การทำงานกับไฟล์ข้อความโดยใช้ Visual Basic

ตัวอธิบายไฟล์

เพื่อทำงานกับไฟล์ ระบบปฏิบัติการใช้ช่องทาง I/O เช่น แต่ละไฟล์ที่เปิดมีหมายเลขของตัวเอง

มีฟังก์ชันใน Visual Basic ไฟล์ฟรีซึ่งจะส่งคืนจำนวนช่องสัญญาณว่างที่สามารถใช้เพื่อทำงานกับไฟล์ หากไม่มีช่องฟรีแสดงว่ามีข้อผิดพลาดเกิดขึ้น

ฟรีไฟล์[(ช่วงหมายเลข) ]

ช่วงหมายเลข- พารามิเตอร์ทางเลือกที่ให้คุณกำหนดช่วงของช่องฟรีได้หาก ช่วงหมายเลข= 0 (ค่าเริ่มต้น) จากนั้นหมายเลขช่องจะถูกส่งคืนจากช่วง 1 - 255 และถ้าเป็น 1 ก็จะส่งกลับจากช่วง 256 - 511

MyFile = ไฟล์ฟรี " กำหนดตัวแปร MyFile ช่องฟรีและตอนนี้สามารถใช้ทำงานกับไฟล์ได้แล้ว

การทำงานกับไฟล์ข้อความ

บ่อยครั้งที่จำเป็นต้องพบกับไฟล์ข้อความ ไฟล์ข้อความประกอบด้วยชุด อักขระ ASCII(รหัสมาตรฐานอเมริกันสำหรับการแลกเปลี่ยนข้อมูล - รหัสมาตรฐานอเมริกันสำหรับการแลกเปลี่ยนข้อมูล)

ก่อนที่คุณจะเริ่มเขียน / อ่านข้อมูล ต้องเปิดไฟล์ ซึ่งทำได้โดยใช้โอเปอเรเตอร์ เปิด(ชื่อไฟล์) สำหรับเป็น #file_number, ที่ไหน:

ป้อนข้อมูล- เปิดไฟล์เพื่ออ่านหากไม่มีไฟล์แสดงว่ามีข้อผิดพลาดเกิดขึ้น

เอาต์พุต- สำหรับการเขียน หากไม่มีไฟล์ ไฟล์นั้นจะถูกสร้างขึ้น และหากไฟล์มีอยู่ ไฟล์นั้นจะถูกเขียนทับ

ผนวก- สำหรับการเพิ่ม หากไม่มีไฟล์ ไฟล์นั้นจะถูกสร้าง และหากมีไฟล์อยู่ ข้อมูลจะถูกเพิ่มต่อท้ายไฟล์

การอ่าน ไฟล์ข้อความสามารถทำได้สองวิธี: อ่านอักขระทีละอักขระ สำหรับสิ่งนี้จะใช้ฟังก์ชัน ป้อนข้อมูล(จำนวน_of_read_ตัวอักษร, #file_number) และทีละบรรทัด สำหรับสิ่งนี้จะใช้ฟังก์ชัน บรรทัดอินพุต#file_number, อ่านที่ไหน.

DimMyFile

Dim S เป็นสตริง "ตัวแปรเก็บข้อมูลการอ่าน

MyFile = ไฟล์ฟรี

เปิด ("C:\TEST.txt") สำหรับใส่เป็น #MyFile

บรรทัดอินพุต #MyFile,S "อ่านบรรทัดแรกจากไฟล์ TEST.TXT ไปยังตัวแปร S

DimMyFile "ประกาศตัวแปรสำหรับไฟล์ฟรี

Dim ฉันเป็นจำนวนเต็ม "ตัวแปรสำหรับลูป

Dim tS เป็นสตริง "ตัวแปรสำหรับการอ่านสตริง

Dim S เป็นสตริง "ตัวแปรในการเก็บข้อมูลขั้นสุดท้าย

MyFile = ไฟล์ฟรี "กำหนดช่องฟรีเพื่อทำงานกับไฟล์

"เปิดไฟล์ TEST.TXT เพื่ออ่าน

สำหรับ i = 1 ถึง 5

บรรทัดอินพุต #MyFile, tS "อ่านไฟล์ TEST.TXT ทีละบรรทัด

ถ้า i => 5 แล้ว S = tS "ถ้าบรรทัดที่ 5 ให้เก็บไว้ในตัวแปร S

ถัดไป

ปิด #MyFile "ปิดไฟล์

Dim MyFile "ประกาศตัวแปรสำหรับไฟล์ฟรี

Dim S As String "ตัวแปรเก็บข้อมูลการอ่าน

MyFile = ไฟล์ฟรี "กำหนดช่องฟรีเพื่อทำงานกับไฟล์

เปิด ("C:\TEST.txt") สำหรับใส่เป็น #MyFile "เปิดไฟล์ TEST.TXT เพื่ออ่าน

S = อินพุต$(LOG(1), 1) "อ่านไฟล์ทั้งหมดเป็นตัวแปร S

ปิด #MyFile "ปิดไฟล์

มีตัวดำเนินการสำหรับเขียนไฟล์ พิมพ์#file_number, ข้อมูลและ เขียน#file_number, ข้อมูล. ข้อแตกต่างระหว่างตัวดำเนินการเหล่านี้ก็คือ เขียนเขียนข้อมูลในเครื่องหมายคำพูดและ พิมพ์ไม่มีเครื่องหมายคำพูด

ด้านล่างโค้ดต่อไปนี้จะสร้างในไดรฟ์ C:\ ไฟล์ใหม่ TEST.TXT และเขียนสองสตริงลงไป สตริงแรกไม่มีเครื่องหมายอัญประกาศ และสตริงที่สองมีเครื่องหมายอัญประกาศ:

DimMyFile "ประกาศตัวแปรสำหรับไฟล์ฟรี

MyFile = ไฟล์ฟรี "กำหนดช่องฟรีเพื่อทำงานกับไฟล์

เปิด ("C:\TEST.txt") สำหรับเอาต์พุตเป็น #MyFile "เปิดไฟล์ TEST.TXT เพื่อเขียน

พิมพ์ #MyFile "สตริงนี้เขียนโดยคำสั่ง Print ไม่มีเครื่องหมายอัญประกาศ..."

เขียน #MyFile "สตริงนี้เขียนโดยคำสั่ง Write ซึ่งอยู่ในเครื่องหมายคำพูด..."

ปิด #MyFile "ปิดไฟล์

นั่นคือทั้งหมดที่จริง ตามที่คุณอาจเข้าใจแล้ว ตัวดำเนินการที่ใช้ในการปิดไฟล์คือ ปิด#file_numberซึ่งในที่นี้ # file_numberไม่จำเป็นต้องระบุ

บทความนี้ค่อนข้างดิบ แต่จะเป็นประโยชน์สำหรับโปรแกรมเมอร์มือใหม่ ครั้งต่อไปฉันจะพูดถึงการทำงานกับไฟล์ไบนารี



กำลังโหลด...
สูงสุด