C# ile XML dosyalarını okuma

Merhaba, C# ile ilgili makalelere devam ediyoruz. Bu yazımızda da C# ile XML dosyalarını okuma işlemini nasıl gerçekleştirebileceğimizden bahsedicem.

Öncelikle C# іlе XML dоѕуаlаrını оkumаk vе ауrıştırmаk іçіn XmlTextReаder nеѕnеѕіnі kullаnаbіlіrіz.

Başlayalım, şimdi kendіmіze dеnеmеlik bіr xml doѕуаѕı оluşturаlım:

<?xml version="1.0" encoding="windows-1254"?>
<Ogrenciler>
    <Ogrenci>Ayse</Ogrenci>
    <Ogrenci>Fatma</Ogrenci>
    <Ogrenci>Hayriye</Ogrenci>
</Ogrenciler>

C# ilе XML dоѕуаlаrını оkumаk іçіn önсе gеrеklі namеѕрaсеі еklеуеlim:

using System.Xml;

Dаhа sоnrа kullаnасаğımız XmlTеxtRеаdеr nеѕnеmіzі оluşturаlım:

string DosyaKonumu = "C:\\yturok.xml";
XmlTextReader XML = new XmlTextReader(DosyaKonumu);

Kауıtlаrı оkumаk іçіn Rеаd mеtоdunu döngü іlе bеrаbеr kullаnmаmız gereklі:

while (XML.Read())
{
    if (XML.Name == "Ogrenci")
    {
        Console.WriteLine(XML.ReadString());
    }
}

XML.Nаme özеllіğі döngüdе o аn оkunаn düğümün аdını vеrіr. Bіzіm оkumаmız gеrеkеn düğümlerin аdı Ogrеnсі оlduğu іçіn döngü içinе bіr іf kоşulu еklеdіk.
Okumа іşlеmі bіttіktеn ѕоnra dоsуа іlе bağlantımızı ѕоnlandırmaуı unutmауаlım:

XML.Close();

 

Continue Reading

C# ile MySQL Bağlantısı

Uzun süredir internet programcılığı dışında kendimi masaüstü programcılığı konusunda da geliştirmeye çalışıyorum. C# üzerine lise zamanından gelen bir altyapım olması sebebiyle yoğunlaşmaya karar verdim. Microsoft Visual Studio C#’ı öğrenmek için sürekli farklı projeler bulup onları hayata geçirmeye çalışıyorm. Şuanda da Robotik ve Otomasyon Kulübümüz için bir otomasyon sistemi üzerinde çalışıyorum.  Hazırladığım otomasyon sisteminde veritabanı bağlantısı büyük önem taşıyordu ve veritabanı olarak daha sonra hazırlanacak bir PHP web sayfasına da daha kolay uyum sağlayacağını düşündüğümden MySQL veritabanı kullanmakta karar verdim. C#’ta MySQL veritabanını kullanabilmeniz için bilgisayarda MySQL Connector/Net ve eğer MySQL bağlantısı yapabileceğiniz bir sunucunuz (MySQL veritabanı sağlayan bir hosting paketi / VPS, VDS sunucunuz) yoksa da bilgisayarınıza ek olarak MySQL kurmanız gerekiyor.

MySQL Connector/Net’i bilgsayarınıza indirip kurduktan sonra, Solution Explorer penceresinde “Reference” kısmına sağ tıklayıp “Add Reference” seçeneğine tıklıyoruz. Açılan pencereden MySQL.Data’yı seçiyoruz.(Burada bir kaç MySQL.Data seçeneği gözükebilir. Birini seçmeniz yeterlidir.) MySQL Connector/Net indirmek için buraya tıklayabilirsiniz.

c-sharp-mysql-data-connector

Veritabanı bağlantısını yapmak için ise şu şekilde pratik bir yol izleyebiliriz. Veritabanı bilgilerimizi her form içinde tanımlamak yerine Solution Explorer alanında bulunan App.Config’e tanımlayıp form sayfalarımıza buradan çekebiliriz.

Bu işlemi de kısaca şöyle özetleyelim:

C# MySQL Pratik Bağlantı

 App.config gördüğümüz alana tıklayıp </configuration> ifademizden hemen önce şu kodları ekliyoruz.

Burada Server alanındaki adres veritabanımız localde çalışıyorsa 127.0.0.1; online bir ortamda çalışıyorsa veritabanı sunucumuzun ip adresi olmalıdır.

DATABASE alanı veritabanımızın adı;

UID alanı veritabanı kullanıcımız;

PASSWORD alanı ise veritabanı kullanıcı şifremizi belirtmekte.

<connectionStrings>
<add name=”MySQL” connectionString=”SERVER=veritabani_adresi; DATABASE=database_adi; UID=database_kullanıcı; PASSWORD=database_sifresi” providerName=”MySql.Data.MySqlClient” />
</connectionStrings>

Şimdi veritabanımızı formumuza dahil etme kısmına geldik.

Veritabanı bağlantısı gereken formlarımızın en üst kısmına 2 adet kütüphanemizi eklememiz gerekiyor. Aksi halde programımız çalışmayacaktır.

using MySql.Data;
using MySql.Data.MySqlClient;

Ardından form içerisinde bir yerde 

public static string baglanti = ConfigurationManager.ConnectionStrings[“MySQL”].ToString();

komutu ile MySQL bağlantımı çağırıyorum. 

MySQL bağlantısını kullanmak için ben uygulamamda şu şekilde bir yol izledim. Buradaki select sorgunuz sizin farklı olacak tabi. 

MySqlConnection veritabani = new MySqlConnection(baglanti);
MySqlCommand vericek = new MySqlCommand(“SELECT * FROM ytuotoma_otomasyon.yk_admin WHERE yk_adi='” + this.yk_adi.Text + “‘ AND yk_sifre='” + this.yk_sifre.Text + “‘; “, veritabani);

 

Veritabanı bağlantısının çalışıp çalışmadığını ise formun içerisine şu kodları ekleyerek anlayabilirsiniz.

veritabani _vt = new veritabani();

if (_vt.baglanti_kontrol() == true)
{
 MessageBox.Show(“Başarılı”);
}

else
{
 MessageBox.Show(“Başarısız”);
}

Takıldığınız ya da hata aldığınız durumlarda yorum alanından sorunlarınızı ulaştırabilirsiniz. Bir sonraki C# makalemizde görüşmek üzere.

Continue Reading

Bilgisayarınıza OSD Programı

Bilgisayarımda kullandığım bir OSD programı ciddi manada performans sorunlarına yol açmaya başladı. Araştırmalarım sonunda işlevsel ve performans sorununa yol açmayan bir alternatif program bulmayı başardım. Windows 7’de sorun çıkarmadan çalışıyor, test ettim onayladım.

OSD programları notebooklarda FN tuş kombinasyonuna atanmış tuşların bilgilerini ekranda gösterir.

Program biraz eski grafikleri konusunda zayıf olduğunu söyleyebilirim. Ama benim gibi bilgisayar üzerinde sürekli yazı yazıyorsanız acaba Caps Lock açık kaldı mı, Num Lock açık mı diye vakit kaybetmezsiniz. Aktif olan bu özellikleri başlat menüsüne eklediği ufak ikonlar ile takip edebiliyorsunuz

Live! OSD
Live OSD başlat menüsü görünüm

 Ses açıp kısma gibi işlemler sırasında da ekran şu şekilde uyarı gösteriyor program

Live OSD Ses Açma, Kısma
Live OSD Ses Açma, Kısma

Son olarak indirme linki ve program ile alakalı açıklama resmi..

 

Live OSD İndir

Dosya Şifresi: gokselozardali.com ‘dur.

Continue Reading

C# ile ROT13 şifreleme algoritması

Selam, bugün size Rot13 algoritmasının ne olduğunu ve bu tekniğin C# ile nasıl kullanılacağından bahsedicem. Rot13 algoritma olarak harflerin yerini 13 karakter kaydırarak şifrelemeye ile çalışan en azından basit de olsa bir nevi şifreleme algoriması denilebilir. Eğer karakter Y’den sonra geliyorsa  13 karakter geriye, Y’den önce geliyorsa 13 karakter ileriye kaydırır. Özel karakterler ( #, ½, & gibi..) kullanıldığında ise şifreleme mantığı çalışmaz.

Basit bir C# örneği;

public string ROT13(string value)
{
    char[] array = value.ToCharArray();
    for (int i = 0; i < array.Length; i++)
    {
        int number = (int)array[i];
 
        if (number >= 'a' && number <= 'z')
        {
            if (number > 'Y')
            {
                number -= 13;
            }
            else
            {
                number += 13;
            }
        }
        else if (number >= 'A' && number <= 'Z')
        {
            if (number > 'Y')
            {
                number -= 13;
            }
            else
            {
                number += 13;
            }
        }
        array[i] = (char)number;
    }
    return new string(array);

 kullanmak içinse,

string metin = "GokselYTUROK";
string sifrelimetin = ROT13(metin);

 gibi kullanabiliriz…

Continue Reading