Microsoft Visual Studio Visual Basic Dosya İşlemleri Visual Basic te dosya okuma, ilgili dosyaya yazma işlemleri için Imports System.IO kütüphanesi kullanılmaktadır. İlk önce bu kütüphane aktif edilmelidir. Okuma ve yazma işlemi için bu kütüphanedeki class lar kullanılacaktır. Text ten okuma yazma işlemi için bu kütüphaneden 3 class kullanılacaktır. FileStream, StreamWriter ve StreamReader 1
1-FileStream Kullanımı: Dim Degisken adi as Filestream = new Filestream( dosya yolu, dosya açma mod u) Dosya okunmak için mi? Yoksa yazmak için mi açıldığını mod olarak belirtmek durumundayız. Dim fs As FileStream = New FileStream(Application.StartupPath & "\veri.txt", FileMode.Open, FileAccess.Read) Veya Dim fs As FileStream = New FileStream("C:\test\veri.xls", FileMode.Append, FileAccess.Write) 2-StreamWriter StreamWriter class inin genel kullanımı aşağıdaki gibidir. Bu class i kullanabilmek için ilk olarak bir filestream tanımlamak gerekir ve tanımladığınız streamwriter a bu filestream atanır. Kullanımı: Dim sw as streamwriter = new streamwriter(fs) Sw.writeline( Yazilacak deger ) Dim sw As StreamWriter= New StreamWriter(fs, System.Text.Encoding.GetEncoding("iso 8859 9")) sw.writeline(textbox1.text) Streamwriter class inin writeline metodu text dosyasında bir satıra yazar, eğer birden çok satıra veri girmek istenirse, birden çok writeline kullanılmalıdır. 2
3-StreamReader StreamReader class i text dosyasından veriyi satir okumaya yarar. StreamReader class inin Readline metodu text dosyasındaki sadece bir satırı okur ve okunan satırın bir değişkene yada bir nesneye atanması gerekir. Birden fazla satir okumak için bir döngü kurmak ve okuma işlemini çoğaltmak gerekmektedir. Kullanımı: Dim fs as filestream = new filestream( dosya.txt,filemode.open) Dim sr as streamreadet = new streamreader(fs) Satir=sr.ReadLine() Dim sr As StreamReader= New StreamReader(fs, System.Text.Encoding.GetEncoding("iso-8859-9")) Text Dosya İşlemleri Imports System.IO Public Class Form5 Dim fs As FileStream, sr As StreamReader, sw As StreamWriter, satir As String C:\Users\HERTAS\Desktop \VBDersUyg\filestrm2\fi lestrm2\bin\debug Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click fs = New FileStream(Application.StartupPath & "\veri.txt", FileMode.Open, FileAccess.Read) sr = New StreamReader(fs, System.Text.Encoding.GetEncoding("iso-8859-9")) While Not satir Is Nothing TextBox1.Text += satir & vbnewline End While sr.close() fs.close() Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click fs = New FileStream(Application.StartupPath & "\veri.txt", FileMode.Create, FileAccess.Write) sw = New StreamWriter(fs, System.Text.Encoding.GetEncoding("iso 8859 9")) sw.writeline(textbox1.text) sw.close() fs.close() End Class 3
Text Dosya İşlemleri Openfiledialog - Savefiledialog OpenFileDialog Bileşeni, kullanıcıların bilgisayar üzerindeki veya ağ üzerindeki herhangi bir bilgisayarda klasörleri bulup ve açmak, bir veya daha fazla dosya seçme işlemini sağlar. İletişim kutusunda seçili kullanıcı dosyasının adını ve yolunu döndürür. Kullanıcının sadece belli uzantıdaki dosyaları seçebilmesi için Filtre söz dizinini kullanabilirsiniz. OpenFileDialog1.Filter = "Uzantı Adı *.uzantı" OpenFileDialog1.Filter = "Word Dokümanları *.doc" Bu filtre ile kullanıcı uzantısı.doc olan dosyaları açabilir. SaveFileDialog Bileşeni, Dosya sistemine göz atmak ve kaydedilecek dosyaları seçmek kullanıcıların olanak sağlar. İletişim kutusu, kullanıcı iletişim kutusundaki seçilmiş dosyanın adını ve yolunu döndürür. Ancak, dosyaları diske yazmak için kod yazmanız gerekmektedir. savefiledialog1.filter = "JPeg Image *.jpg Bitmap Image *.bmp Gif Image *.gif" savefiledialog1.title = "Save an Image File" savefiledialog1.showdialog() 4
DataGridView kontrolü hücrelerden ve satırlardan oluşan tablo gösterimini sağlayan gelişmiş bir kontroldür. Veri tabanıyla bağlantı yapılarak tabloların gösterimi sağlanabilir veya program içerisinden statik veri girişi ile veri gösterimi sağlanabilir. Başlıca Özellikleri: AllowUserToAddRows: Kullanıcının yeni kayıt ekleyip ekleyemeyeceğini belirler. AllowUserToDeleteRows: Kullanıcının mevcut kayıtları silip silemeyeceğini belirler. Columns: Tablo sütunlarıyla ilgili işlemler, değişiklikler, font ayarları buradan yapılabilir. DataSource: Veritabanı bağlantısı yapmayı sağlayan özelliktir. MultiSelect: Hücreleri çoklu seçimine izin verilip verilmesini ayarlar. ReadOnly: Yalnızca okunabilir hale getirir. Rows: Satırlarla ilgili işlem yapmayı sağlar. SelectionMode: Sütun, Satır ve hücre seçim şeklini belirler. Visible: DataGridView in görünüp görülmemesini ayarlar. Başlıca Olayları (Events): CellClick: Hücreye tıklandığında çalışır. CellContentClick: Hücre başlığına tıklantığında çalışır. CellBeginEdit: Hücrenin düzenleme moduna girildiğinde çalışır. CellEndEdit: Hücrenin düzenleme modundan çıkıldığında çalışır. CellEnter: Hücreye girildiğinde çalışır. ColumnAdded: Sütun eklendiğinde çalışır. RowAdded: Satır eklendiğinde çalışır. DataError: bir veri hatası oluştuğunda çalışır. UserAddedRow: Kullanıcı satır eklediğinde çalışır. UserDeletedRow: Kullanıcı satır sildiğinde çalışır. Sorted: Sıralama yapıldığında çalışır. 5
Imports System.IO Public Class Form1 Dim fs As FileStream, sr As StreamReader, sw As StreamWriter, satir As String Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click OpenFileDialog1.FileName = "" OpenFileDialog1.Filter = "CSV Dosyası *.csv" If (OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.Cancel) Then Exit Sub End If fs = New FileStream(OpenFileDialog1.FileName, FileMode.Open, FileAccess.Read) sr = New StreamReader(fs, System.Text.Encoding.GetEncoding("iso-8859-9")) Dim i As Integer = 0 While Not satir Is Nothing Dim parcala() = Split(satir, ";") DataGridView1.Rows.Add() DataGridView1.Rows(i).Cells(0).Value = i + 1 For j = 0 To 3 DataGridView1.Rows(i).Cells(j + 1).Value = parcala(j) Next i += 1 End While sr.close() fs.close() 6
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click Dim v, f, ort As Double For i = 0 To DataGridView1.RowCount - 1 v = DataGridView1.Rows(i).Cells(3).Value f = DataGridView1.Rows(i).Cells(4).Value ort = (v * 0.4) + (f * 0.6) DataGridView1.Rows(i).Cells(5).Value = ort If ort < 70 Then DataGridView1.Rows(i).Cells(6).Value = "Kaldı" DataGridView1.Rows(i).Cells(6).Style.BackColor = Color.Red Else DataGridView1.Rows(i).Cells(6).Value = "Geçti" DataGridView1.Rows(i).Cells(6).Style.BackColor = Color.Green End If Next Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click SaveFileDialog1.FileName = "liste_son.csv" SaveFileDialog1.Filter = "CSV Dosyası *.csv" If (SaveFileDialog1.ShowDialog) = Windows.Forms.DialogResult.Cancel Then Exit Sub End If Dim veriler As String = "" For i = 0 To DataGridView1.RowCount - 1 satir = "" For j = 0 To DataGridView1.ColumnCount - 1 satir += DataGridView1.Rows(i).Cells(j).Value & ";" Next satir = satir.substring(0, satir.length - 1) veriler += satir & vbnewline Next fs = New FileStream(SaveFileDialog1.FileName, FileMode.Create, FileAccess.Write) sw = New StreamWriter(fs, System.Text.Encoding.GetEncoding("iso-8859-9")) sw.writeline(veriler) sw.close() fs.close() If MsgBox("Dosya Kaydedildi Açılsın mı?", MsgBoxStyle.YesNo, "İşlem Tamam") = MsgBoxResult.No Then Exit Sub End If Dim p As New Process p.startinfo.filename = SaveFileDialog1.FileName p.start() 7
Kaynaklar Öğr.Gör.Abdulkadir Koçer / Görsel Programlama-1 İnternet Anonim kaynaklar http://www.yazilimmutfagi.com 8