ŞİİR DERYASI


8 Şubat 2009 Pazar

Delphi

Metin Fonksiyonları


Bu yazıda da Delphi'nin sunduğu çok çeşitli metin fonksiyonlarından benim en yaralı gördüklerime değineceğiz. Benim en yararlı gördüklerim diye özellikle yazdım çünkü siz daha farklı fonksiyonlara ihtiyaç duyabilirsiniz. Buradaki fonksiyonların da anlatıldığı Delphi Help'i kurcalarsanız mutlaka işe yarar bir şeyler bulursunuz :) Haydi başlayalım!

Copy fonksiyonuyla başlayabiliriz sanırım. Bu fonksiyon uzun bir metnin sadece belirli bir kısmını çıkartıp kullanmak istediğinizde işe yarar. İlk parametresi string tipinde bir dğeişkendir -ki buraya ana metni içeren değişkeni yazmalısınız- ikinci parametre başlama karakteri, son parametre de buradan itibaren kaç karakter okunacağıdr. Fonksiyondan geriye parameterelere göre çıkartılmış metin döner, Ana metinde bir değişiklik yapılmaz. Başlangıç karakteri 1'den başlar. Yani ilk karakter için buraya 1, sonraki için 2 vs. yazmalısınız. Okunacak karakter sayısı da başlangıç karakterinden "itibaren" "kaç karakter okunacağını" belirtiyor. Yani Copy(metin,1,1); fonksyionundan geriye 1 karakter içeren -metin değişkeninin ilk karakteri- bir string dönüyor.

Delete fonksiyonu verdiğiniz stringin belirli bir kısmını siler. Parametrelerinin çalışma şekli aynı "Copy" fonksiyonu gibidir. İlk parametre üzerinde işlem yapılacak string değişkendir, ikinci parametre silinmeye başlanacak karakter numarasını gösterir. Yine ilk karakter 1 ile temsil edilir. Sonraki parametre de belirtilen başlangıç karakterinden sonra kaç karakter silineceğini gösterir. Burada dikkat edilmesi gereken nokta bu fonksyionun geriye bir değer döndürmek yerine işlemi direk verilen string değişkeni üzerinde yapması ve sonucu yine bu değişkene koymasıdır.

Pos fonksiyonu bir metin içinde başka, daha kısa bir metni aramak için kullanılır. Örneğin bu yazı içinde "metin" kelimesini aramak için kullanılabilir. En büyük dezavantajı aranan metnin asıl metin içinde birden fazla olması durumunda sadece ve daima onun ilk bulunduğu yer ile ilgili bilgi alabilmeniz. Pos fonksiyonu ilk parametre olarak arancak metni(altmetin) alır. İkinci parametre olarak da içinde arama yapılacak metni içeren değişken adını girmelisiniz. Fonksiyondan geriye dönen değer aranan metnin bulunduğu İLK karakterin adresini verir. Eğer geriye "0" değeri dönmüşse altmetin anametin içersinde bulunamadı demektir.

PosEx fonksiyonu Pos fonksiyonundan farklı olarak aramaya başlayacağı başlangıç adresini de ister. Yani aramaya metinin 10'uncu karakterinden başlayabilrisiniz. Ki bu durumda Pos fonksiyonu gibi buradan sonraki ilk eşlemenin başangıç adresi size verilir.

AnsiLowerCase fonksiyonu verilen metnin tüm harflerini küçük harfe çevirir ve sonuç olarak bunu döndürür. Aynı şekilde AnsiUpperCase fonksiyonu da verilen metnin tüm harflerini büyük harf yapar. Bu iki fonksiyonun da tek zayıf noktası küçük "i" ve büyük "I" ları İngiliz Alfabesi'ne göre dönüştürmeleri. Yani "I=i" oluyor, buna dikkat edin.

AnsiReplaceStr fonksiyonu verilen bir metinde, parametre olarak verilen altmetinlerin tamamını başka bir metinle değiştirmeye yarar. Örneğin bu yazıdaki tüm noktaları virgüle çevirmek isteseydik bu yazıyı içeren değişkeni, ardından '.', ve ',' verdiğimizde[AnsiReplaceStr(degisken , '.' , ',')] fonksiyondan geriye dönüştürülmüş metin çıkacaktı. Unutmayın, tüm noktalar... Fonksiyonun ana metinde değişiklik yapmak yerine değiştirilmiş metni sonuç oalrak verdiğini unutmayın.

Length fonksyionu adından da anlaşılacağı üzere kendisine parametre olarak verlien metinin uzunluğunu döndürüyor :)

Trim fonksiyonu metinin başındaki ve sonundaki boşlukları atar ve bu halini sonuç olarak döndürür. TrimLeft ve TrimRight diye iki versiyonu daha vardır. Bunlardan left olan soldaki boşlukları, right olansa sağdaki boşlukları atar ve bu hali döndürür.

Evet yazımız bu kadarcık ama Delphi'nin yardım dosyalarında daha birçok metin fonksiyonu var. Ben sadece en çok işinize yarayabilecekleri seçip anlatmaya çalıştım dediğim gibi. Umarım işinize yarar...


--------------------------------------------------------------------------------

Hiç yorum yok:

Yorum Gönder