String Methods etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
String Methods etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

29 Nisan 2012 Pazar

MS SQL 'de String Functions

Merhaba arkadaşlar.
Sql server 'da verileri listelemek için şimdiye kadar "select" ifadesi kullandık. Bunları bazen "view" bazen de "function" lar ile gerçekleştirdik. İhtiyacımıza göre kendi view yada fonksiyonumuzu oluşturmaktan ziyade, bizim için bu temel işleri sistemde hazır tanımlı "System Functions" fonksiyonlarını kullanarak yapabiliriz. İşte bu yazıda sistem fonksiyonları içerisinde tanımlı "String Functions" ları inceleyeceğiz. String fonksiyonlar, string ifadeleri istediğimiz şekilde manüpile ederek geriye bir değer döndürürler. String fonksiyonlar "Object Explorer" penceresinde tüm veritabanlarının altında "Programmabilty", "Functions", "System Functions", "String Functions" sekmesinin altında tanımlı halde bulunurlar.
Görüldüğü üzere hemen hemen hepsi c sharp 'tan gözümüze tanıdık gelmekte. Şimdi bu fonksiyonların bazılarını inceleyelim. Tabi ki herkes tarafından bilinen "Northwind" veritabanını kullanacağız. Ama önce şunu hatırlayalım. String bir ifadenin içinde ' (özel karakter) kullanmamız gerekiyorsa iki kere ('') kullanmalıyız.
SELECT 'Galatasaray''ın Şampiyonluğu'    --Galatasaray'ın Şampiyonluğu
  • LEN: Fonksiyonu bir string ifadenin uzunluğunu sayısal olarak döner. 
     SELECT FirstName,LEN(FirstName) FROM dbo.Employees   
          Şeklinde kullanılır. Personellerin adlarının uzunluğunu geriye döndürür. Fakat "len" fonksiyonu buşlukları saymaz. Aşağıdaki sorguda "len", 6 döner. 
     SELECT LEN('    Gaffar    ')  
     
          Peki ya sayısal bir kolonun uzunluğunu öğrenmeye çalışırsam. 
     SELECT LEN(UnitPrice),UnitPrice FROM dbo.Products
          Görüldüğü üzere "." (nokta) karakterini bile sayacaktır.
  • ToLower-ToUpper: "ToLower" string ifadeyi küçük harflerle, "ToUpper" ise büyük harflerle yazdırmaya yarar. 
     SELECT LOWER('GaFFaR SaLKıM')      --gaffar salkım
     SELECT UPPER('gAffAr sAlkIm')      --GAFFAR SALKIM
  • LTrim-RTrim: Sql server 'da, c sharp 'taki "Trim" fonksiyonu yoktur. Bunun yerine "LTrim" string ifadenin solundaki boşluklar, "RTrim" ise sağındaki boşlukları siler. İki taraftaki boşlukları da silmek isteniyorsa bu iki fonksiyonu içiçe kullanmak gerekir.
     SELECT LTRIM('    Gaffar    ')                  --Gaffar    
     SELECT RTRIM('    Gaffar    ')                  --    Gaffar
     SELECT RTRIM(LTRIM('    Gaffar Salkım    '))    --Gaffar
  • Reverse: String bir ifadeyi tersten yazdırır. 
     SELECT REVERSE('Gaffar Salkım')    --mıklaS raffaG
  • Substring: String bir ifadenin verdiğimiz index numarasından başlayarak, istediğimiz kadar karakterini almamızı sağlar. Geriye yine string bir ifade döner.
     SELECT SUBSTRING('Şampiyon Galatasaray',10,6)   --Galata
          Örneğin gelin personellerin adının son 3 harfini  yazdıralım.
     SELECT FirstName,SUBSTRING(FirstName,(LEN(FirstName)-2),3) FROM dbo.Employees

  • Space: Verilen sayı kadar boşluk karakteri atar.         
     SELECT 'Gaffar'+SPACE(5)+'Salkim'    --Gaffar   Salkim
  • Ascii: Verilen karakterin "ascii" karşılığını verir.
     SELECT ASCII('A')                    --65
  • Char: Verilen "ascii" kodun "char" karşılığını verir.
     SELECT CHAR(65)                      --A
  • CharIndex: Birinci parametresindeki stringin, ikinci stringdeki konumunu yani indexini döndürür. Bulamazsa 0 döndürür.
     SELECT CHARINDEX('büyük','En büyük Galatasaray')   --4  
  • Replicate: Verilen string ifadeyi, verilen sayı kadar tekrar ettirerek yazar.
     SELECT REPLICATE('OK',3)    --OKOKOK
  • Left: Verilen stringin başından verilen sayı kadar alır.
     SELECT LEFT('asa',2)        --as
  • Right:  Verilen stringin sonundan verilen sayı kadar alır.
     SELECT RIGHT('asa',2)       --sa
  • Stuff: Bu fonksiyon aşağıdaki örnekte 1. stringden 2. karakterinden başlayarak 3 karakter siler. Silinenler yerine 2. stringi koyar.
     SELECT STUFF('Gaffar',2,3,'Salkim')    --GSalkimar
  • Str: Verilen "double" sayıyı stringe dönüştürür. 1. parametresi "double" sayı, 2. 'si "double" sayının uzunluğu, 3. 'sü "decimal" kısmının uzunluğudur.
     SELECT STR(123.4,6,1)      --123.4

Umarım yardımcı olabilmişimdir.

Başka bir yazıda görüşmek dileğiyle, hoşçakalın...

15 Nisan 2012 Pazar

C# 'da ListBox 'a Baş Harfler Büyük Şekilde Yazdırma

Merhaba arkadaşlar.
Yine string metodlarını pekiştirmek açısından ufacı ve tefecik bir örnek ile karşınızdayım. TextBox kontrolüme girdiğim bir cümlenin baş harfleri büyük olacak şekilde ListBox kontrolüme yazdırmak istiyorum. İlk önce TextBox 'ımı boş mu dolu mu diye kontrol etmeliyim. Daha sonra TextBox 'ıma girilen kelimelerimi string bir diziye aktarmalıyım arkadaşlar. Bunu yaparken de yine çok kullanışlı bir strin metotdan yardım alacağız. İşte bu metot "Split" metodu. Parametre olarak birden fazla parametre ala bilen bir metot. String metodlarını daha ayrıntılı inceleyeceğiz arkadaşlar.
ListBox kontrolünde cümlemi tek satır halinde yazmak istiyorsam ListBox 'ıma cümlemin son halini tek seferde eklemeliyim. Bu teknik için geçici bir değişkene ihtiyacım var. Hoş tüm değişkenler geçici ! Bu taşıyıcı değişkenimin adı bu örnekte "kelime" arkadaşlar. Daha sonra dizimin elemanlarını bir for döngüsüne alarak tüm elemanlarını tek tek geziyorum. Herbir elemanın baş harfini "SubString" metoduyla alıp, bu harfi "ToUpper" metoduyla büyük harf yapıyorum. Kelimenin geri kalanını ine "SubString" metoduyla alıp, bu harfleri "ToLower" metoduyla küçük harf yapıyorum. Sonra bu stringleri "+=" atama operatörleri ile her döngüde "kelime" değişkenime atıyorum. En son artık ListBox 'a atma işlemi kalıyor.

        private void btnToUpper_Click(object sender, EventArgs e)
        {
            if (!string.IsNullOrWhiteSpace(textBox1.Text))
            {
                string[] kelimeler = textBox1.Text.Split(' ');
                string kelime = "";
                for (int i = 0; i < kelimeler.Length; i++)
                {
                    kelime += kelimeler[i].Substring(0, 1).ToUpper() + kelimeler[i].Substring(1).ToLower() + " ";
                }
                listBox1.Items.Add(kelime.Trim());
            }
        }




ListBox kontrolünün kullanımını kavramak açısından güzel bir örnek olabilir arkadaşlar. 
Memnun kalmanız dileğiyle esenlikler dilerim...

C# 'da Kayan Yazı, Yanar Dönerli

Merhaba arkadaşlar.
Eminim bir çok kayan yazı örneği uygulaması yapmışsınızdır. Fakat örneğimizi biraz daha hareketlendirmek isteyebiliriz.  Örneğin aşağıdaki gibi bir yazımız olsun. Yazımızın sonunda 10 tane boşluk koyalım. Timer başladığında bir müddet sonra yazımız Label 'ımızın tam ortasına gelecektir. İşte tam bu sırada yazımızın kayması dursun ve yazımızın rengi ile arka plan rengi değişsin (ters psikoloji). Bu işlemi de 8 kere tekrarladıktan sonra yazımız tekrar kaymaya başlasın ve bu işlem böyle sürüp gitsin.
Bu örnekte bir ters psikoloji görüyoruz. If else karar yapılarında "Ternary If" örneği en iyi, ters psikoloji örneği yaparken anlaşılır arkadaşlar. Ternary if tekniğini kavramak ve string fonksiyonların üzerinde geçmek açısından iyi bir örnek.

        private void button1_Click(object sender, EventArgs e)
        {
            timer1.Start();
        }

        int sayac = 0;
        private void timer1_Tick(object sender, EventArgs e)
        {
            if (label1.Text.StartsWith("     ") && label1.Text.EndsWith("     "))
            {
                label1.BackColor = label1.BackColor == Color.Yellow
                    ? Color.Red
                    : Color.Yellow;
                label1.ForeColor = label1.ForeColor == Color.Yellow
                    ? Color.Red
                    : Color.Yellow;
                sayac++;
                if (sayac < 8) return;
                sayac = 0;
            }
            label1.Text = label1.Text.Substring(1) + label1.Text.Substring(0, 1);
        }



Bir başka yazıda görüşmek dileyi ile iyi günler diliyorum...