Vb6 da ro'yxat ko'rinishidagi fayl tizimi. Fayllarni ko'chirish, nusxalash va o'chirish

Windows

Ishning maqsadi: Fayllar bilan ishlashda VB 6 tili operatorlarini o'rganish va ulardan foydalanish har xil turlari: ketma-ket (matnli) fayllar, tasodifiy kirish fayllari, ikkilik fayllar. Tadqiqot va asbobdan foydalanish UmumiyDialog fayllarni ochish va saqlash, shrift va rang tanlash va ob'ektdan foydalanish uchun Bufer oddiy matn muharriri yaratish misolidan foydalanib, matn qismlarini saqlash uchun.

Nazorat savollari:

1. Matnli faylni qanday usullar bilan ochish mumkin? Matnni va boshqa narsalarni qanday yopish kerak faylni oching?

2. Yozish uchun ochiq matnli faylga ma’lumotlar qanday yoziladi? Write va Print iboralari o'rtasidagi farq nima?

3. O'qish uchun ochiqdan ma'lumotlar qanday o'qiladi matn fayli? Input va Line Input operatorlari bir-biridan qanday farq qiladi? Qaysi funksiya fayldan ma’lum miqdordagi belgilarni o‘qish uchun ishlatilishi mumkin? Faylning barcha belgilarini qanday o'qish mumkin?

4. Foydalanuvchining ma'lumotlar turi nima va bu tushuncha tasodifiy kirish fayllari bilan ishlashda qanday qo'llaniladi ( raf)?

5. Fayldan qaysi operatorlar yordamida raf yozuvlar ham faylga o'qiladi raf Yangi yozuvlar yozilmoqdami?

6. Fayl bilan ishlashda indeks nima maqsadda aniqlanadi va foydalaniladi? raf?

7. Ikkilik fayllardan foydalanishning qanday xususiyatlari bor? Ular qanday ochiladi? Ikkilik fayldan o'qish va ikkilik faylga yozish qanday amalga oshiriladi?

8. Boshqaruvdan qanday foydalanish kerak UmumiyDialog matnli faylning mazmunini matn maydoniga yuklash uchunmi? Tahrirlangan matnni matnli faylga saqlash uchun xuddi shu boshqaruvdan qanday foydalanishim mumkin?

9. Boshqaruvdan qanday foydalanish kerak UmumiyDialog fayl mazmunini yuklab olish uchun rtf dalada BoyMatn qutisi? Tahrirlangan matnni faylga saqlash uchun bir xil boshqaruvdan qanday foydalanish kerak rtf?

10. Boshqaruvdan qanday foydalanish kerak UmumiyDialog shrift parametr qiymatlarini o'zgartirish va oynadagi matn rangini o'zgartirish uchun Matn qutisi(yoki oynada tanlangan matn qismi BoyMatn qutisi)?

7.1-misol. Matn fayliga yozishni (va matnli fayldan o'qishni) ko'rsatadigan dasturni ko'rib chiqing "xodimlar haqida ma'lumot" - har birida identifikatsiya raqami, to'liq ismi, tug'ilgan sanasi va xodimning tug'ilgan joyi ko'rsatilgan qatorlar. Qatorlar jadvalni tashkil qiladi, ular ekran formasida 4 ta Combo Box boshqaruv elementlariga taqlid qilinadi (7.1-rasm), Style xossasi 1 – SimpleCombo qiymatiga ega bo'lgan Comb(i) ob'ektlar massivini tashkil qiladi.

O'chiriladigan qatorni tanlang", vbExclamation

Comb(j).RemoveItem i

'Kiritmoq yangi kirish stolga:

Private Sub mnuInsert_Click()

i% = Comb(0).ListIndex

Agar men< 0 Then

MsgBox "Undan oldin kiritiladigan qatorni ajratib ko'rsatish", vbExclamation

Comb(0).AddItem InputBox("Raqamni kiriting"), ya'ni

Comb(1).AddItem InputBox("Ismingizni kiriting"), ya'ni

Comb(2).AddItem InputBox("Tug'ilgan kuningizni kiriting."), ya'ni

Comb(3).AddItem InputBox("Tug'ilgan joyni kiriting."), ya'ni

‘ Jadval yozuvini o‘zgartirish:

Shaxsiy sub mnuUpdate_Click()

i% = Comb(0).ListIndex

Agar men< 0 Then

MsgBox "Ta'kidlash o'zgaruvchan qator", vbExclamation

Comb(0).List(i) = InputBox("Raqamni kiriting", Comb(0).Ro'yxat(i))

Comb(1).List(i) = InputBox("Ismingizni kiriting", Comb(1).List(i))

Comb(2).List(i) = InputBox("Tug'ilgan kuningizni kiriting.", Comb(2).List(i))

Comb(3).List(i) = InputBox("Tug'ilgan joyni kiriting.", Comb(3).Ro'yxat(i))

‘ Butun jadvalni tozalash:

Shaxsiy sub mnuClear_Click()

‘ Jadvalni matn faylidagi ma’lumotlar bilan to‘ldirish:

Shaxsiy sub mnuLoad_Click()

№1 sifatida kiritish uchun "shaxs. txt" ni oching

Kirish №1, numb, fio, bdate, blok

Comb(0).AddItem nomb

Comb(1).AddItem fio

Comb(2).AddItem bdate

Comb(3).AddItem bloki

‘ Jadval ma’lumotlarini matnli faylga yozish:

Shaxsiy sub mnuSave_Click()

N% = Comb(0).ListCount

№1 sifatida chiqarish uchun "person. txt" ni oching

i = 0 uchun N - 1

numb = Val(Taroq(0).Ro'yxat(i))

fio = Taroq(1).Roʻyxat(i)

bdate = CDate(Comb(2).Ro'yxat(i))

blok = Comb (3).Ro'yxat (i)

#1, numb, fio, bdate, blok yozing

‘ Ilovani o‘chirish:

Shaxsiy sub mnuExit_Click()

7.2-misol . Boshqaruv vositalaridan foydalanishni ko'rsatadigan dasturni ko'rib chiqing UmumiyDialog faylni ochish va saqlash, shrift va rang tanlash va matnni tahrirlash uchun.

Fayl formati XABAR matn maydoniga yuklanadi (7.2-rasmdagi chap maydon) va fayl formati RTF- dalada BoyMatn qutisi(7.2-rasmdagi o'ng chekka).

ob'ekt

Sinf

ob'ekt

Mulk

ob'ekt

Mulk qiymati

“Umumiy panellar

dialog"

Yorliq sifatida ochish/saqlash

Shrift yorlig'i

Rangli yorliq

Jadvalda menyu buyruqlarining xossalari ko'rsatilmagan Shrift, Rang Va Tahrirlash. Quyida faqat menyu buyruqlari uchun protsedura kodi keltirilgan Fayl (Ochiq, Saqlash Va SaqlashSifatida). Menyuning boshqa buyruqlari uchun kod tuzish bu ishning 2-topshirigi mavzusidir.

Shaxsiy sub mnuOpen_Click()

CommonDialog1.ShowOpen

F$ = CommonDialog1.FileName

Agar o'ng (F, 3) = "rtf" bo'lsa

RichTextBox1.LoadFile F

ElseIf Right(F, 3) = "txt" Keyin

№1 sifatida kiritish uchun F-ni oching

S$ = Kirish (N, 1)

Shaxsiy sub mnuSave_Click()

CommonDialog1.ShowSave

F$ = CommonDialog1.FileName

Private Sub mnuSaveAs_Click()

CommonDialog1.ShowSave

F$ = CommonDialog1.FileName

RichTextBox1.SaveFile F, rtfRTF

Bu ish davomida talaba 2 ta vazifani bajarishi kerak.

1-mashq. Topshiriqni bajarish jarayonida talabalar tasodifiy kirish fayllari bilan ishlash uchun VB 6 da mavjud bo'lgan imkoniyatlarni o'zlashtiradilar ( RAFtasodifiykirishfayl).

Berilgan maʼlumotlar bazasi jadvali uchun foydalanuvchi maʼlumotlar turi eʼlon qilinadi, bu turdagi oʻzgaruvchi eʼlon qilinadi (qoʻllanma, 108–112-betlar), foydalanuvchi tipidagi oʻzgaruvchidan foydalanadigan protseduralar kompilyatsiya qilinadi va disk raskadrovka qilinadi.

Xususan, menyu buyruqlari uchun protseduralar amalga oshiriladi Faylga yozingRAF Va Fayldan o'qingRAF. 7.1-misolda bo'lgani kabi, ma'lumotlarni tahrirlash uchun ob'ektlar massivi ishlatiladi KomboQuti va menyu Tahrirlash beshta pastki menyu buyrug'i bilan: Eslatma qo'shing, Kirishni o'chirish, Kirish kiritish, Kirishni tahrirlash, Jadvalni tozalash.

Variant 1.

"Avtomobil xizmati" ma'lumotlar bazasining "Avtomobil" jadvali (7.1-jadval) uchun maxsus ma'lumotlar turini e'lon qiling.

mashina

mashina

nosozliklar

7.1-jadvalning pastki qatorida maydon turlari ko'rsatilgan.

Variant 2.

"Avtomobil xizmati" ma'lumotlar bazasining "Nosozliklar" jadvali (7.2-jadval) uchun maxsus ma'lumotlar turini e'lon qiling.

nosozliklar

Ism

nosozliklar

Narxi

7.2-jadvalning pastki qatorida maydon turlari ko'rsatilgan.

7.1 misol ilovasidan shablon sifatida foydalanib, ko'rsatilgan jadval uchun ma'lumotlarni kiritish va tahrirlashni, bu ma'lumotlarni tasodifiy kirish fayliga yozishni va tasodifiy kirish faylidan ma'lumotlarni o'qishni tashkil qiling. 7.1-misolda bo'lgani kabi, bu harakatlar rasmda ko'rsatilgan menyu buyruqlarining ishlashi sifatida amalga oshiriladi. 7.1.

Vazifa 2. Topshiriq davomida talabalar 2-misol ilovasiga ilovani oddiy matn muharriri sifatida ko‘rish imkonini beruvchi yangi funksiyalarni qo‘shadilar.

Variant 1 UmumiyDialog menyu buyruqlarini amalga oshirish Shrift Va Rang(pastki menyu bilan Belgi rangi Va Fon rangi). Ushbu buyruqlar yordamida siz oynada tanlangan matn fragmenti uchun shriftni (uning nomi, uslubi va hajmi) tanlashingiz kerak. BoyMatn qutisi, shuningdek, tanlangan fragmentning belgilarining rangini tanlash va butun oynaning fon rangini tanlash.

Eslatma: Ob'ektni o'rnatishda UmumiyDialog(Maxsus) xususiyatidan foydalanib shrift tanlash uchun Flags xususiyati qiymatini 1, 2 yoki 3 ga o‘rnatishni unutmang (qo‘llanma, 183-betga qarang).

Variant 2. Tekshirish vositasidan foydalanish UmumiyDialog menyu buyruqlarini amalga oshirish Tahrirlash(pastki menyu Nusxalash, Kesish Va joylashtirish), maqsadi nusxa ko'chirish yoki o'chirish tanlangan matn fragmentining almashish buferiga, shuningdek kiritmoq clipboard tarkibining tanlangan matn maydoniga.

Eslatma: Buferga (ob'ekt Bufer) SetText va GetText usullaridan foydalanishingiz mumkin:

Bufer. SetText RichTextBox1.SelText

RichTextBox1.SelText = almashish buferi. GetText

Har bir dastur ma'lumotlarni diskda saqlashi va uni diskdan o'qishi kerak. Bu, masalan, dastur sozlamalarini saqlash uchun kerak, foydalanuvchi dasturni yoqtirishi dargumon, keyingi safar ishga tushirilganda uni qayta sozlash kerak bo'ladi.

Ushbu maqolada biz matnli fayllar bilan ishlash haqida gaplashamiz Visual Basic.

Fayl deskriptori

Fayllar bilan ishlash uchun operatsion tizim kirish/chiqarish kanallaridan foydalanadi, ya'ni. Har bir ochiq fayl o'z raqamiga ega.

Visual Basic-da funksiya mavjud Bepul fayl, bu fayl bilan ishlash uchun ishlatilishi mumkin bo'lgan bepul kanal raqamini qaytaradi. Agar bepul kanallar bo'lmasa, xatolik yuz beradi.

Bepul fayl[(Range Number) ]

Range Number-bo'sh kanallar qiymatlari diapazonini aniqlashga imkon beruvchi ixtiyoriy parametr Range Number= 0 (standart), keyin kanal raqami 1 - 255 oralig'idan, agar 1 bo'lsa, 256 - 511 oralig'idan qaytariladi.

MyFile = FreeFile "MyFile o'zgaruvchisi tayinlangan bepul kanal va endi u fayllar bilan ishlash uchun ishlatilishi mumkin

Matnli fayllar bilan ishlash

Ko'pincha siz matnli fayllarga duch kelasiz. Matnli fayllar ASCII (American Standard Code for Information Interchange) belgilar majmuasidan iborat.

Ma'lumotlarni yozish/o'qishni boshlashdan oldin faylni ochish kerak, bu operator yordamida amalga oshiriladi Ochiq (Fayl nomi) # uchunFayl_raqami, Qayerda:

Kiritish- faylni o'qish uchun ochish, agar fayl mavjud bo'lmasa, xatolik yuzaga keladi;

Chiqish- yozish uchun, agar fayl mavjud bo'lmasa, u yaratiladi, agar fayl mavjud bo'lsa, uning ustiga yoziladi;

Qo'shish- qo'shish uchun, agar fayl mavjud bo'lmasa, u yaratiladi va agar fayl mavjud bo'lsa, u holda ma'lumotlar faylning oxiriga qo'shiladi.

Matnli fayllarni o'qish ikki yo'l bilan amalga oshirilishi mumkin: belgi bo'yicha o'qing, buning uchun funksiyadan foydalaning Kiritish(O'qilgan_belgilar_soni, #Fayl_raqami) va satr bo'yicha, funktsiya buning uchun ishlatiladi Chiziqli kiritish #Fayl_raqami, Qayerda_o'qish kerak.

MyFile-ni xiralashtiring

Dim S String sifatida "O'qilgan ma'lumotlarni saqlash uchun o'zgaruvchi

MyFile = FreeFile

#MyFile sifatida kiritish uchun ("C:\TEST.txt") oching

Satr kiritish #Mening faylim, S "TEST.TXT faylining birinchi qatorini S o'zgaruvchisiga o'qing

MyFile-ni xiralashtiring "Bepul fayl uchun o'zgaruvchini e'lon qiling

Dim i Integer "Loop uchun o'zgaruvchi

Dim tS String sifatida "Stringlarni o'qish uchun o'zgaruvchi

Dim S String sifatida "Yakuniy ma'lumotlarni saqlash uchun o'zgaruvchi

MyFile = FreeFile "Fayllar bilan ishlash uchun bepul kanalni belgilash

"O'qish uchun TEST.TXT faylini oching

i = 1 dan 5 gacha

Chiziq kiritish #Mening faylim, tS "TEST.TXT faylini satr bo'yicha o'qish

Agar i => 5 bo'lsa, S = tS "Agar beshinchi qator bo'lsa, uni S o'zgaruvchisida saqlang

Keyingi i

Yopish #MyFile "Faylni yoping

Dim MyFile "Bepul fayl uchun o'zgaruvchini e'lon qiling

Dim S As String "O'qilgan ma'lumotlarni saqlash uchun o'zgaruvchi

MyFile = FreeFile "Fayllar bilan ishlash uchun bepul kanalni belgilash

#MyFile sifatida kiritish uchun ("C:\TEST.txt") oching "O'qish uchun TEST.TXT faylini oching

S = Input$(LOG(1), 1) "To'liq faylni S o'zgaruvchisiga o'qing

Yopish #MyFile "Faylni yoping

Faylga yozish uchun operatorlar mavjud # chop etishFayl_raqami, Ma'lumotlar Va # yozingFayl_raqami, Ma'lumotlar. Ushbu operatorlar orasidagi yagona farq shundaki Yozing ma'lumotlarni qo'shtirnoq ichida yozadi va Chop etish tirnoqsiz.

Quyidagi kod C:\ diskida yangi TEST.TXT faylini yaratadi va unga ikkita qator yozadi, birinchisi tirnoqsiz, ikkinchisi tirnoqli:

MyFile-ni xiralashtiring "Bepul fayl uchun o'zgaruvchini e'lon qiling

MyFile = FreeFile "Fayllar bilan ishlash uchun bepul kanalni belgilash

#MyFile sifatida chiqarish uchun ("C:\TEST.txt") oching "Yozish uchun TEST.TXT faylini oching

Print #MyFile, "Bu qator Chop etish operatori tomonidan yozilgan, u tirnoqsiz..."

#MyFile deb yozing, "Bu qator Write operatori tomonidan yozilgan, u tirnoq ichida..."

Yopish #MyFile "Faylni yoping

Ana xolos. Siz allaqachon tushunganingizdek, operator faylni yopish uchun ishlatiladi Yopish #Fayl_raqami, bunda, # Fayl_raqami ko'rsatish shart emas.

Maqola biroz qo'pol, ammo bu yangi boshlanuvchi dasturchilar uchun foydali bo'ladi. Keyingi safar ikkilik fayllar bilan ishlash haqida gapiraman.

8. MA'LUMOTNI SAQLASH VA O'QISH

Dastur tugallangandan so'ng xotirada yaratilgan barcha ma'lumotlar yo'qolmasligini ta'minlash uchun siz qattiq diskda ma'lumotlarni saqlash imkoniyatiga ega bo'lishingiz kerak. Aks holda, barcha ma'lumotlar izsiz yo'qoladi. Ma'lumotlar turli yo'llar bilan saqlanishi va o'qilishi mumkin. Turli o'lcham va formatdagi ma'lumotlar bilan ishlash uchun siz ikkilik va matnli fayllardan foydalanishingiz mumkin. Kichik hajmdagi ma'lumotlarni saqlash uchun siz Windows registridan foydalanishingiz mumkin. Va eng murakkab vazifalar uchun ma'lumotlar bazalaridan foydalanish oqilona.

8.1. Operator yordamida fayllarni ochish "Ochiq "

Fayl har qanday tashqi xotira qurilmasining nomlangan maydonidir. Ma'lumotlar kompyuter xotirasida "jonli", fayllar esa qattiq diskda yashaydi. Dastur fayllar bilan bevosita ishlamaydi, lekin vositachi sifatida operatsion tizimdan foydalanadi.

Ikki xil fayl nomlari mavjud: to'liq - fayl nomiga qo'shimcha ravishda faylning tashqi muhitdagi joylashuvi ham ko'rsatilgan (masalan, "C:\Program Files\Microsoft Visual Studio\VB98\VB 6.EXE" ) va qisqacha - faqat fayl nomi (VB 6.EXE ). Agar fayl joylashuvi ko'rsatilmagan bo'lsa, u joriy papkada, sukut bo'yicha ilovangiz joylashgan papkada qidiriladi. Bevosita fayl nomi ikki qismdan iborat: haqiqiy noyob fayl nomi va uning kengaytmasi. Ismning o'zi faylni aniqlaydi va kengaytma odatda fayl formatini yoki qaysi dastur tomonidan yaratilganligini ko'rsatadi.

Fayl bilan ishlashni boshlashdan oldin siz operatsion tizimdan so'rashingiz kerak ko'rsatgich (tavsiflovchi) fayl. Uni olish uchun "FreeFile" funksiyasidan foydalaning. Keyin, "Ochish" operatoridan foydalanib, bu ko'rsatgich kerakli fayl bilan bog'lanadi. Shundan keyingina dastur u bilan ishlay oladi. Faylni ochish sintaksisi quyidagicha:

‘bepul fayl ko‘rsatgichini oling va uni o‘zgaruvchiga tayinlang

FileHandle% = FreeFile

' faylni oching

FilePath_ni oching

[#]FileHandle% sifatida

...(fayl bilan ishlash)

[#]FileHandle ilovasini yoping

· FileHandle % – fayl ko‘rsatgichini saqlaydigan o‘zgaruvchi;

· FreeFile – fayl ko‘rsatgichini qaytaruvchi funksiya nomi;

· Ochiq - operator nomi;

· FilePath - to'liq fayl nomi;

· For - faylga kirish rejimi tavsifi bilan birga kalit so'z;

· Rejim – faylga kirish rejimi (15-jadvalga qarang);

15-jadval

Fayllarga kirish rejimlari

Kirish rejimlari

Tavsif

Qo'shish

Mavjud matn faylining oxiriga ma'lumotlarni qo'shish. Agar fayl mavjud bo'lmasa, u yaratiladi

Ikkilik

Faylni ikkilik rejimda ochish, ya'ni. baytlar to'plami sifatida. Agar fayl mavjud bo'lmasa, lekin yaratiladi

Kiritish

Matn formatida o'qish uchun faylni ochish

Chiqish

Matn faylini yozish uchun faylni oching. Bunday holda, barcha eski ma'lumotlar o'chiriladi. Agar fayl mavjud bo'lmasa, lekin yaratiladi

Tasodifiy

Tasodifiy kirish rejimida faylni ochish. Ushbu rejim oddiy yozuvlar bilan ishlash uchun ishlatiladi. Agar fayl mavjud bo'lmasa, lekin yaratiladi

· Kirish - ixtiyoriy kalit so'z, undan keyin kirish turi tavsifi;

· AccessType - kirish turining tavsifi:

· O'qish - o'qish;

· Yozish - yozib olish;

· O'qish Yozish - o'qish va yozish.

Eslatma

Qo'shish va Chiqish kirish rejimlarida faqat Yozish ruxsati turi mavjud, faqat kiritishda o'qish bilan va Ikkilik va Tasodifiy bilan uchta kirish turi mavjud.

· LockType ixtiyoriy parametr boʻlib, dasturingiz u bilan ishlayotgan vaqtda boshqa dasturlar ushbu fayldan foydalanishi mumkinligini aniqlaydi. Odatda tarmoqda ishlash bilan bog'liq (16-jadvalga qarang).

16-jadval

LockType parametri uchun mumkin bo'lgan qiymatlar

Ma'nosi

Tavsif

Ulashgan

Kerakli huquqlarga ega bo'lgan barcha foydalanuvchilar faylga to'liq kirish huquqiga ega bo'ladilar

O'qishni qulflash

Faylni o'qish bloklangan, lekin yozishga ruxsat berilgan

Yozishni bloklash

Faylga yozish bloklangan, lekin o'qishga ruxsat berilgan

O‘qishni yozishni bloklash

Unga o'qish ham, yozish ham taqiqlangan

· As - kalit so'zdan keyin fayl ko'rsatkichi.

· # - undan keyingi qiymat fayl ko'rsatkichi ekanligini ko'rsatadigan belgi.

· Len ixtiyoriy kalit so'z bo'lib, undan keyin kirish uzunligini ko'rsatadigan parametr kelishi kerak.

· CharInBuffer % - tasodifiy kirish rejimida ochilgan fayl uchun rekord uzunligi (Tasodifiy).

· Close - belgilangan tutqich bilan bog'langan faylni yopuvchi bayonot.

Fayl bilan ishlashni tugatgandan so'ng uni yopish muhimdir. "Yopish" iborasi fayl ko'rsatgichini va tegishli xotira maydonini bo'shatadi.

Fayl bilan ishlashda, ya'ni undan o'qishda faylning oxirini aniqlash juda muhimdir. Uni EOF (Fayl oxiri) funksiyasi yordamida aniqlash mumkin:

EOF (FileHandle)

· EOF – funksiya nomi;

· FileHandle - oxiri aniqlanayotgan faylga ko'rsatgich.

Agar fayl oxiriga yetsa, funksiya True qiymatini qaytaradi, aks holda False qiymatini qaytaradi.

8.2. Matn faylini o'qish va yozish

Matn fayli "Kirish", "Chiqish" yoki "Qo'shish" kirish rejimida ochiladi (15-jadvalga qarang). Ushbu rejimning o'ziga xosligi shundaki, u faqat ma'lum bosma belgilar bilan ishlaydi. Xizmat belgilari bilan ishlash foydasiz.

Ma'lumotni yozib olish uchun ikkita "Chop etish" va "Yozish" operatorlaridan foydalaning, ularning sintaksisi quyidagicha:

Chop etish #FileHandle%, VarBuffer [;]

#FileHandle%, VarBuffer [;] yozing

· Print /Write – operator kalit so'zlari.

· #FileHandle % - ma'lumot joylashtiriladigan faylga ko'rsatgich.

· VarBuffer - faylga yoziladigan qiymat.

· ; – matn fayliga yozishda qo‘llaniladigan ixtiyoriy parametr, keyingi qiymat bir qatorga, agar u yo‘q bo‘lsa, keyingisiga yozilishini bildiradi.

Fayldan ma'lumotni o'qish uchun "Input" va "Line Input" operatorlaridan foydalaning. Sintaksis bir-biriga o'xshash:

Line kiritish #FileHandle%, VarBuffer

#FileHandle%, VarBuffer kiriting

· Line Input / Input – operator kalit so'zlari.

· #FileHandle % - ma'lumot o'qiladigan faylga ko'rsatgich.

· VarBuffer - ma'lumot o'qiladigan o'zgaruvchi.

"Line Input" va "Input" operatorlari o'rtasidagi farq shundaki, birinchisi faqat matnli fayllar uchun, ikkinchisi esa har qanday operator uchun mo'ljallangan. Matnli fayllarda "Kirish" ma'lumotlarni bir qatorda birinchi ajratuvchigacha o'qiydi (matnli ma'lumotlar uchun ajratuvchi "," (vergul), raqamli ma'lumotlar uchun esa - "" (bo'shliq) va ",") , va “Line Input” har qanday chegaralovchilarga e’tibor bermay, butun qatorni birdaniga o‘qiydi.

Eslatma

Visual Basic-da avval yaratilgan fayllar formatini boshqarish vositalari yo'q. Shuning uchun "2" belgisi mos keladigan raqam sifatida o'qilishi mumkin va aksincha.

8.3. Ikkilik fayllar bilan ishlash

Fayllar ochiladi ikkilik format"Ikkilik" rejimida "Ochish" operatori. Ushbu rejimning o'ziga xos xususiyati shundaki, fayl bilan ishlash faqat ma'lum baytlarga qaratilgan. Visual Basic fayldagi kerakli joyni to'g'ridan-to'g'ri yo'naltirishi mumkinligi sababli, bu rejim - deb ham ataladi to'g'ridan-to'g'ri kirish rejimi. Ushbu rejimning yana bir xususiyati faylning turli qismlariga ma'lumotni qayta ochmasdan bir vaqtning o'zida yozish va o'qish imkoniyatidir. Ikkilik rejimda ochilgan faylga yozish quyidagi sintaksis yordamida amalga oshiriladi:

#FileHandle%, , NameVar-ni qo'ying

· Put - ma'lumotlarni yozib olish operatorining nomi.

· RecNumber - ma'lumot yoziladigan faylning bayt raqami (ixtiyoriy parametr).

· NameVar - mazmuni faylga yoziladigan o'zgaruvchi.

Ikkilik rejimda fayldan ma'lumotlarni o'qish quyidagi operator yordamida amalga oshiriladi:

#FileHandle%, , NameVar-ni oling

· Get - ma'lumotlarni yozib olish operatorining nomi.

· FileHandle % - fayl ishlovi.

· RecNumber - ma'lumot o'qiladigan faylning bayt raqami (ixtiyoriy parametr).

· NameVar - o'qilgan ma'lumotlar joylashtiriladigan o'zgaruvchining nomi.

Ikkilik rejim ma'lumot baytlariga qaratilganligi sababli, fayldan o'qishda bufer o'zgaruvchisi qat'iy belgilangan turga ega bo'lishi kerak: yoki "Bayt", keyin baytning raqamli qiymati o'qiladi yoki belgilangan uzunlikdagi belgi. bitta belgidan iborat bo'lsa, u holda bayt ANSI belgisi sifatida o'qiladi, uning kodi bayt hajmiga mos keladi. Bu belgi hatto boshqaruv belgisi bo'lishi mumkin, unga matnli fayllarda erishib bo'lmaydi.

Eslatma

"RecNumber" parametri bo'lmasa, ma'lumotni yozish yoki o'qish faylning keyingi baytida avval ishlaganidan keyin sodir bo'ladi.

8.4. Grafik manipulyatsiya

Bundan tashqari, fayllardan grafik tasvirlarni saqlashingiz va chiqarib olishingiz mumkin. Bitmap yoki piktogramma faylidan tasvirni ajratib olish va uni “PictureBox” va “Image” boshqaruv elementlarining “Picture” xususiyatiga belgilash uchun quyidagi sintaksis bilan “LoadPicture()” funksiyasidan foydalaning:

ImageCtrl.Picture = Rasmni yuklash (FilePath)

· ImageCtrl – tasvir oynasini boshqarish, tasvirni boshqarish yoki forma nomi;

· LoadPicture – funksiya nomi;

· FilePath - to'liq fayl nomi.

SavePicture ImageCtrl .Picture, FilePath

· SavePicture - operator nomi;

· ImageCtrl – tasvir oynasini boshqarish, tasvirni boshqarish yoki forma nomi;

· Rasm - tasvir uchun mas'ul bo'lgan ob'ektning nomi;

· FilePath - faylning to'liq nomi, uning diskdagi joylashuvi.

8.5. Ro'yxatga olish kitobidagi ma'lumotlar bilan ishlash

Windows ro'yxatga olish kitobi kichik ma'lumotlarni belgilar formatida saqlash uchun ishlatilishi mumkin. Visual Basic-da unga kirish uchun foydalanishingiz mumkin bo'lgan to'rtta protsedura mavjud. Ulardan foydalanish juda oson, lekin bitta asosiy kamchilik bor: ma'lumotlarga faqat ma'lum bir ro'yxatga olish kitobi kalitidan kirishingiz mumkin: "MyComputer\HKEY_CURRENT_USER\Software\VB va VBA Program Settings". Ro'yxatga olish kitobining boshqa bo'limlariga kirish uchun siz "Win 32 API" maxsus funktsiyalaridan foydalanishingiz kerak.

Windows ro'yxatga olish kitobining Visual Basic bo'limidan sozlamaning qiymatini olish uchun siz quyidagi funktsiyadan foydalanishingiz kerak:

MyString = GetSetting (VBKeyName, Bo'lim, Kalit [, Standart])

· MyString – funksiya tomonidan qaytarilgan qiymatni saqlash uchun satr;

· GetSetting - funksiya nomi.

· VBKeyName - ichki VB/VBA pastki kalitining nomi bo'lgan satr qiymati.

· Key - bo'limdagi parametr nomini ifodalovchi satr qiymati.

· Standart - ixtiyoriy argument, uning qiymati xato bo'lsa (etishmayotgan parametr) qaytariladi.

Windows registrida qiymatni saqlash uchun quyidagi bayonotdan foydalaning:

SaveSetting VBKeyName, Section, Key, MyString

· SaveSetting - operator nomi.

· MyString - topilgan qiymat joylashtiriladigan satr o'zgaruvchisi.

Muayyan pastki kalitdan barcha parametr qiymatlarini o'z ichiga olgan registrdan massivni olish uchun quyidagi funktsiyadan foydalaning:

MyVariant = SetAllSettings (VBKeyName, Bo'lim)

· MyVariant bu funksiya tomonidan qaytariladigan “Variant” tipidagi qiymatlar massivi.

· SetAllSettings - funksiya nomi.

· Bo'lim - Muayyan ilovaning bo'limi yoki bo'limini ifodalovchi satr qiymati.

Parametrlarning butun qismini o'chirish uchun quyidagi sintaksisga ega bayonotdan foydalaning:

DeleteSetting VBKeyName, Bo'lim, Kalit

· DeleteSetting - operator nomi.

O'z-o'zini tekshirish uchun test savollari

  1. Qanday qilib ba'zi ma'lumotlarni uzoq muddatli saqlashingiz mumkin?
  2. Fayl nima?
  3. Qanday fayl nomlarini bilasiz?
  4. “Ochish” operatorining sintaksisini keltiring. Uning parametrlarining maqsadini tushuntiring.
  5. Qanday qilib bir nechta ilovalar bir vaqtning o'zida bitta faylga kirishni baham ko'rishlari mumkin?
  6. Fayldagi ma'lumotlar tugaganligini qanday aniqlash mumkin?
  7. Nima uchun fayl bilan ishlagandan keyin uni yopish tavsiya etiladi?
  8. Matn va ikkilik fayl rejimlari o'rtasidagi farqni nimada ko'rasiz?
  9. Matnli fayl rejimida ma'lumotlar qanday o'qiladi va yoziladi?
  10. Ikkilik fayl rejimida ma'lumotlar qanday o'qiladi va yoziladi?
  11. Fayllar bilan ishlashda "Chop etish" va "Yozish" operatorlari o'rtasidagi farq nima?
  12. Fayllar bilan ishlashda “Input” va “Line Input” operatorlarining farqi nimada?
  13. Grafik ma'lumotlar bilan qanday ishlash mumkin?
  14. Windows reestri bilan ishlashning asosiy tamoyillari qanday?