6 Eylül 2012 Perşembe

9. String Parçalama (Parsing) Fonksiyonu

Merhaba;

Bir string ifade içerisinde, belirtilen özel karaktere göre, veriyi parçalayan bir fonksiyon hazırladım. Aşağıda fonksiyonun kodlarını bulabilirsiniz. 

Fonksiyona iki adet referans göndermeniz gerekiyor :

 "string_veri" olarak, parçalamak istediğiniz metin içeriğini, 
 "ayrac" olarak, parçalama işleminin hangi karaktere göre yapılacağını.



Bu iki veriyi gönderdiğinizde, bir dizi (array) içerisinde, ayrac değerine göre parçalanmmış verileri alabilirsiniz. Ayraç olarak verdiğiniz değer, dizi içerisine alınmaz, silinir.


Örnek üzerinden de anlatmak isterim:

Örneğin şu şekilde bir string verimiz olsun: 

Dim veriler  As String  = "ankara@gmail.com,bursa@hotmail.com,mugla@yahoo.com"

Bunları virgül karakterine göre parçalayıp, bir array içine almak için fonksiyonu şöyle çağırıyoruz:

Dim e_postalar()  As String  = String_Parser(veriler, ",")

e-postalar isimli dizi içerisi, program çalıştırıldıktan sonra şu şekilde olacaktır:

e_postalar[0] = "ankara@gmail.com"
e_postalar[1] = "bursa@hotmail.com"
e_postalar[2] = "mugla@yahoo.com"


Umarım işinize yarayacaktır. Aşağıdan yorum ve işaretleme yaparsanız sevinirim. 

Kolay gelsin.



Private Function String_Parser(ByVal string_veri As String, ByVal ayrac As String)
        Dim parsed_strings(0) As String
        Do
            Dim ayrac_yeri As Integer 'HER DEFASINDA YENİ DEĞER ALACAK, DÖNGÜ İÇİNDE TANIMLIYORUM
            ayrac_yeri = Microsoft.VisualBasic.InStr(string_veri, ayrac, CompareMethod.Text) 'VERİ İÇİNDE AYRAÇIN YERİ SAPTANIYOR
            If ayrac_yeri = 0 Then
                parsed_strings(parsed_strings.Length - 1) = string_veri 'AYRAÇ HİÇ YOKSA VERİNİN TAMAMI DİZİYE ATILIYOR
                string_veri = ""
            Else
                ReDim Preserve parsed_strings(parsed_strings.Length) 'AYRAÇ VARSA, DİZİ İÇİNDE YENİ BİR ALAN AÇILIYOR, ESKİ VERİLER SAKLANIYOR
                parsed_strings(parsed_strings.Length - 2) = Microsoft.VisualBasic.Left(string_veri, ayrac_yeri - 1) 'AYRAÇ YERİNE KADAR OLAN KISIM DİZİDE AÇILAN ALANA ALINIYOR
                string_veri = Microsoft.VisualBasic.Right(string_veri, CInt(string_veri.Length) - ayrac_yeri) ' ALINAN KISIM STRING İÇİNDEN SİLİNİYOR
            End If
        Loop Until (string_veri = "") 'STRİNG İÇİNDE OLAN VERİ BİTENE KADAR DÖNÜYOR
        Return parsed_strings
End Function





Hiç yorum yok:

Yorum Gönder

Her türlü eleştiri, görüş, öneri, soru ve açıklamanızı yazmaktan çekinmeyin. (You might write in English, too)