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