C# Sözlük Yapımı..

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    rappermcs
    rappermcs's avatar
    Kayıt Tarihi: 04/Ekim/2002
    Erkek

    Selam arkadaşlar,

    Bu vereceğim örnek ile StreamReader, StreamWriter kullanımının yanında dizi değişken ve dictionary kullanımını kafanızda oturtabilirsiniz..Tabi bunların yanında ufak split, rerplace vs gibi methodlarda var.

     

    Grafik arayüzde ihtiyacımız olanlar:

     

    textbox txtkelime
    textbox txtAnlam
    textbox txtkey
    button btnekle
    button btnarama
    label lblanlam

     

    Bu ufak programcık ne iş yapar:

    kelime ve anlam boxlarına girilen verileri bir .txt de depolayarak istendiğinde sorgulanması işini gerçekleştirir.

    Satır satır kodları açıklamayacağım. Anlaşılmayan bölümleri belirttiğiniz takdirde bir sonraki post da açıklamaya çalışacağım..

     

    code:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.IO;

    namespace winsozluk
    {
        public partial class Form1 : Form
        {
            // genel sekme.
            string DbAdres = @"C:\Users\rappermcs\Desktop\uygulama DENEME\DB\texts.txt";

            public Form1()
            {
                InitializeComponent();
            }

            private void btnEkle_Click(object sender, EventArgs e)
            {
                if (txtkelime.Text==string.Empty)
                {
                    MessageBox.Show("Bir Kelime Yazmadınız.");
                    return;
                }

                if (txtAnlam.Text==string.Empty)
                {
                    MessageBox.Show("Bir Anlam Yazmadınız.");
                    return;
                    
                }

                // Sözlük Db ye yeni bir Kelime Ekler.
                
                string Kelime = txtkelime.Text.ToLower();
                string Anlam = txtAnlam.Text.ToLower();
                string Satir = Kelime + ":" + Anlam + ";";
               
                // kelime daha önce kayıt edilmişmi?
                StreamReader sr=new StreamReader(DbAdres);
                string db=sr.ReadToEnd();
                sr.Close();
                db = db.Replace("\r\n", "");

                string[] arSatir = db.Split(';');
                Dictionary<string, string> temp_dic = new Dictionary<string, string>();
                for (int i = 0; i < arSatir.Length; i++)
                {
                    if (arSatir[i].Length != 0)
                    {
                        string xkelime = arSatir[i].Split(':')[0];
                        string xanlam = arSatir[i].Split(':')[1];
                        temp_dic.Add(xkelime, xanlam);

                    }
                }

                if (temp_dic.ContainsKey(Kelime))
                {
                    MessageBox.Show("Bu kelime daha önce eklenmiş.");
                    txtAnlam.Clear();
                    txtkelime.Clear();
                    return;
                }

                StreamWriter sw = new StreamWriter(DbAdres, true);
                sw.WriteLine(Satir);
                sw.Close();
                MessageBox.Show("Kelime DB ye Eklendi.");
                txtAnlam.Text = txtkelime.Text = string.Empty;

                 

            }

            private void btnArama_Click(object sender, EventArgs e)
            {
                if (txtkey.Text==string.Empty)
                {
                    MessageBox.Show("aranacak bir kelime yazmadınız.");
                    return;
                }


                StreamReader sr = new StreamReader(DbAdres);
                string db = sr.ReadToEnd();
                sr.Close();
                db = db.Replace("\r\n", "");
                string[] satirlar = db.Split(';');
                Dictionary<string, string> dic = new Dictionary<string, string>();
                for (int i = 0; i < satirlar.Length; i++)
                {
                    if (satirlar[i].Length!=0)
                    {
                        string kelime = satirlar[i].Split(':')[0];
                        string anlam = satirlar[i].Split(':')[1];
                        dic.Add(kelime, anlam);
                    }
                    
                }

                if (!dic.ContainsKey(txtkey.Text.ToLower()))
                {
                    MessageBox.Show("Aradığınız Kelime Bulunamadı.");
                    txtkey.Clear();
                    return;
                }

                
                lblAnlam.Text = dic[txtkey.Text.ToLower()];


            }

            private void txtkey_KeyPress(object sender, KeyPressEventArgs e)
            {
                                        
                
            }

            private void txtkey_KeyDown(object sender, KeyEventArgs e)
            {
                             
                
            }
        }
    }


    Paslanmış bir uygulama geliştirici.. ##
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    rappermcs
    rappermcs's avatar
    Kayıt Tarihi: 04/Ekim/2002
    Erkek

    Burası da benim..:)

     

     

    Not: C/P yorumlarına direk cevabım şudur ki; Evet c/p yaptım ama nereden kendi yazdığım visual studio 2008 IDE içerisinden.. :)


    Paslanmış bir uygulama geliştirici.. ##
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    solstice
    solstice's avatar
    Kayıt Tarihi: 04/Nisan/2008
    Erkek

    teşekkürler hocam kodları alim kenara  bakarım sırası gelince :)


    https://www.youtube.com/watch?v=k6LrGZGqYn8
Toplam Hit: 4262 Toplam Mesaj: 3