Microsoft Speech SDK ile basit bir uygulama

Windows işletim sistemlerinde yıllardır bir özellik olan metin okuma, gene yıllardır API desteği ile geliştiricilere olanak sağlanıyor. Geliştiriciler buradaki adresten indirdikten sonra yüklenmesi gerekiyor.

Ve Başlıyoruz..

Microsoft Visual Studio’da yeni bir Winforms uygulaması oluşturduktan sonra uygulama penceremize Toolbox ‘tan bir adet Textbox ve bir adet Button sürükleyip bırakıyoruz.

Continue reading

T.C. Kimlik Numarası Doğrulama (C#, VB)

Basit bir şekilde girilen 11 haneli T.C. kimlik numarasının doğrulaması şu algoritma sayesinde yapılabilir:

  1. 11 hanelidir.
  2. Her hanesi rakamsal değer içerir.
  3. İlk hane 0 olamaz.
  4. 1. 3. 5. 7. ve 9. hanelerin toplamının 7 katından, 2. 4. 6. ve 8. hanelerin toplamı çıkartıldığında, elde edilen sonucun 10′a bölümünden kalan, yani Mod10′u bize 10. haneyi verir.
  5. 1. 2. 3. 4. 5. 6. 7. 8. 9. ve 10. hanelerin toplamından elde edilen sonucun 10′a bölümünden kalan, yani Mod10′u bize 11. haneyi verir.

Bunu kontrol etmeniz için gerekli fonksiyonlar ise:

C#

public static bool TcDogrulaV2(string tcKimlikNo)
{
    bool returnvalue = false;
    if (tcKimlikNo.Length == 11)
    {
        Int64 ATCNO, BTCNO, TcNo;
        long C1,C2,C3, C4, C5,C6,C7,C8, C9,Q1,Q2;

        TcNo = Int64.Parse(tcKimlikNo);

        ATCNO = TcNo / 100;
        BTCNO = TcNo / 100;

         C1 = ATCNO % 10;  ATCNO = ATCNO / 10 ;
         C2 = ATCNO % 10;  ATCNO = ATCNO / 10 ;
         C3 = ATCNO % 10;  ATCNO = ATCNO / 10 ;
         C4 = ATCNO % 10;  ATCNO = ATCNO / 10 ;
         C5 = ATCNO % 10;  ATCNO = ATCNO / 10 ;
         C6 = ATCNO % 10;  ATCNO = ATCNO / 10 ;
         C7 = ATCNO % 10;  ATCNO = ATCNO / 10 ;
         C8 = ATCNO % 10;  ATCNO = ATCNO / 10 ;
         C9 = ATCNO % 10;  ATCNO = ATCNO / 10 ;
         Q1 = ((10-((((C1+C3+C5+C7+C9)*3)+(C2+C4+C6+C8))%10))%10);
         Q2 = ((10-(((((C2+C4+C6+C8)+Q1)*3)+(C1+C3+C5+C7+C9))%10))%10);

         returnvalue = ((BTCNO * 100)+(Q1 * 10)+Q2 == TcNo);
    }
    return returnvalue;
}

VB

Public Shared Function TcDogrulaV2(ByVal tcKimlikNo As String) As Boolean
     Dim returnvalue As Boolean = False
     If (tcKimlikNo.Length <> 11) Then
         Return returnvalue
     End If
     Dim TcNo As Long = Long.Parse(tcKimlikNo)
     Dim ATCNO As Long = (TcNo / 100)
     Dim BTCNO As Long = (TcNo / 100)
     Dim C1 As Long = (ATCNO Mod 10)
     ATCNO = (ATCNO / 10)
     Dim C2 As Long = (ATCNO Mod 10)
     ATCNO = (ATCNO / 10)
     Dim C3 As Long = (ATCNO Mod 10)
     ATCNO = (ATCNO / 10)
     Dim C4 As Long = (ATCNO Mod 10)
     ATCNO = (ATCNO / 10)
     Dim C5 As Long = (ATCNO Mod 10)
     ATCNO = (ATCNO / 10)
     Dim C6 As Long = (ATCNO Mod 10)
     ATCNO = (ATCNO / 10)
     Dim C7 As Long = (ATCNO Mod 10)
     ATCNO = (ATCNO / 10)
     Dim C8 As Long = (ATCNO Mod 10)
     ATCNO = (ATCNO / 10)
     Dim C9 As Long = (ATCNO Mod 10)
     ATCNO = (ATCNO / 10)
     Dim Q1 As Long =((10-(((((((C1+C3)+C5)+C7)+C9)*3)+(((C2+C4)+C6)+C8))Mod 10))Mod 10)
     Dim Q2 As Long =((10-(((((((C2+C4)+C6)+C8)+Q1)*3)+((((C1+C3)+C5)+C7)+C9))Mod 10))Mod 10)
     Return ((((BTCNO * 100) + (Q1 * 10)) + Q2) = TcNo)
End Function

Kaynak: Kodaman.org

C#: Onluk Tabanı Onaltılık Tabana Çevirme

Bugün Color kütüphanesi kullanırken renklerin onaltılık taban koduna ihtiyaç duydum ve onluk tabandaki RGB renk kodunu kısa bir yöntem ile 6 karakterli (Mesela beyaz: #FFFFFF) biçime çevirebileceğimizi öğrendim.

Bunun için (bir int değerini hexadecimal’a çevirme):

int decDeger = 255;
string hexDeger = decDeger.ToString("X");

Bir Decimal RGB kodu RRGGBB formatına çevirmek için:

Color c = Color.Red;

string hexColor = "" +
Convert.ToInt32(c.R).ToString("X") +
Convert.ToInt32(c.G).ToString("X") +
Convert.ToInt32(c.B).ToString("X");