- 28 Mar 2020
- 6,312
- 4,767
Giriş
Merhaba, C# uygulama geliştirme serimizin ikinci yazısına hoş geldiniz.
Bu yazımızda verilen metnimizi, ikili sayı sistemine (binary) dönüştüren bir program yapacağız.
Serinin önceki yazısını okumak isteyenler için: Örnekler İle C# Geliştirme - Bölüm 1
İyi okumalar dilerim!
Yapılış
İlk önce projemizi oluşturmakla başlayalım.
Ben programın ismini "Text to Binary" şeklinde koyuyorum, siz de kendinize göre isimlendirebilirsiniz.
Proje oluştuktan sonra formun ismini Özellikler > Text bölümünden 'Text to Binary' değiştiriyorum.
Sonrasında Araç Kutusundan aşağıdaki araçları ekliyorum.
2 adet GroupBox
2 adet RichTextBox
2 adet Button
Tasarımımız tamamlandıktan sonra, Convert yazılı tuşumuzun üstüne basıyoruz ve click eventine giriyoruz.
Burada dönüşümü yapması için Donustur() adlı bir metot oluşturuyoruz.
Bu metodumuzun içine de argüman olarak 'string Metin' yazıyoruz.
Bu metot bizden alacağı değeri bir döngünün içine atacak ve dönüştürme işlemi yaptıktan sonra return ile geri döndürecek.
Kodumuz yukarıdaki gibi gözükecek.
Şimdi satır satır kodumuzu inceleyelim ki mantığını daha iyi anlayın.
Öncelikle Button1 kodlarının içeriğini inceleyelim.
C#:
string metin = richTextBox1.Text;
// Bu kısım da bir metin değişkeni oluşturuyoruz ve içine değer olarak richTextBox1 içindeki yazımızı aktarıyoruz.
string binaryMetin = Donustur(metin);
// Bu kısımda ise binaryMetin adında bir değişken oluşturuyoruz ve içine Donustur() adlı metodumuzdan gelen değeri aktarıyoruz.
richTextBox2.Text = binaryMetin;
// Burada ise click eventimizin son olayı gerçekleşiyor. BinaryMetin adındaki değişkenimizden dönen değeri RichTextBox2 içine yazdırıyor.
Şimdide Donustur() metodunun içeriğini inceleyelim.
C#:
byte[] bytes = Encoding.UTF8.GetBytes(metin);
/*
Burada bytes adında bir byte değişkeni oluşturduk.
Sonrasında metnimizi binary dönüşümü için metnimizi ascii haline çeviriyoruz ve bytes içine aktarıyoruz.
Buradaki işlemi anlamayanlar için, örneğin metnimizin içeriği 'D' olsun. Bunun Ascii tablosundaki değeri 68'tür, yani değerimizi 68'e eşitler.
Biraz daha uzun bir metinden örnek vermek gerekirse 'ABCD' olan bir değer '65666768'şeklinde çevrilir.
*/
string binaryMetin = "";
// Burada ise az sonraki döngüden alacağımız değerleri içine atmak için kullanacağımız değişkeni oluşturuyoruz.
foreach (byte b in bytes)
{
binaryMetin += (Convert.ToString(b, 2).PadLeft(8, '0') + " ").TrimEnd();
/*
Bu kısımda fonksiyonları tek tek açıklayalım.
Convert.ToString(b, 2) bu kod elimizdeki b değişkenini ikili sayı sistemine çevirmek için kullanılıyor.
PadLeft(8, '0') ise her 8 karakterden sonra değere '0' eklemek için kullanılıyor.
Son olarak ise kodun sonunda + " " bulunuyor. Bu da her 8 karakterden sonra boşluk olması için var.
Eğer o olmasa sonuç şu şekil oluyor: "01100111011100100110100101101101"
Eklediğimiz için ise şu şekilde olacak: "01100111 01110010 01101001 01101101 "
Fark ettiyseniz en sonda fazladan bir boşluk var, onu silmek için ise kodumuzun sonunda TrimEnd() ekliyoruz.
*/
}
Evet, dönüştürme işlemimiz tamamlandı. Şimdi de silme kodlarını yazalım.
Bunun için Clear yazan tuşun üstüne iki kere tıklıyoruz ve kodlarının içine giriyoruz.
C#:
richTextBox1.Clear();
richTextBox2.Clear();
Burada ise richTextBoxlarımız içeriğini Clear(); fonksiyonu ile temizliyoruz.
Bunun yerine aşağıdaki versiyonunu da kullanabilirsiniz.
C#:
richTextBox1.text = "";
richTextBox2.text = "";
Evet, temizleme işlemimizde tamamlandı.
Şimdi programın çalışma şekline bakalım.
Kapanış
Evet, bugünkü projemiz bitmiş bulunmakta.
Gelecekte ki derslerde görmek istediğiniz bir program olursa yazabilirsiniz.
Okuduğunuz için teşekkür ederim, iyi forumlar!