10 Kasım 2010 Çarşamba

Dosya İşlemleri ( Sınıf yardımı ile )


                        Bu örneğimizde basit dosya işlemleri yapan bir programı anlatmaya çalışacağım..


using System;
using System.Collections.Generic;
using System.Text;
using System.IO;

// Filestream ve StreamWriter Sınıfını kullanacağımız için System.IO kütüphanesini kaynak olarak gösterdik..


using System.Collections;
namespace WindowsApplication29
{
    class DosyaIslem
    {
     
        public void veriyaz(string s)
        //Dosyaya yazım işlemlerini gerçekleştirmek için geri dönüş değeri olmayan public türünde bir metod oluşturduk..
        {
            FileStream fs = new FileStream("D://Kayit.txt", FileMode.Append, FileAccess.Write);
            StreamWriter sw = new StreamWriter(fs);
           
            //FileStream ve StreamWriter sınıflarımızı oluşturduk,Kayıt yerini D://Kayit.txt olarak belirledik              
Application.StartupPath ile kayıt edeceğimiz belgeyi programın bulunduğu dizine de kaydedebiliriz. Append(Dosya              
varsa aç yoksa oluştur anlamına gelmektedir.) Write ( Bu sınıfları yazım işlemleri için açtığımızı gösterir )
         
            sw.WriteLine(s+" ");
            // Kayit.txt ye kullanıcıdan aldığımız string s(textbox.text,Label.txt..vb..)'deki yazıları ekledik.          
            sw.Flush();
            fs.Close();
            //fs nesnesini Close komutu ile kapattık..        }

        public string verioku()
        // Dosyadaki yazıları okumak için geri dönüş değeri string olan public bir metod oluşturduk..
        {
            StreamReader sr = File.OpenText("D://Kayit.txt");
      
            // StreamReader sınıfından sr nesnesini kayıt Dosyasındaki okuma işlemleri için oluşturduk

            string deger = "";
            string s = sr.ReadLine();
            // s değişkenimize sr.ReadLine(); komutu ile o satırdaki yazıları atadık ve bir alt satıra indirdik.           
            while (s != null) // s değişkeni null yani boş değilse dön
            {
                deger += s;
                // değer değişkenine s değişkenini ekle "deger=deger+sr.ReadLine();"
                s = sr.ReadLine();
                //s değişkenine satırdaki yazıları aktardık ve bir alt satıra indik.            }

            sr.Close();
            // StreamReader işlemlerini Kapattık..
            return deger;
            // deger değişkenimizi kullanıcıya yolladık..        }

       
        public string veriara(string ara)
        {
            // Dosyanın içinde arama yapmak için string geri dönüş tipinde public bir metod oluşturduk..
            int adet = 0;
            StreamReader sr = File.OpenText("D://Kayit.txt");
            // StreamReader sınıfından sr nesnesini kayıt Dosyasındaki okuma işlemleri için oluşturduk
            string s = sr.ReadLine();

            //s değişkenine satırdaki yazıları aktardık ve bir alt satıra indik.
            string deger = "";
            while (s != null)  // s değişkeni null yani boş değilse dön            {
                deger += s;
                // değer değişkenine s değişkenini ekle deger=deger+sr.ReadLine();
                s = sr.ReadLine();
                //s değişkenine satırdaki yazıları aktardık ve bir alt satıra indik.            }
           
          
            string[] dizi;
            dizi = deger.Split(' ');
           
            // deger değişkeninde bir boşluk karakteri ile ayrılan tüm yazıları dizi adlı diziye atadık..

            for (int i = 0; i < dizi.Length; i++)

            // dizinin ilk elemanından son elemanına kadar dönen bir döngü oluşturduk..
            {
                if (dizi[i].ToUpper() == ara.ToUpper())
               
                // dizinin i. elemanını kullanıcıdan aldığımız değere eşit olduğunda adet değişkenini bir arttıracak olan kodu yazdık.. (ToUpper()) metodu eklendiği değişkenin tüm karakterlerini büyük harfe çevirir bu işlemi burda uygulamamızın sebebi ise kullanıcının herhangi bir yazım hatasını önlemek istememizden dolayıdır.               
 
                {
                    adet++;
                }
            }
            sr.Close();
            //StreamReader işlemlerini kapattık
            if (adet > 0)
            {
               // Eğer adet 0'dan büyükse döndürülecek string ifadeyi yazdık..
                return "Aradığınız ifade metinde " + adet + " adet bulunmaktadır";
            }
            else
            {
               
                // Eğer adet 0'dan büyük değilse döndürülecek string ifadeyi yazdık..
                return "Aradığınız ifade metinde mevcut değildir";
            }
           
       
        }
    }
}

-- FORM1.CS --


public partial class Form1 : Form
    {
        DosyaIslem D = new DosyaIslem();
               // Oluşturduğumuz DosyaIslem sınıfından D isimli bir nesne oluşturduk.
        string b;
        public Form1()
        {
            InitializeComponent();
        }
        private void BtnEkle_Click(object sender, EventArgs e)
             // BtnEkle butonunun Click Event'ına girdik.
        {
            if (textBox1.Text != "")
             // Eğer textBox1'in Text i Boş değilse.
            {
                D.veriyaz(textBox1.Text);
            }
             // textBox1'in Text'indeki değeri D nesnemiz yardımı ile DosyaIslem sınıfındaki veriyaz metoduna yolladık..        }
        private void BtnGoster_Click(object sender, EventArgs e)
             
             // BtnGoster butonunun Click Event'ına girdik.
        {
            b = D.verioku();
             // DosyaIslem sınıfımızdaki verioku metoduna işlemleri yaptırdıktan sonra b değişkenine geri dönüş değerini atadık..

                textBox1.Text= b;
             // Dosyadaki okunan tüm verileri textBox1'de gösterdik..                       
        }
        private void BtnAra_Click(object sender, EventArgs e)
             // BtnAra butonunun Click Event'ına girdik.
        {
            string s=D.veriara(textBox1.Text);
             // DosyaIslem sınıfımızdaki veriara metoduna işlemleri yaptırdıktan sonra s değişkenine geri dönüş değerini atadık..
            MessageBox.Show(s);
             // Geri dönüş değerini MessageBox kutucuğunda gösterdik..        }
    }

Hiç yorum yok:

Yorum Gönder