1 Anadolu Üniversitesi Endüstri Mühendisliği Bölümü Dosyalama İşlemleri Visual Basic 6.0 Ders Notları Kaynak: İhsan Karagülle, Zeydin Pala, Visual Basic 6.0, Türkmen Kitabevi, 1999, Beyazıt İstanbul,
2 Dosyalama İşlemleri Programda kullandığımız bazı bilgilerin kalıcı olarak saklanması için dosyalama işlemlerinden yararlanılır. Bir dosyadan kayıt okumak veya dosyaya kayıt yapmak için önce dosya açılır, üzerinde işlem yapıldıktan sonra da kapatılır.eğer açık olan bir dosya tekrar açılmaya çalışılırsa VB hata verecektir. Dosyalar yapılan işe göre temelde iki türde açılır: Rasgele Erişimli Rasgele erişimli dosyalarda istenen kayda numarası verilerek ulaşılabilir. Sıralı Erişimli Sıralı işlemli dosyalarda bütün kayıtlar işlendikten sonra istenen kayda ulaşılabilir.
3 Dosya Açmak İster sıralı erişimli olsun ister rasgele erişimli olsun, bir dosyayı açmak veya oluşturmak için open komutu kullanılır. Open Dosya Adı [For Açmamodu] [Access ErişimModu] [lock] As [#]dosyano [Len=kayituzunlugu] DosyaAdi: Açılacak veya oluşturulacak dosyanın adı AçmaModu : Dosyanın açma modunu belirler Random, Dosyadaki her kayıt kayıt uzunluğu ile belirtilen uzunluktaki alanlara yazılır.dosyadaki istenen kayda numarası ile erişilebilir. Binary, Dosya içindeki her karaktere karakterin numarası verilerek ulaşılabilir. Input, dosya okunmak için açılır Output, dosya yazmak için açılır Append, dosyaya yeni kayıt eklemek için açılır. Output modu gibidir ancak dosyanın göstericisi dosyanın sonunda yer alır. Input, Output ve Append modu ile açılan dosyalara sıralı erişimli dosyalar denir.
4 Dosya Açmak (devam) Open Dosya Adı [For Açmamodu] [Access ErişimModu] [lock] As [#]dosyano [Len=kayituzunlugu] Erişim Modu:Dosya açılırken dosyanın hangi amaçla açıldığı belirtilebilir Read, dosya sadece okumak için açılır Write, dosya sadece yazmak için açılır Read Write, dosya hem okumak hem de yazmak için açılır Lock : Dosya açılırken istenirse diğer programların dosyaya erişimi engellenebilir. Shared, açılan dosyaya diğer uygulamalar tarafından okuma ve yazma yapılabilir Read, sadece okumaya karşı kilitlenir Write, sadece yazmaya karşı kilitlenir ReadWrite, hem okumaya hem de yazmaya karşı kilitlenir. Dosyano: dosya açılırken o dosyaya 1 ile 255 arasında bir numara verilir ve dosyada yapılan işlemlerde bu numara kullanılır. Aynı anda birden çok dosya açılıyorsa numaralar farklı olmalıdır.
5 Dosya Açmak (devam) Open Dosya Adı [For Açmamodu] [Access ErişimModu] [lock] As [#]dosyano [Len=kayituzunlugu] Dosyano: dosya açılırken o dosyaya 1 ile 255 arasında bir numara verilir ve dosyada yapılan işlemlerde bu numara kullanılır. Aynı anda birden çok dosya açılıyorsa numaralar farklı olmalıdır. Kayituzunlugu: dosyanın açım moduna göre bu parametrenin iki farklı anlamı vardır ve 32767 den büyük olamaz. Binary açılan dosyalar için bu parametrenin anlamı yoktur Dosya random açılmışsa bu sayı her kaydın uzunluğunu belirler varsayılan değeri 128 dir Dosya random modundan farklı bir modda açılmışsa bu sayı karakter buferının boyutunu belirler. Verilmezse 512 karakter olarak belirlenir. Bufer bir seferde okunacak ve yazılacak karakter sayısını belirler
Rasgele erişimli dosyaya yazma ve okuma 6 Random veya Binary modu ile açılan dosyalara kayıtlar put komut ile yazılar ve get komutu ile okunur Put [#] dosyano, [kayitno], degisken Get [#] dosyano, [kayitno], degisken Degisken : içeriği yazılacak veya kaydın alınacağı değişken dosyano : yazılacak veya okunacak dosyanın numarası Kayitno : yazılacak veya okunacak değişkenin dosya içindeki kayıt numarası Bu numara dosyadaki ilk kayıt için birdir.
Rasgele erişimli dosyaya yazma ve okuma Örnek 7
Sıralı erişimli dosyaya yazma ve okuma 8 Output ve Append modu ile açılan dosyalara write veya print komutu ile yazma yapılır Input modu ile açılan dosyadan input veya line input komutları ile değişkenlere değer okunur Write [#] dosyano, [,degiskenler] Print [#] dosyano, [,degiskenler] Input [#] dosyano, [,degiskenler] Line Input [#] dosyano, [,degiskenler] Input (karakter Sayısı, dosyano) Degiskenler : dosyaya yazılacak olan değişken listesi araya virgül konarak yazılır. dosyano : yazılacak dosyanın numarası Write ile dosyaya yazılan değişkenler tırnak içerisinde ve araya virgül konarak yazılırlar. Son değişkenden sonra satır sonu karakteri konur.
Sıralı erişimli dosyaya yazma Örnek 9
Sıralı erişimli dosyaya okuma Örnek 10
11 Dosyaları Kapatmak Hangi modda açılırsa açılsın dosya close komutu ile numarası verilerek kapatılır Close [#] dosyano, [;#DosyaNo] Açık olan bütün dosyaları kapatmak için reset komutu kullanılır. Reset
12 Dosya Sonu Kontrolü EOF(dosyano) Numarası verilen dosyanın sonuna gelinmişse true değeri geri çevirir Sıralı erişimli dosyalarda dosya sonu tespiti için kullanılır
Örnek 13