30-mavzu. Visual Basicda fayllar bilan ishlash
Download 51.4 Kb.
|
30 mavzu
- Bu sahifa navigatsiya:
- Работа с файлами последовательного доступа
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: |
ma'muriyatiga murojaat qiling