Dosya Yazma okuma Output Input Append Random Binary

tarih28.10.2008 02:33 — Visual Basic,



 

YAZMA MODLARI

 

 

1 – Output Modu

 

Dosya sıralı erişim modunda sadece yazma işlemi için açılır. Veriler tek yönlü taşınır ve okuma işlemine izin verilmez.

Yazma işlemi birkaç farklı teknikle yapılabilir.Bunlardan birincisi PRINT metodudur. Print metodunda bilgiler yan yana veya alt alta aralarında hiçbir ayıraç kullanılmadan yazılır.

Veriler yan yana

Print #1, bilgi1,bilgi2,bilgi3 yazılır.

Print #1, bilgi1

Print #1, bilgi2

Veriler

Print #1, bilgi3 alt alta yazılır.

Write metodu ise ikinci bir seçenektir. Bu metot ile yazma işlemi yaptığımızda hedef dosyaya gönderdiğimiz bütün bilgiler “bilgi” şeklinde çift tırnak ile ayrılırlar. Yine print metodunda olduğu gibi tek satırda gönderilen bilgiler hedef dosyaya da tek satırda yazılırlar, alt alta write komutu verilerek yazılan bilgiler ise hedef dosya üzerinde de alt alta bulunurlar.

Fakat print metodundan farklı olarak write ile tek satırda gönderilen bilgiler hem çift tırnakla belirtilir hem de her bilgi arasına virgül işareti yazılarak ayrılırlar.

Output metodu ile yeni bir kayıt yaptığınızda, yeni bilgiler eski kayıtların üzerine yazılacaktır. Bo mod ile işlem yaparken eski verilerinizin kaybolacağını veya zarar göreceğini bilmeniz gerekir.

 

2 – Append Modu

 

Output modunda bulunan bütün özellikleri kullanabilen bir sıralı erişim modudur. Print ve write komutları output modunda olduğu gibi kullanılırlar.

Output modu ile yaptığınız tüm işlemleri Append modu ile yapabilirsiniz. Aralarında tek bir fark vardır o da Append modunda yeni kayıt yapıldığında kendini dosya sonuna eklemesidir. Yani Append modunda işlem yapıldığında eski kayıtlarınız silinmez ve yeni kayıt dosya sonuna kendini otomatik olarak ekler. Böylece hem Output modunda kayıt yapmış hem de verilerinizi kaybetmemiş olursunuz.

 

3 – Random Modu

 

Sıralı erişim dosyalarından oldukça farklı bir yapıya sahiptir. Bir veritabanı yapısına uygundur ve düşük seviyeli bir veritabanı için rahatlıkla kullanılabilir.

Bu moda yapılan her kayıt bir kayıt numarasına sahiptir. Ayrıca her kayıt belli bir uzunluktadır ve belirtilen uzunluğu aşan kayıtlarda artık bölüm hedef dosyaya yazılmaz. Dosya açma işlemi sırasında dosya kayıt bilgisinden hemen sonra kayıtların karakter uzunlukları belirtilerek her kaydın bir kayıt numarası alması sağlanır.

Kullanımı : Open App.Path & “/volkan.txt” For Random As #1 Len=15 şeklindedir. Satırın sonunda bulunan Len = 15 bilgisi her kaydın ne kadar karaktere sahip olduğunu gösterir. Böylece sistem hedef dosyadaki bütün kayıtları okur ve bunları 15 karakterlik parçalara bölerek birer sıra numarası verir. Bu sıra numarasıyla daha sonra kayıtlar okunabilir.

Gönderdiğimiz veriler belirtilen kayıt uzunluğundan fazla ise değişken tanımlamamıza bağlı olarak ya kayıtların sonundaki fazlalık atılarak kayıt yapılır yada kayıt tam yapıldığı halde bir bölümü daha sonraki kayıt içinde yer alır.

Eğer gönderdiğimiz bilgiler kayıt uzunluğundan kısaysa eksik bölge kadar boşluk karakteri kayıt sonuna eklenerek kayıt uzunluğu olması gereken boyuta getirilir. Bu özellik ile kayıtlarımız belli bir düzende sıralanır ve veritabanı gibi kullanılabilir.

Random modunda PUT metodu kullanılır.

 

4 – Binary Modu

 

Binary dosyalama modu diğer modlara göre çok daha gelişmiş uygulamalar için tasarlanmıştır. Bütün özel dosya biçimleri Binary modu ile kayıt edilebilir ve içinde metin tabanlı dosyalama modlarına göre daha karmaşık bilgiler barındırabilir. Her kayıt metin değeri olarak 1 karakterlik yer kaplar. Random erişim modunda olduğu gibi her kayıt bir kayıt numarasına sahiptir fakat sadece 1 karakterlik kayıtlar yapabildiğimiz için bu kayıt numaraları aslında hedef bilginin dosya içindeki karakter sırasıdır.

Binary erişim modu ile her karaktere ayrı ayrı erişebilir, düzenleyebilr veya silebilirsiniz. Bu özelliğinden dolayı metin tabanlı dosya biçimleri dışındaki bütün özel dosya biçimlerine Binary mod ile erişmek zorunda kalırız. Örneğin bir .EXE veya .BMP dosyası oluşturmak istediğimde kullanacağımız dosya erişim biçimi kesinlikle Binary mod olmalıdır. Aksi taktirde oluşturduğumuz dosya işlemci veya işleyici program tarafından doğru olarak okunamaz, işlenemez.

Kullanımı :Put #1, 1, bilgi1 şeklindedir. “, 1 ,” kayıt numarasıdır. Yani bu bilgi1’in 1. karakter olduğunu belirtir.

 

OKUMA MODLARI

 

 

1 – Input Modu

 

Input modunda dosya okumak için iki teknik kullanabiliriz. Bunlardan birincisi Input okuma modudur.

Bu teknikte dosya açıldıktan sonra verilen her input komutu dosyada bir satırın okunması anlamına gelir. Satır numarası verilmediği halde bir input komutundan sonra gelen diğer input komutu sıradaki satırın okunması anlamına gelir. Dosya kapanmadığı sürece her input komutunda bir sonraki satır okunacaktır. Bu durum dosya açıldıktan sonra her satırın sadece bir defa okunabilmesi anlamına gelir. Ayrıca hedef satıra ulaşmak için o satırdan önceki bütün satırları da okumak zorunda kalırız. Dosyayı tümüyle okuyacak ve bir değişkene atayacak olursak input tekniği etkili bir çözüm olabilir, fakat dosya üzerinde özel işlemler yapmak istiyorsak input tekniği bize çeşitli sorunlar çıkartacaktır.

Input modunda kullanacağımız ikinci teknik ise Line Input. Bu teknikte hedef satır numarası verilebilir ve diğer kayıtlarla uğraşılmadan direkt olarak hedef satır okunur. İstendiğinde daha önce okunmuş bir satır tekrar okunabilir, okunmuş olan satırdan da daha önceki bir satıra ulaşılabilir. Metin tabanlı kayıtlar oluşturmuşsak input modu ve line input tekniği işinize yarayacaktır.

 

2 – Random Modu

 

Random modu yine bu moda kaydedilmiş olan verileri okumak için kullanılır. GET tekniği kullanılır.

Kullanımı : Get #1, şeklindedir.

1, bilgi1

 

3 – Binary Modu

 

Binary modu yine bu moda kaydedilmiş olan verileri okumak için kullanılır. GET tekniği kullanılır.

Kullanımı : Get #1, şeklindedir.

 

KODLARIN KULLANIMINA ÖRNEK

 

 


 

Private Sub command1_Click()

Dim bilgi As String

Open App.Path & “/volkan.txt” For Input As #1

Do While Not EOF(1)

Bilgi = bilgi & Input(1,#1)

Loop

Close #1

MsgBox (bilgi)

End Sub

Private Sub Command1_Click()

Dim bilgi1 As Byte

Dim bilgi2 As Byte

Dim bilgi3 As Byte

Dim bilgi4 As Byte

Open App.Path & “/volkan.txt” For Binary As #1

Get #1, 1, bilgi1

Get #1, 10, bilgi2

Get #1, 20, bilgi3

Get #1, 30, bilgi4

Close #1

MsgBox (CStr(Chr(bilgi1))&vbCrLf_

&CStr(Chr(bilgi2))&vbCrLf_

&CStr(Chr(bilgi3))&vbCrLf_

&(CStr(Chr(bilgi4)))

End Sub

 

 

 




Bir önceki konu başlığımıza göz atmak isterseniz tıklayınız : Yardım Dosyalarına Common Dialog İle Bağlanmak





Yorum Yazın