ASP’de Split Kullanımı

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.

10 Comments

  1. salih

    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.

    1. salih

      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

      1. salih

        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

        1. Yusuf İşleyen

          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.

    2. Yusuf İşleyen

      Bilgilendirme için teşekkürler. Gözümden kaçmış. Kod üzerinde düzeltme yapılmıştır.

  2. Mustafa GÜL

    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

    1. Yusuf İşleyen

      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

  3. yilmaz

    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?

    1. Yusuf İşleyen

      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
      %>

  4. oğuz

    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.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir