ระบบไฟล์ในรูปแบบของรายการใน vb6 การย้าย การคัดลอก และการลบไฟล์

หน้าต่าง

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

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

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

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

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

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

5. การใช้โอเปอเรเตอร์จากไฟล์ ราฟบันทึกจะถูกอ่านลงในไฟล์ด้วย ราฟมีการเขียนรายการใหม่หรือไม่?

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

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

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

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

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

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

เลือกบรรทัดที่จะลบ", vbExclamation

หวี(j).RemoveItem i

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

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

i% = หวี(0).ListIndex

ถ้าฉัน< 0 Then

MsgBox "เน้นบรรทัดที่จะแทรกก่อนหน้า", vbExclamation

Comb(0).AddItem InputBox("ใส่หมายเลข"), i

Comb(1).AddItem InputBox("ใส่ชื่อของคุณ"), i

Comb(2).AddItem InputBox("ใส่วันเกิดของคุณ") เช่น

Comb(3).AddItem InputBox("ใส่สถานที่เกิด"), i

' การเปลี่ยนรายการตาราง:

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

i% = หวี(0).ListIndex

ถ้าฉัน< 0 Then

MsgBox "ไฮไลท์ สตริงที่ไม่แน่นอน", vbอัศเจรีย์

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

Comb(0).AddItem มึนงง

หวี(1).AddItem fio

หวี(2).AddItem 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))

กลุ่ม = หวี (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 อาร์เรย์ของอ็อบเจ็กต์ถูกใช้เพื่อแก้ไขข้อมูล คอมโบกล่องและเมนู แก้ไขด้วยคำสั่งเมนูย่อย 5 คำสั่ง: เพิ่มบันทึก, ลบรายการ, ใส่รายการ, แก้ไขรายการ, ล้างตาราง.

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

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

รถ

รถ

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

บรรทัดล่างสุดของตาราง 7.1 แสดงประเภทฟิลด์

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

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

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

ชื่อ

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

ราคา

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

บ่อยที่สุดคุณพบไฟล์ข้อความ ไฟล์ข้อความประกอบด้วยชุดอักขระ ASCII (American Standard Code for Information Interchange)

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

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

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

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

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

หรี่ MyFile

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

MyFile = ฟรีไฟล์

Open("C:\TEST.txt") สำหรับอินพุตเป็น #MyFile

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

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

หรี่ฉันเป็นจำนวนเต็ม “ตัวแปรสำหรับการวนซ้ำ

Dim tS As String “ตัวแปรสำหรับการอ่านสตริง

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

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

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

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

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

ถ้าฉัน => 5 ดังนั้น S = tS “ถ้าบรรทัดที่ 5 ให้เก็บไว้ในตัวแปร S”

ถัดไป

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

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

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

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

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

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

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

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

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

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

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

Open("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% = ไฟล์ฟรี

'เปิดไฟล์

เปิด FilePath_

เป็น [#]FileHandle%

...(ทำงานกับไฟล์)

ปิด [#]FileHandle

· FileHandle % - ตัวแปรที่เก็บตัวชี้ไฟล์

· FreeFile – ชื่อของฟังก์ชันที่ส่งคืนตัวชี้ไฟล์

· เปิด – ชื่อผู้ดำเนินการ

· FilePath – ชื่อไฟล์เต็ม;

· สำหรับ – คำหลักที่ตามด้วยคำอธิบายของโหมดการเข้าถึงไฟล์

· โหมด – โหมดการเข้าถึงไฟล์ (ดูตารางที่ 15)

ตารางที่ 15

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

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

คำอธิบาย

ผนวก

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

ไบนารี่

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

ป้อนข้อมูล

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

เอาท์พุต

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

สุ่ม

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

· การเข้าถึง – คำสำคัญที่เป็นทางเลือก ตามด้วยคำอธิบายของประเภทการเข้าถึง

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

· อ่าน – อ่าน;

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

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

บันทึก

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

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

ตารางที่ 16

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

ความหมาย

คำอธิบาย

แบ่งปันแล้ว

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

ล็อคการอ่าน

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

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

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

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

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

· เช่นเดียวกับคำหลักที่ตามด้วยตัวชี้ไฟล์

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

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

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

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

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

เมื่อทำงานกับไฟล์ กล่าวคือ เมื่ออ่านจากไฟล์นั้น การกำหนดจุดสิ้นสุดของไฟล์เป็นสิ่งสำคัญมาก สามารถกำหนดได้โดยใช้ฟังก์ชัน 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" คืออันแรกมีไว้สำหรับไฟล์ข้อความเท่านั้นและอันที่สอง - สำหรับใด ๆ ในกรณีของไฟล์ข้อความ "อินพุต" จะอ่านข้อมูลในหนึ่งบรรทัดจนถึงตัวคั่นแรก (สำหรับข้อมูลข้อความตัวคั่นคือ "" (ลูกน้ำ) และสำหรับข้อมูลตัวเลข - "" (ช่องว่าง) และ ",") และ “อินพุตบรรทัด » อ่านทั้งบรรทัดพร้อมกัน โดยไม่สนใจตัวคั่นใดๆ

บันทึก

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 Registry สามารถใช้เพื่อจัดเก็บข้อมูลขนาดเล็กในรูปแบบอักขระได้ Visual Basic มีสี่ขั้นตอนที่คุณสามารถใช้เพื่อเข้าถึงได้ ใช้งานง่ายมาก แต่มีข้อเสียเปรียบหลักประการหนึ่ง นั่นคือ คุณสามารถเข้าถึงข้อมูลจากคีย์รีจิสทรีเฉพาะเท่านั้น: “MyComputer\HKEY_CURRENT_USER\Software\VB และ VBA Program Settings” ในการเข้าถึงส่วนอื่น ๆ ของรีจิสทรี คุณต้องใช้ฟังก์ชันพิเศษ "Win 32 API"

ในการรับค่าของการตั้งค่าจากส่วน Visual Basic ของรีจิสทรี Windows คุณต้องใช้ฟังก์ชันต่อไปนี้:

MyString = GetSetting(VBKeyName, ส่วน, คีย์ [,ค่าเริ่มต้น])

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

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

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

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

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

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

SaveSetting VBKeyName, ส่วน, คีย์, MyString

· SaveSetting – ชื่อผู้ดำเนินการ

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

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

MyVariant = SetAllSettings(VBKeyName, ส่วน)

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

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

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

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

ลบการตั้งค่า VBKeyName, ส่วน, คีย์

· DeleteSetting – ชื่อผู้ดำเนินการ

คำถามทดสอบเพื่อทดสอบตัวเอง

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