Çok zamandır programlama dillerine yönelik bir şeyler yazmıyordum, bunun uzunca bir süredir farkındaydım. 13-14 senelik eski dost ASP ile ilgili bir şey gerekiyordu ve yazmaya başladım. Normal şartlar altında çalışmasını beklediğim halde, her zaman olduğu gibi yine çalışmama sorunu vardı. İnatla çalışması gerektiğine inandığım için; kontrol ettim, denedim, kontrol ettim ve tekrar denedim ama olmadı. İnternette de bu konu hakkında geçerli bir bilgi olmadığı için paylaşmak istedim. Sanırım Türkçe ve yabancı hiç bir kaynak yok.
Bu yazıya eğer Google aramaları ile geldiyseniz, büyük ihtimalle saatlerce uğraşmış olabilirsiniz ve az sonra bir gününüzü kurtarmış olacaksınız :)
Önce HarfBuyult adında bir fonksiyon oluşturuyoruz. Sadece 1 tane input alacak olan bu fonksiyonda harfleri büyütme işlemi yapacağız. Bu fonksiyonu genel olarak harfleri büyütmek isterseniz de kullanabilirsiniz.
Function HarfBuyult(gelen)
If Not IsNull(gelen) Then
gelen=Ucase(gelen)
gelen=Replace(gelen,”ı”,”I”)
gelen=Replace(gelen,”i”,”İ”)
gelen=Replace(gelen,”ğ”,”Ğ”)
gelen=Replace(gelen,”ü”,”Ü”)
gelen=Replace(gelen,”ş”,”Ş”)
gelen=Replace(gelen,”ç”,”Ç”)
gelen=Replace(gelen,”ö”,”Ö”)
End IfHarfBuyult=gelen
End Function
Burada dikkatinizi çekebilecek bir nokta, Ucase() fonksiyonu olabilir. Upper Case’in kısaltması olan Ucase, tüm karakterleri büyük harfe çevirmemize yaramakta. Ayrıca, öncelikli olarak gelen değerin boş olup olmadığı kontrol ediyoruz. Çok ölümcül bir kontrol olmasa da bazı durumlarda gerekebilir. Ardından; Türkçe karakterler konusunda sorun olacağı için Türkçe karakterleri Ucase fonksiyonundan bağımsız olarak tek tek biz büyültüyoruz. Buraya kadar her şey normal ve çok fazla karışık değil. Ancak, bir sonraki fonksiyonumuz işi tamamlayacak.
Function IlkHarfBuyuk(mustafacagri)
parcalar = Split(mustafacagri,” “)
For i = 0 To ubound(parcalar)
ilkharf2 = Left(parcalar(i),2)If ilkharf2 = “ı” OR ilkharf2 = “i” OR ilkharf2 = “ğ” OR ilkharf2 = “ü” OR ilkharf2 = “ş” OR ilkharf2 = “ç” OR ilkharf2 = “ö” then
ilkharf = HarfBuyult(Left(parcalar(i),2))
kesinti = 2
else
ilkharf = HarfBuyult(Left(parcalar(i),1))
kesinti = 1
End if
gerikalan = Right(parcalar(i),Len(parcalar(i))-kesinti)
cumle = cumle & ilkharf & gerikalan & ” ”
NextIlkHarfBuyuk = cumle
End Function
Yardımcı fonsiyonumuz HarfBuyult()‘ten sonra şimdi sıra geldi ana fonksiyonumuz IlkHarfBuyuk()‘e.
Bu fonksiyonda mustafacagri adında bir input alıyoruz. Ardından gelen cümleciğimizi parcalar = Split(mustafacagri,” “) ile parçalara ayırıyoruz. Parçalara ayırma fonksiyonumuz split ve ” ” yani boşluklara göre ayrı kelimecikler oluşturacağız.
Türkçe Karakterler
Türkçe karakterlerin uzunlukları diğer karakterlere nazaran 2 olarak değerlendirilir. Yani ASP ile
response.write “çağrı” koduyla çağrı çıktısını aldığınızda bunun uzunlu 5 değil 7’dir.
response.write len(“çağrı”) ‘ 7 sonucunu alırsınız.
Bu yüzden ilkharf2 = Left(parcalar(i),2) eşliğinde ilk karakter kontrolü yapıyoruz. Eğer Türkçe karakter ise 2 uzunluğu kaplayan bir alana sahip olacağı için de; left(deger,2) mantığıyla ilk 2 alanı (aslında karakter demek isterdim ama değil. İlk 2 uzunluk da diyebiliriz.) kontrol ediyoruz.
Eğer, ilk 2 alanı kaplayan bir Türkçe karakter ise ilkharf = HarfBuyult(Left(parcalar(i),2)) ile ilkharf değerimizi belirliyoruz. Ardından right fonksiyonunu da 2 eksilterek kullanıyoruz. Bunun sebebi ise ilk karakterimizin uzunluğunun 2 birim olmasıdır.
Ayrıca, bu koşullara girmezse de ilk karakterimizin uzunluğunun 1 birim olduğunu belirtiyoruz ve kesinti adlı değişkenimizi de bu koşullara göre oluşturuyoruz.
gerikalan adlı değişkenimiz ise her kelimenin ilk harfi dışında kalan kısmıdır.
cumle ise döngü içerisinde gelen verimizin parçalanmış halini tekrardan birleştirmektedir.
En sonunda ise oluşturduğumuz cümle adlı değişkenimizi fonksiyonumuza eşitleyerek fonksiyonu kapatıyoruz.
Altta çalışır bir örnek bulabilirsiniz. Gelen input mustafa çağrı güven ve ekrana yazılan Mustafa Çağrı Güven olacaktır. Bunu istediğiniz gibi kendi isminize veya değişkenlerinize uyarlayabilirsiniz. Eğer aklınıza takılan bir sorun olursa da yorumlar ile ya da iletişim kısmından bana ulaşmaktan lütfen çekinmeyiniz.
<%Function HarfBuyult(gelen)
If Not IsNull(gelen) Then
gelen=Replace(gelen,”ı”,”I”)
gelen=Replace(gelen,”i”,”İ”)
gelen=Replace(gelen,”ğ”,”Ğ”)
gelen=Replace(gelen,”ü”,”Ü”)
gelen=Replace(gelen,”ş”,”Ş”)
gelen=Replace(gelen,”ç”,”Ç”)
gelen=Replace(gelen,”ö”,”Ö”)
gelen=Ucase(gelen)
End If
HarfBuyult=gelen
End Function
Function IlkHarfBuyuk(metin)
parcalar = Split(metin,” “)
For i = 0 To ubound(parcalar)
ilkharf2 = Left(parcalar(i),2)
If ilkharf2 = “ı” OR ilkharf2 = “i” OR ilkharf2 = “ğ” OR ilkharf2 = “ü” OR ilkharf2 = “ş” OR ilkharf2 = “ç” OR ilkharf2 = “ö” then
ilkharf = HarfBuyult(Left(parcalar(i),2))
kesinti = 2
else
ilkharf = HarfBuyult(Left(parcalar(i),1))
kesinti = 1
End if
gerikalan = Right(parcalar(i),Len(parcalar(i))-kesinti)
cumle = cumle & ilkharf & gerikalan & ” ”
Next
IlkHarfBuyuk = cumle
End Function
response.write IlkHarfBuyuk(“mustafa çağrı güven”) ‘ burada fonksiyonumuza değeri giriyoruz ve ilk harfleri büyük olan bir yapıya çeviriyor.
%>
IlkHarfBuyuk
“ASP – İlk harfi büyük yap” için 4 yanıt
Bu güzel bilgilendirme için çok teşekkür ederim.
teşekkürler
gerek yok
Function Convert(metin)
Splitter = ” ”
If metin “” Then
xarr = Split(metin, Splitter)
For i = 0 To UBound(xarr)
xmetin = Trim(xarr(i))
If xmetin “” Then
xmetin = Replace(xmetin,”I”,”ı”, 1, -1) ‘Y
xmetin = LCase(xmetin)
xstletter = UCase(Left(xmetin,1))
xstletter = Replace(xstletter,”i”,”İ”, 1, -1) ‘Y
xmetin = Right(xmetin, Len(xarr(i)) – 1)
xmetin = Replace(xmetin,”İ”,”i”, 1, -1) ‘Y
xmetin = xstletter & xmetin
End If
zmetin = zmetin & ” ” & xmetin
Next
End If
Convert = zmetin
end function
Bu makalede yazılanların hepsi yanlış. işte test edilmiş ve doğrusu
—
Function Convert(metin)
Splitter = ” ”
If NOT metin = “” Then
xarr = Split(metin, Splitter)
For i = 0 To UBound(xarr)
xmetin = Trim(xarr(i))
If NOT xmetin = “” Then
xmetin = Replace(xmetin,”I”,”ı”, 1, -1)
xmetin = Replace(xmetin,”i”,”İ”, 1, -1)
xmetin = LCase(xmetin)
xstletter = UCase(Left(xmetin,1))
xstletter = Replace(xstletter,”i”,”İ”, 1, -1)
xstletter = Replace(xstletter,”ı”,”I”, 1, -1)
xmetin = Right(xmetin, Len(xarr(i)) -1)
xmetin = Replace(xmetin,”İ”,”i”, 1, -1)
xmetin = Replace(xmetin,”I”,”ı”, 1, -1)
xmetin = xstletter & xmetin
End If
zmetin = zmetin & ” ” & xmetin
Next
End If
Convert = zmetin
End Function