C# – Text Dosyası ile Reçete Sistemi Nasıl Oluşturulur

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.

C# Reçete Sistemi Yapmak
C# Reçete Sistemi Yapmak

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.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.

This site uses Akismet to reduce spam. Learn how your comment data is processed.