Bu yazımda C# ile bir metin dosyasına console ekranından girdiğimiz bir metni yazıp, sonrasında ise aynı metin dosyasından tüm verileri satır satır okuma işlemini anlatacağım. Eğer dosya ve klasör oluşturma hakkında yeterli bilgi sahibi değilseniz, öncelikle C# ile Dosya ve Klasör İşlemleri adlı yazımı okuyun. C#’ta tüm giriş/çıkış işlemleri için System.IO kütüphanesi kullanılır. Öncelikle bu namespace’i projemize ekleyelim.
Dosyaya Veri Yazma İşlemi
Veri yazma işlemi için öncelikle bir dosyaya ihtiyacımız var. FileStream sınıfı ile yeni bir dosya açabileceğimiz gibi, halen var olan bir dosya üzerine de yazma işlemi gerçekleştirebiliriz. Verileri dosyaya eklemek içinse StreamWriter sınıfını kullanacağız. Aşağıdaki dosyayaYaz() metodunu kullanarak işlemleri gerçekleştirelim. Kodların açıklamalarını satır aralarına ekledim, inceleyiniz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
private static void dosyayaYaz() { string dosya_yolu=@"C:\metinbelgesi.txt"; //İşlem yapacağımız dosyanın yolunu belirtiyoruz. FileStream fs = new FileStream(dosya_yolu, FileMode.OpenOrCreate, FileAccess.Write); //Bir file stream nesnesi oluşturuyoruz. 1.parametre dosya yolunu, //2.parametre dosya varsa açılacağını yoksa oluşturulacağını belirtir, //3.parametre dosyaya erişimin veri yazmak için olacağını gösterir. StreamWriter sw = new StreamWriter(fs); //Yazma işlemi için bir StreamWriter nesnesi oluşturduk. sw.WriteLine("1.Satır:Merhaba"); sw.WriteLine("2.Satır:Dünya"); //Dosyaya ekleyeceğimiz iki satırlık yazıyı WriteLine() metodu ile yazacağız. sw.Flush(); //Veriyi tampon bölgeden dosyaya aktardık. sw.Close(); fs.Close(); //İşimiz bitince kullandığımız nesneleri iade ettik. } |
Dosyadan Veri Okuma İşlemi
Veri okuma işlemi için tekrar FileStream nesnesine ihtiyacımız olacak. Fakat okuma işlemi için StreamReader sınıfını kullanacağız. Okuma işlemi için dosyadanOku() metodunu oluşturarak, kod açıklamalarını yine satır aralarına ekledim.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
public static void dosyadanOku(){ string dosya_yolu=@"C:\metinbelgesi.txt"; //Okuma işlem yapacağımız dosyanın yolunu belirtiyoruz. FileStream fs = new FileStream(dosya_yolu, FileMode.Open, FileAccess.Read); //Bir file stream nesnesi oluşturuyoruz. 1.parametre dosya yolunu, //2.parametre dosyanın açılacağını, //3.parametre dosyaya erişimin veri okumak için olacağını gösterir. StreamReader sw = new StreamReader(fs); //Okuma işlemi için bir StreamReader nesnesi oluşturduk. string yazi=sw.ReadLine(); while (yazi != null) { Console.WriteLine(yazi); yazi = sw.ReadLine(); } //Satır satır okuma işlemini gerçekleştirdik ve ekrana yazdırdık //Son satır okunduktan sonra okuma işlemini bitirdik sw.Close(); fs.Close(); //İşimiz bitince kullandığımız nesneleri iade ettik. } |
C# ile dosyaya yazma ve okuma işlemlerini en basit haliyle detaylara girip kodların anlaşılabilirliğini azaltmadan anlatmaya çalıştım. Sorularınızı bana iletebilirsiniz.
Dostum peki text dosyasının içindekileri okuttuktan sonra en yüksel olan sayıyı herhangı bır texboxun textıne nasıl yazdırırız?
Hocam Merhaba ,
belli bir satırdan sonra yapmak istesek bunu nasıl yapabiliriz ?
Örneğin ;
metin.txt belgesinde 10. satırdan sonra eklemek istiyorum çünkü düzenlenecek olan dosyanın başına yazmam bir şeyi değiştirmiyor bana 10. satırdan sonrasına eklemem yarıyor
SqlConnection baglanti = new SqlConnection(“SERVER=SALO-BILGISAYAR\\SQLEXPRESS;Database=dso;Trusted_Connection=true;”);
ben bu server kısmını texten almak istiyorum.
Merhaba,
Örneğiniz dikkatimi çekti.Fakat yanlış yaptığınızı belirtmek isterim. “while (yazi != null)” bu kısım doğru değil.Çünkü string bir değişken asla ‘null’ olamaz.Orası while (yazi != “”) şeklinde değişmelidir.
String değer eğer ki boş ise null olabilir.
palaşımınz için teşekkürler fakat
Could not find a part of the path ‘\C:\metinbelgesi.txt’. bu hataı alıyorum projede yardımcı olurmusunuz .
Merhabalar sabit bir dosyayla ilgili bu anlattıgnız peki gridview de bulunan proje yolunu nasıl belirleyebiliriz bu işlemlerde ?
farzı misal
c:\Server\www\testProje\
bu dizindekileri ben access te bir tabloda tutmak istesem ve bunu gridview de listelesem gridde iligili yola çift tıklamamda yeni bir formda nasıl dosya ve klasörleri listeleyip güncelleyebilir ve yeni dosya Klasör Oluşturabilirim ?
Doğru ama dikkat edilmesi gereken sorgu ‘boş’ olma ihtimalini denetlemekse Lenght kontrolu daha uygun olur while( yazi.text.Lenght == 0) gibi bir kullanım daha doğru olur
Merhaba, peki .txt içerisinde sabit tab kullanılmış verileri raporlama yapabilmek için nasıl alabiliriim?
örneğin;
1234 melih at 11111111 33333333 01.01.2018
5432 hasan k 12121212 32343434 01.02.2018
4532 eren bi 33321222 44443434 04.02.2018
Ben bu satırlarda sadece adsoyad kısmındaki verileri almak istiyorum?
c# ta yeniyim kodları yazamam ama algoritmasını vereyim
tüm dosyayı satır satır bir diziye atacaksın
örn a[0] değeri =1234 melih at 11111111 33333333 01.01.2018 ‘ e eit olacak
daha sonra bir for ile tüm dizinin elemanlarını dönürmen lazm
for i in range(len(a)):
yeni[=]a[i].split(” “)//split ile elemanları booşluklarına göre ayırıyorsun örn; yeni diizsinin [2]. elemanı ‘at’ ,senin istediğin yenii[1],yeni[2] elemanları yani ad soyad
kodlamayı biliyorsan yaparsın
Merhaba benim bu konuda yardıma ihtiyacım var 1 tane combobox , 3 tane textbox olacak dosya konumu , dosya adı , dosya uzantısı şeklinde comboboxta bulunan elemanların hepsini istediği dosya konumuna istediği dosya adı ve istediği dosya uzantısı şeklinde kaydedicek ama bir türlü dosyayı oluşturamıyorum bana yardımcı olabilir misiniz?
Paylaşım için teşekkürler. Her aradığımda buradan kopyalıyorum rahat oluyor.
0 2 1 0 9 6
1 0 6 5 7 0
3 0 1 8 7 9
bu şekildeki .txt dosyasındaki verileri 2 boyutlu diziye nasıl çeviririz
Bu sorunun cevabı verildi mi ?
Benimde text dosyasından okudum bir seyi matrise atamam lazım?