Evet arkadaşlar, C# platformunda reçete sistemi yapacağız. Bir uygulama yaptınız ve bir takım giriş bilgileri var ve bu bilgiler sürekli değişiyor. Dolayısıyla, bu değişen bilgileri programa gömemeyeceğiniz için bir reçete sistemi yapmanız gereken durumlar olabilir. İşte bu yüzden bu yazıyı yazma gereği duyuyorum.
Reçete sisteminin formatını istediğiniz gibi oluşturabilirsiniz önemli olan bunu okuma algoritmasını yazabilmek. Ben genelde ; (noktalı virgül) karakterini kullanıyorum. Aşağıdaki gibi bir text dosyasına 2 adet reçete bilgisi her bir reçete 3 değişken içermektedir. C# ile text dosyasını okuduğunuz zaman tek seferde bir satırı veya bir karakteri okuyabilirsiniz. Bu uzun string arasından istediğiniz değerleri çekebilmeniz yani ayıklayabilmeniz için aralara ; gibi belirgin karakterler koymanız gerekmektedir.
// www.kaizen40.com using System; using System.IO; using System.Linq; using System.Windows.Forms; namespace ReceteSistemi { public partial class Form1 : Form { private int recete_adedi; private string[,] recete = new string[2, 3]; // 2 satir 3 sutun public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { //****************** reçeteleri yükle *********************// // satır sayısını bul StreamReader str = new StreamReader("receteler.txt"); while (str.Read() > 0) { str.ReadLine(); recete_adedi++; } str.Close(); // receteleri oku string recete_line = ""; string bilgi = ""; int index = 0; for (int j = 0; j < recete_adedi; j++) { recete_line = File.ReadLines("receteler.txt").Skip(j).Take(1).First(); for (int i = 0; i < recete_line.Length; i++) { char ch = recete_line[i]; if (ch == ';') { recete[j, index] = bilgi; // ilk bilgi recetenin ilk sutunu index++; bilgi = ""; } else { bilgi += ch; // birden fazla karakter varsa birleştir } } recete_line = ""; bilgi = ""; index = 0; } // textboxlara yaz textBox1.Text = recete[0, 0]; textBox2.Text = recete[0, 1]; textBox3.Text = recete[0, 2]; textBox4.Text = recete[1, 0]; textBox5.Text = recete[1, 1]; textBox6.Text = recete[1, 2]; } } }
Kodu incelediğiniz zaman tek seferde bir satır okunduktan sonra tek tek karakterler okunarak her ; karakteri geldiğinde paketi birleştirip kendi oluşturduğumuz recete[,] stringine yazılmaktadır. Ondan sonra istediğimiz gibi bu bilgileri kullanabiliriz.
Farkettiyseniz receteler.txt dosyasının tam adresi yok. Eğer receteler.txt dosyanız uygulamanın .exe dosyasıyla aynı adreste ise sadece isminiz yazmanız yeterli. Farkllı adreste ise tam adresi yazmak zorundasınız.
0 yorum