using _21_ConstructorChaining.Demos.DosyaIslemleri.Models;
namespace _21_ConstructorChaining.Demos.DosyaIslemleri
{
public class DosyaIslemleriDemo
{
public void Calistir()
{
List<Ogrenci> ogrenciler; // listeleme için öğrenci koleksiyonu
Ogrenci yeniOgrenci; // metinsel dosyaya eklenecek öğrenci
//OgrenciDosya ogrenciDosya = new OgrenciDosya(@"C:\TMP\ÖğrenciListesi.txt"); // ogrenciDosya instance'ı (new'lenmiş obje)
// 1. yöntem: örnek dosyalar için bu projenin Dosyalar klasöründeki ÖğrenciListesi.txt dosyası
// C:\TMP klasörü altına kopyalanabilir
OgrenciDosya ogrenciDosya = new OgrenciDosya("../../../Dosyalar/ÖğrenciListesi.txt"); // ogrenciDosya instance'ı (new'lenmiş obje)
// 2. yöntem: örnek dosya için projenin exe dosyasının bulunduğu klasörden, "/" ile ayrılarak
// ".." ile üst klasörlere ulaşılabilir,
// örneğin exe dosyasının bulunduğu klasör üzerinden: "C:\03_OOP\21_ConstructorChaining\bin\Debug\net8.0"
// ".." ile "C:\03_OOP\21_ConstructorChaining\bin\Debug" klasörüne,
// "../.." ile "C:\03_OOP\21_ConstructorChaining\bin" klasörüne,
// "../../.." ile de "C:\03_OOP\21_ConstructorChaining" klasörüne ulaşılabilir,
// örnek dosyamız "Dosyalar" klasöründe olduğundan "../../../Dosyalar/ÖğrenciListesi.txt" yazmalıyız
// öğrencilerin metinsel dosyadan okunarak koleksiyonun doldurulması
ogrenciler = ogrenciDosya.OgrencileriGetir();
// öğrenci koleksiyonunun konsola yazdırılması
Console.WriteLine("Öğrenciler:");
foreach (Ogrenci ogrenci in ogrenciler)
{
Console.WriteLine($"Adı: {ogrenci.Adi}\nSoyadı: {ogrenci.Soyadi}\nYaşı: {ogrenci.Yasi}");
}
// yeni öğrenci bilgisinin kullanıcıdan alınması ve dosyaya eklenmesi
yeniOgrenci = new Ogrenci();
Console.WriteLine("\nYeni Öğrenci Girişi");
Console.Write("Adı: ");
yeniOgrenci.Adi = Console.ReadLine();
Console.Write("Soyadı: ");
yeniOgrenci.Soyadi = Console.ReadLine();
Console.Write("Yaşı: ");
yeniOgrenci.Yasi = Convert.ToInt32(Console.ReadLine());
ogrenciDosya.OgrenciEkle(yeniOgrenci);
// öğrencilerin tekrar metinsel dosyadan okunarak koleksiyonun doldurulması
ogrenciler = ogrenciDosya.OgrencileriGetir();
// öğrenci koleksiyonunun tekrar konsola yazdırılması
Console.WriteLine("\nÖğrenciler:");
foreach (Ogrenci ogrenci in ogrenciler)
{
Console.WriteLine($"Adı: {ogrenci.Adi}\nSoyadı: {ogrenci.Soyadi}\nYaşı: {ogrenci.Yasi}");
}
}
}
}