Merhaba arkadaşlar,
Bugün asp’de (klasik asp) split kullanımı üzerinde duracağım. Öncelikle split kelime anlamı olarak parçalamak, ayırmak anlamına gelmektedir. Burada üzerinde duracağım konu ise herhangi bir karakter ile ayrılmış string verimizi parçalara ayırmak olacak.
Şimdi split kullanımını bir örnek ile açılayalım.
veri = "masanın,üzerindeki,siyah,böcek"
Böyle bir string verimizin olduğunu düşenelim. İlk önce bu string içindeki siyah kelimesini almak isteyelim.
Burada yapmamız gereken şu.
veri = "masanın,üzerindeki,siyah,böcek" veriParcala = Split(veri,",") Response.Write veriParcala(2)
Bunu kodun çıktısı ekrana yukarıda da belirttiğimiz gibi siyah olacaktır. Peki buradaki kelimeleri parçalara ayırdıktan sonra hepsini alt alta yazdırmak için ne yapmamız gerek. Onun içinde aşağıdaki yöntemi izleyebilirsiniz.
veri = "masanın,üzerindeki,siyah,böcek" veriParcala = Split(veri,",") adet = Ubound(veriParcala) For i = 0 To adet Response.Write veriParcala(i) & "<br>" Next
Yukarıdaki kod parçacığı ise bütün kelimeleri alt alta yazdırmanızı sağlayacaktır.
Çıktı :
masanın
üzerindeki
siyah
böcek
Burada farklı bir fonksiyon gördünüz (Ubound). Onu da kısaca açıklayayım. UBound belirtmiş olduğumuz dizi içerisindeki eleman sayısını verir. Yani bu örnekte bize üç değerini döndürecektir sıfırdan başladığı için.
Umarım bir yerlerde işinize yarar.


Response.Write veriParcala(i)
şeklinde bırkaılırsa kelimeleri yanyana aralarında virgül olmadan yazar.
Response.Write veriParcala(i)&””
şeklinde yazılırsa çıktıda ki gibi yazar.
yazıyı yazarken “br” tagı kullanmıştım. sistem kaldırmış
Response.Write veriParcala(i)&” ”
kodundaki b ve r harflerinin arasındaki boşluk olmadan yazarsanız sorun çözülür
sistem br kelimesini görünce yine silmiş. özetle
Response.Write veriParcala(i)
den sonra bir tane & işareti koyuyorsunuz ” işareti açıp tag açma işareti koyuyorsunuz. sonra tekrar tag açıp bir daha br yazıp tagı kapatıyorsunuz. ” işareti koyup kodu bitiriyorsunuz
Sayfayı yenilerseniz güncellemenin yapıldığını göreceksiniz. Gözümüzden kaçmış. Ya da biz yazıyı yayınlarken sizin yaşadığınız gibi bir durum oldu.
Bilgilendirme için teşekkürler. Gözümden kaçmış. Kod üzerinde düzeltme yapılmıştır.
Merhaba peki bu arrayların sırasını yazdırmak istersek ne kullanacağız .
mesela
veri=sarı,kırmızı,yeşil
Çıktısını şöyle yazırmak istiyorum
0 sarı
1 kırmızı
2 yeşil
Merhaba,
İstediğiniz sonuca aşağıdaki şekilde ulaşabilirsiniz.
veri = "sarı,kırmızı,yeşil"veriParcala = Split(veri,",")
adet = Ubound(veriParcala)
For i = 0 To adet
Response.Write i & " " & veriParcala(i) & "
"
Next
Mustafa Beyin örneğini zenginleştirirsek,
veri=sarı,kırmızı,yeşil,kırmızı,sarı,mavi
Çıktısını şöyle yazırmak istiyorum
sarı
kırmızı
yeşil
mavi
Yani duplicate olan kırmızı ve sarı kelimeleri yeniden yazılmasın. Bunu nasıl yapabiliriz?
Merhaba,
Sormuş olduğunuz soruyu şu şekilde çözebilirsiniz. İlk olarak string split ile ayrıp bir diziye atabilirsiniz. Daha sonra bu dizi sıralama işlemine tabi tuttuktan sonra yazdırırken daha önce yazdırılan eşit değil ise ekrana basma işlemi yapabilirsiniz. Aşağıda yapmış olduğum örneği de paylaşıyorum.
<% a = Array() veri = "sarı,kırmızı,yeşil,kırmızı,sarı,mavi" veriParcala = Split(veri,",") adet = Ubound(veriParcala) For i = 0 To adet a = AddItem(a, veriParcala(i)) Next b = Array() b = sortArray(a) for each x in b if not x = lastWriting then response.write(x) lastWriting = x end if next Function AddItem(arr, val) ReDim Preserve arr(UBound(arr) + 1) arr(UBound(arr)) = val AddItem = arr End Function function sortArray(arrShort) for i = UBound(arrShort) - 1 To 0 Step -1 for j= 0 to i if arrShort(j)>arrShort(j+1) then
temp=arrShort(j+1)
arrShort(j+1)=arrShort(j)
arrShort(j)=temp
end if
next
next
sortArray = arrShort
end function
%>
merhaba ben bu kelimelerin virgülden ayrılıp veritabanındaki satırlarda bulup veri kaydetmek istiyorum. bunu nasıl yapabilirim. mesela veritabanımda kullanıcı adı kırmızı olan satırda işlem yapacağım. bana veri mavi, kırmızı, sarı diye geliyor. bunların hepsini veritabanında bulup işlem yaptırmak istiyorum.