Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Excel’de VBA programlama (Visual Basic Application) Ders 5.

Benzer bir sunumlar


... konulu sunumlar: "Excel’de VBA programlama (Visual Basic Application) Ders 5."— Sunum transkripti:

1 Excel’de VBA programlama (Visual Basic Application) Ders 5

2 Dosyalarla Çalışmak Verilerin kalıcı olarak saklamak için bir disk dosyasına kaydetmek gerekir. Her uygulamanın kendine has dosya formatı vardır (.doc,.xls,.bas vb. ). Bunarın dışında veri yönetimi için güçlü ve esnek araçlar kullanmak gerekebilir. Dosya İşlemleri Dosya Erişimi Dosya Yönetimi Veri okunması yazılması eklenmesi Dosya veya klasör oluşturulması kopyalanması silinmesi taşınması

3 Dosya İşlemleri İçin Yaklaşımlar Klasik Yaklaşım Nesne Yönelimi Basic dili deyimleri kullanarak  Metin ve İkili dosya erişimleri  Dosya yönetimi FSO (File System Object)  Metin dosya erişimi  Dosya yönetimi Bu iki yaklaşımın kullanımı; sonucu değil, kodun nasıl yazılacağını etkiler. Her iki yaklaşım birlikte kullanılabilir.

4 Dosya Erişimi Üç adımdan oluşur; 1.Dosyayı AçmakDosyayı Açmak 2.Dosyaya veri yazmak, eklemek veya okumak 1.Sıralı Dosyaların KullanılmasıSıralı Dosyaların Kullanılması 2.Rastgele Dosyaların KullanılmasıRastgele Dosyaların Kullanılması 3.İkili Dosyaların Kullanılmasıİkili Dosyaların Kullanılması 4.Metin Dosyalarının KullanılmasıMetin Dosyalarının Kullanılması 3.Dosyayı KapamakDosyayı Kapamak Dosya Tipleri Sıralı (sequential file) Rastgele (random file) İkili (binary file) Metin (Text File)

5 Dosya Erişimi Sıralı Dosya Metin Dosyasıdır. Veriler kayıt (record) adı verilen değişken uzunlukta bir dizi birim halinde saklanır. Bir sayı, bir harf veya bir karakter katarı kayıt olabilir. Bir kaydın sonu ve diğerinin başlangıcı bir carriage return/line feed (CRLF) karakteriyle gösterilir. Bir satırda tek başına bulunan CRLF karakteri boş kaydı gösterir. Kayıtlar dosyanın başından itibaren sıra ile kaydedilir veya okunur. Doğrudan istene kayda atlamak mümkün değildir. Menü

6 Dosya Erişimi Rastgele Dosya Metin ve Sayı Dosyasıdır. Metinler karakter halinde, sayılar ise ikilik formatta saklanır Veriler adı verilen sabit uzunlukta bir dizi kayıt (record) halinde saklanır. Dosyadaki her kayıt aynı büyüklüktedir. Kayıt büyüklüğü dosya ilk oluşturulduğunda tanımlanır. Her kayıt bir yada daha fazla alan içerir. Kayıt büyüklüğü alanların büyüklükleri toplamına eşittir. Bu nedenle kayıt sonunu belirlemek için herhangi bir sınırlayıcı kullanılmaz. Bu özelliğinden dolayı istenen kayda doğrudan erişimek mümkündür.Dosyanın başından itibaren kayıtları sırayla okumak zorunluluğu yoktur. Menü

7 Dosya Erişimi İkili Dosya Veriler ASCII kodlarıyla ikilik sistemde ve biçimlendirilmemiş şekilde saklanır. Kayıt, sınırlayıcı karakter ve alanlar yoktur. Bu nedenle neyin nerede saklandığından program sorumludur. Genellikle hafızanın belli bir bloğundaki verileri saklamak için kullanılır. (Ekran hafızası gibi) Menü

8 Dosya Erişimi Dosya Açmak Bir dosyadaki verileri okumadan veya bir dosyaya veriler yazmadan önce o dosyayı açmak gerekir. Dosyalar Open deyimi ile açılır. Open dosyaadı For mod [Access erişim] [lock] As [#] dosyano [Len=kayıtuzunluğu] dosyaadıAçılacak dosyanın adını tanımlayan bir karakter katarı ifadesidir. Eğer dosyaadı sürücü ve yol bilgisi içermiyorsa, dosya geçerli klasörde açılır. modDosya erişim modunu gösterir. Eğer belirtilmez ise dosya rastgele açılır.(APPEND, BINARY,INPUT,OUTPUT,RANDOM) erişimAçılmış dosyada, okuma (READ), yazma (WRITE) veya okuma veyazma(READ WRITE) erişimi izni verir lockDosyaya başka kullanıcıların erişip erişmeyeceğini belirler.(SHARED, LOCK READ,LOCK READ LOCK READ WRITE) dosyano1-51 arası değer alabilen ve açık her dosyanın numarasını içeren tamsayı ifadesidir. FreeFile() fonksiyonu ile o anda kullanılmayan en düşük numara döndürülür.

9 Open "TESTFILE" For Input As #1 Open "TESTFILE" For Binary Access Write As #1 Type Record ' Define user-defined type. ID As Integer Name As String * 20 End Type Dim MyRecord As Record ' Declare variable. Open "TESTFILE" For Random As #1 Len = Len(MyRecord) Open "TESTFILE" For Output Shared As #1 Open "TESTFILE" For Binary Access Read Lock Read As #1 Menü

10 Dosyayı Kapamak Bir dosyanın kapatılması işlemi, dosyanın tamponunu temizler ve diskteki fiziksel olarak var olan dosya ile verilerin ilişkilendirilmesini keserek dosya numarasını serbest bırakır. Dosya Erişimi Menü Close # dosyano Close # dosyano1, # dosyano2, # dosyano3… Close

11 Dosya Erişimi Sıralı Dosyaların Kullanımı Veri kaydı yapabilmek için Write # dosyano, liste veya Print # dosyano,liste deyimleri kullanılır. Dosyanın OUTPUT veya APPEND modunda açılması gereklidir. Print deyimi ile gösterim düzenlemesi yapılırken Write deyiminde alanlar arasında virgül bulunur.

12 Sıralı Dosyaların Kullanımı Dosya Erişimi Dosyadan veriler Input # dosyano, değişkenliste deyimi kullanarak alınır. Input # dosyano, değişken1, değişken2, değişken3 veya Input # dosyano, değişken1 Input # dosyano, değişken2 Input # dosyano, değişken3 şeklinde kullanılabilir. Menü

13 Rastgele Dosyaların Kullanımı Dosya Erişimi Bir rastgele dosyadaki her kaydın aynı sayıda alanı ve aynı alan büyüklüğü vardır. Rastgele dosyanın yapısı dosya ilk oluşturulurken tanımlanır. Bu işlem kullanıcı tanımlı tip ile gerçekleştirilir. Type isci soyad As String * 16 isim As String * 12 sicil_no As Integer ise_baslama_tarihi As Date End Type … Dim iscilerim(500) As isci … fn=FreeFile Open “c:\veri\isciler.dat” For RANDOM As #fn Len=Len(iscilerim(0))

14 Rastgele Dosyaların Kullanımı Dosya Erişimi Rastgele dosya açıldıktan sonra bu dosyaya veri kaydı Put deyimi ile yapılır. Put #dosyano, kayıtno, liste kayıtno=Lof(dosyano)\Len(degisken) kullanarak en son kayıt bulunur Rastgele dosyadan veri almak için Get deyimi kullanılır. Get #dosyano, kayıtno, liste Menü

15 İkili Dosyaların Kullanımı Dosya Erişimi İkili dosyalarda kayıt ve alan yoktur. İkili dosyalar çok esnek oldukları için programcıya kontrol için çok iş düşmektedir. Dosya BINARY modu ile açılır. Rastgele dosyalarda ki gibi PUT ve GET deyimleri kullanılır.

16 Dosya Erişimi Metin Dosyaların Kullanımı Metin dosyaları üzerinde çalışırken nesne yönelimli metotlar kullanılırken File SystemObject sınıfı kullanılır. Nesne hiyerarşisinin en üstünde olduğu için ilk önce FSO sınıfının bir örneği oluşturularak başlanır. Dim fso Set fso = CreateObject("Scripting.FileSystemObject") Daha sonra TextStream nesnesi oluşturulur. TextStream nesnesi oluşturmak için CreateTextFile veya OpenTextFile metotları kullanılır. Birincisi yazma amaçlı yeni bir metin dosyası açarken ikincisi okuma veya yazma amaçlı açar. Eğer dosya mevcut ise CreateTextFile metodu ile bu dosya silinirken OpenTextFile ile dosyaya ilave yapılır.

17 The OpenAsTextStream method provides the same functionality as the OpenTextFile method of the FileSystemObject. In addition, the OpenAsTextStream method can be used to write to a file.


"Excel’de VBA programlama (Visual Basic Application) Ders 5." indir ppt

Benzer bir sunumlar


Google Reklamları