ASP – İlk harfi büyük yap

Ç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 If

HarfBuyult=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 & ” ”
Next

IlkHarfBuyuk = 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

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

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir