30-mavzu. Visual Basicda fayllar bilan ishlash


Download 51.4 Kb.
bet3/3
Sana15.03.2023
Hajmi51.4 Kb.
#1270915
1   2   3
Bog'liq
30 mavzu

Fayllarni yopish
Fayllarni yopish juda oson. Buning uchun siz quyidagi sintaksisga ega bo'lgan close iborasidan foydalanishingiz kerak:

Close [fileNumberLlist]


bu yerda fileNumberLlist yopiladigan fayllar roʻyxati boʻlib, fayl raqamlari bilan ifodalanadi va vergul bilan ajratiladi: [#fileNumber] [,#fileNumber] . . . [,# fayl raqami]. Bunday holda, fayl raqami ochiq funksiyadagi fayl raqamiga o'xshaydi.
Работа с файлами последовательного доступа
Ketma-ket fayllar odatda matnli fayllar, ya'ni satrlarda tashkil etilgan ASCII belgilar ketma-ketligidir. Misol tariqasida Windows NT ishga tushirish faylini keltirish mumkin (1-rasm).
Ketma-ket kirish fayllarini ochishda uchta kirish rejimi mumkin:
• Input - ketma-ket ma'lumotlarni o'qish uchun ochiq;
• Output - ma'lumotlarni ketma-ket yozib olish uchun ochiq, ma'lumot har doim fayl boshidan yoziladi (faylda biror narsa allaqachon yozilgan bo'lsa, avvalgisining ustiga yoziladi);
• Append– faylda mavjud bo‘lganlarga ma’lumotlarni qo‘shish uchun ochiq.


Rasm 1. Seriyali kirish fayliga misol
Ma'lumotlarni o'qish
Ketma-ket fayldan ma'lumotlarni o'qish Input funksiyasi va Input # va Line Input # operatorlari yordamida amalga oshiriladi. Ushbu funktsiyalar va operatorlarni ko'rib chiqing.
Kirish funksiyasi quyidagi sintaksisga ega:

Input(number, #fileNumber)


bu yerda:
• number– fayldan o‘qilgan belgilar sonini ko‘rsatuvchi butun son;
• fileNumber - ochiq bayonotdagi fayl raqamiga o'xshash fayl raqami.
Kirish funksiyasi fayldan ma'lum miqdordagi belgilarni o'qiydi va odatda print # chop etish buyrug'i bilan faylga yozilgan ma'lumotlarni o'qish uchun ishlatiladi.
Agar dastur qatorlardagi ma'lumotlar ajratilgan tuzilishga ega bo'lgan fayldan ma'lumotlarni o'qishi kerak bo'lsa (vergullar ajratuvchi sifatida ishlatiladi), Input # operatoridan foydalanish kerak:

Input #fileNumber, varlist


bu yerda:
fileNurnber fayl raqami, ochiq bayonotdagi fayl raqamiga o'xshash;
• varlist - o'zgaruvchilar ro'yxati.
Bu buyruq bajarilganda avval butun satr o'qiladi, so'ngra ajratuvchilar (vergul) bilan ajratilgan pastki qatorlar ro'yxatning mos o'zgaruvchilariga joylashtiriladi. Operatorning to'g'ri ishlashi uchun faylning satrlari ajratuvchilar bilan berilgan tuzilishga ega bo'lishi kerak. Bu operator odatda write # operatori bilan birgalikda ishlatiladi.
Input # operatoridan foydalanib faylning butun mazmunini o'qish uchun fayldan ma'lumotlarni tsiklik o'qishni tashkil qilish kerak, chunki ma'lumotlar ushbu bayonot tomonidan satr satr o'qiladi.
Seriyali fayldan maʼlumotlarni satr boʻyicha oʻqish uchun Line Input # operatoridan foydalaning. Ushbu operator uchun sintaksis:
Line Input # fileNurnber, varName
bu yerda:
• fileNurnber fayl raqami, ochiq bayonotdagi fayl raqamiga o'xshash;
• varName - o'zgaruvchining nomi.
Line Input # operatori ma'lumotlarning butun qatorini fayl belgilaridan belgilar bo'yicha o'qiydi va uni qator o'zgaruvchisiga joylashtiradi. Bunda fayldagi satr ajratuvchi standart satr ajratuvchi, CHR(13) vagonni qaytarish ketma-ketligi va CHR(13) + CHR(10) va bu ajratgichlar kiritilmagan. varName o'zgaruvchisiga.
Odatda Line Input # operatori Chop Print # operatori bilan birgalikda ishlatiladi.
Line Input # ko'rsatmasi yordamida fayldagi barcha ma'lumotlarni o'qish uchun ma'lumotlarni o'qish tsiklini tashkil qilish kerak.
Fayllar bilan ishlash funksiyalari va operatorlarini o'rganish uchun kichik dastur yarataylik. Quyidagilarni bajaring:

1. Yangi standart loyiha yarating. Buning uchun Fayl (Fayl) menyusidan Yangi loyiha (Yangisini yaratish) buyrug'ini tanlang va loyiha turini tanlash oynasida Standard EXE belgisini ikki marta bosing.


2. Loyihaga MyFileProject nom bering. Buning uchun Project1 Properties (Properties Project1) menyusi Project (Project) buyrug'i orqali chaqirilishi mumkin bo'lgan loyiha xususiyatlari oynasidan foydalaning. Loyiha nomini o'zgartirgandan so'ng, bu buyruq MyFileProject Properties (MyFileProject xususiyatlari) deb nomlanadi.

3. Fayllarni tanlash uchun fayllarni ochish va saqlash uchun dialog oynalari kerak bo'ladi. Komponentlar dialog oynasidan foydalanib (Project menyusidagi Components buyrug'i orqali kirish mumkin), Microsoft Common Dialog Control 6.0 kutubxonasini loyihaga ulang va OK tugmasini bosing.


4. Loyiha shakli nomini FormForFile deb o'zgartiring.
5. Shaklning caption xususiyatiga Biz fayllar bilan ishlaymiz sarlavhasini kiriting.
6. Formaga TextBox kiritish/chiqarish boshqaruvini qo'shing va uni txtFile deb nomlang. Matn maydonini formaning deyarli butun maydonini egallashi uchun etarlicha katta qiling. Maydonning Ko'p qatorli xususiyatini True ga o'rnating.
7. Boshqaruv panelidagi CommonDialog tugmachasini ikki marta bosish orqali formaga CommonDialog boshqaruv elementini qo'shing.
8. Yangi yaratilgan CommonDialog obyektiga cdCommonDialog nom bering.
Fayllarni filtrlash uchun cdCommonDialog obyektining Filtr xususiyatiga quyidagi matnni kiriting: Barcha fayllar (*. *) |*. * | Matn fayllari (*.txt) \ *. txt\.
10. FormForFile formasiga CommandButton tipidagi boshqaruv tugmachasini qo‘shing,
Boshqaruv panelidagi Buyruq tugmasini ikki marta bosish orqali.
11. Ob'ekt formada paydo bo'lgach, ushbu tugmachani cbstart deb nomlang va uning Caption xususiyatini Execute ga o'rnating. Formada yaratilgan cbstart tugmasi tugmaning Click hodisasida amallarni bajarish uchun xizmat qiladi.
Yaratilgan test ilovasi 2-rasmda ko'rsatilgan.
Olingan dastur endi fayllar bilan ishlashni o'rganish uchun ishlatilishi mumkin. Keling, dasturni ketma-ket fayldan ma'lumotlarni o'qish uchun dasturlashtiramiz. Buning uchun kod muharriri oynasini oching va quyidagi kodni kiriting:Dim strFileName As String
Dim strFileContent As String
Dim nFreeFile As Integer
Dim nFileLenght As Integer
Private Sub cbStart_Click()
cdCommonDialog.ShowOpen
strFileName = cdCommonDialog.FileName
nFreeFile = FreeFile
If strFileName <> "" Then
Open strFileName For Input As nFreeFile
nFileLenght = FileLen(strFileName)
strFileContent = Input(nFileLenght, #nFreeFile)
txtFile.Text = strFileContent
Close
End If
End Sub

2-rasm. Fayllar bilan ishlash funksiyalarini o'rganish uchun ilova ko'rinishi

Ishlayotgan dastur 3-rasmda ko'rsatilgan. Bunday holda Run tugmasini bosish faylni qidirish muloqot oynasini ochadi. Muloqot oynasi tomonidan qaytarilgan yo'l va fayl nomi strFileName o'zgaruvchisida saqlanadi. Topilgan fayl (u matnli fayl bo'lishi kerak) ma'lumotlarni o'qish uchun ochiq bayonot yordamida ochiladi. Kirish funktsiyasi butun faylni bir vaqtning o'zida strFileContent o'zgaruvchisiga o'qiydi, uning mazmuni txtFile matn maydoniga joylashtiriladi. Barcha harakatlar bajarilgandan so'ng, fayl yopish bayonoti bilan yopiladi.


Line Input # iborasi yordamida ma'lumotlarni o'qish uchun siz ochiq bayonotdan keyin darhol kodni quyidagi bilan almashtirishingiz kerak:Do While Not EOF(nFreeFile)
Line Input #nFreeFile, strFileContent
txtFile.Text = txtFile.Text + strFileContent +Chr$(13) + Chr$(10) Loop Close
Ushbu tsiklda fayldan olingan ma'lumotlar strFileContent o'zgaruvchisiga satr satr o'qiladi va txtFile matn maydoniga joylashtiriladi. Loop faylning oxirigacha ishlaydi, bu EOF funksiyasi tomonidan boshqariladi. Loopdan foydalanish fayl uzunligini bilishni talab qilmaydi, bu ba'zan afzalroqdir.

Rasm 3. Fayldan ma'lumotlarni o'qish
Kirish # ifodasi qanday ishlashini bilish uchun shaklga boshqa matn maydonini qo'shing. Uni txtNumber deb nomlang va maydonning DataFormat xususiyatini o'rnating
Raqam qiymatiga. Murojaatdagi ochiq bayonotdan keyingi matn quyidagi mazmundagi bilan almashtirilsin:
Dim nFileContent As Integer
Input #nFreeFile, strFileContent, nFileContent
txtFile.Text = strFileContent
txtNumber.Text = nFileContent
Close

4-rasm. Fayl satrlaridan ma'lumotlarni o'zgaruvchilarga o'qish
Ishlayotgan dastur 4-rasmda ko'rsatilgan.Bu holda ochilgan faylning satrlari quyidagi qatorga o'xshash tuzilishga ega bo'ladi:
Bu xususiyat test fayli, 100
ya'ni matn va raqam vergul bilan ajratiladi.
Download 51.4 Kb.

Do'stlaringiz bilan baham:
1   2   3




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling