VB.net'te sıraya dizme döngüsü lazım döngüyü kuramıyorum?

Vatansever

Asistan
Katılım
23 Ağustos 2007
Mesajlar
405
Reaksiyon puanı
1
Puanları
18
Arkadaşlar bir sorunum var bir datagrid'te 2 adet sütun var stn1 ve stn2 diyelim bunlara,
bu sütunların içlerindede 30 satırda bilgi dolu stn1'de isimler var stn2'de ise 0'dan 29'a kadar
rakamlar var
rakamlar benzersizdir aynısından ikitane yok ve karışık sıralı, istediğim stn1'deki isimleri stn2'deki rakamlara göre dizip aralarına virgül koyarak bir stringe aktarmak
Yani stn2'de 0 hangi sırada ise o bulunup stn1'deki değer alınıp yanına virgül konulacak sonra stn2'deki 1 rakamı aranıp bulunacak ve stn1'deki karşılığı ilk bulunmuş değere eklenecek bu böyle devam edecek bunun döngüsünü kuramadım programımın başka yerinde ayar kaydederkende benzeri bir kod kullandım aşağıda onu veriyorum böylece kodlar elinizde kod yazmanıza pek gerek yok ihtiyaç duyacağınız kodların hepsi aşağıda var sadece buna uygun döngüyü yazmak lazım döngü nasıl olacak.
Aşağıda verdiğim kodda programımda bir datagridde bulunan sütunlardaki bilgileri satır satır okuyup bulduğu değerlerin aralarına virgül koyup bir ini dosyasına kaydediyor tabi sütunlara göre bilgileri ayrıp kaydediyor benim yazacağım kodda %90 aynı olacak en önemli farkı bu kodda düz bir şekilde okuma yapılıyor ve bilgiler kaydediliyor bana lazım olanda ise stn2'deki rakamlara göre okutup stn1'deki bilgileri aralarına virgül koyup dizilmiş olarak kaydetmek
Kod:
    Public Sub x_FiltreDatagridKaydet()

        Dim stn1Listesi As New System.Text.StringBuilder()
        Dim stn2Listesi As New System.Text.StringBuilder()
        Dim stn3Listesi As New System.Text.StringBuilder()
        Dim stn4Listesi As New System.Text.StringBuilder()

        Dim satıradedi As Integer = Me.DataGridView4.Rows.Count - 1
        For index As Integer = 0 To satıradedi
            Dim satırlar1 As String = Me.DataGridView4.Rows(index).Cells(0).Value.ToString()
            Dim satırlar2 As String = Me.DataGridView4.Rows(index).Cells(1).Value.ToString()
            Dim satırlar3 As String = Me.DataGridView4.Rows(index).Cells(2).Value.ToString()
            Dim satırlar4 As String = Me.DataGridView4.Rows(index).Cells(3).Value.ToString()

            stn1Listesi.Append(satırlar1.ToString & ",")
            stn2Listesi.Append(satırlar2.ToString & ",")
            stn3Listesi.Append(satırlar3.ToString & ",")
            stn4Listesi.Append(satırlar4.ToString & ",")
        Next

        Dim isim, stn, yontem, gizli As String
        Dim yazıadedi1 As Integer = stn1Listesi.ToString().Length - 1
        Dim yazıadedi2 As Integer = stn2Listesi.ToString().Length - 1
        Dim yazıadedi3 As Integer = stn3Listesi.ToString().Length - 1
        Dim yazıadedi4 As Integer = stn4Listesi.ToString().Length - 1
        isim = stn1Listesi.ToString().Remove(yazıadedi1, 1)
        stn = stn2Listesi.ToString().Remove(yazıadedi2, 1)
        yontem = stn3Listesi.ToString().Remove(yazıadedi3, 1)
        gizli = stn4Listesi.ToString().Remove(yazıadedi4, 1)

        inifile.Yaz("Filtre", "isim", isim)
        inifile.Yaz("Filtre", "stn", stn)
        inifile.Yaz("Filtre", "yontem", yontem)
        inifile.Yaz("Filtre", "gizli", gizli)

    End Sub
 

algea

Doçent
Katılım
15 Temmuz 2011
Mesajlar
505
Reaksiyon puanı
22
Puanları
18
Anladığım kadarıyla datagridview belli columna göre sıralamayı sormuşsun. Aşağıdaki koda göre sıralama yaptıktan sonra datagridview den istenilen veriler çekilip string'e atılabilinir.
Kod:
Dim newColumn As DataGridViewColumn
newColumn = DataGridView1.Columns(1)
Dim oldColumn As DataGridViewColumn = dataGridView1.SortedColumn
Dim direction As ListSortDirection
direction = ListSortDirection.Descending
 DataGridView1.Sort(newColumn, direction)

'String birleştirme
'....
 

Vatansever

Asistan
Katılım
23 Ağustos 2007
Mesajlar
405
Reaksiyon puanı
1
Puanları
18
Dediğin şey işime yaramaz bunu düşündüm ama sıralama tam benim istediğim gibi zaten sıralamayı değiştirmemem lazım ayrıca 30 adet satır var sıraya dizince şöyle birşey oluyor (0-1-10-11-12-13-14-15) şeklinde sıraya diziliyor ama dediğim gibi sıralamayı kesinlikle değiştirmek istemiyorum sadece kaydederken stn2 'deki rakamlara göre sıralayarak kaydetmek istiyorum AŞAĞIDAKİ ÖRNEĞE BAKIN

DATAGRİDVİEW
stn1..................stn2
---- ................ ----
Ali .....................5
Veli ....................3
Ahmet ................2
Osman ............... 0
İsmal ..................4
Mustafa ..............1

İstediğim şey
Osman,Mustafa,AhmetVeli,İsmail,Ali ==>> BU ŞEKİLDE SIRAYA DİZİP KAYDETMEK İSTİYORUM


Bana çok basit bir döngü kurabilseniz yeter ben geri kalan kodu yazarım mesela nasıl stn2'de 0'ı bulup stn1'deki karşılığındakini bir msgbox'ta göstersin sonra 1'i bulup stn1'deki karşılığı msgbox'ta görüntülensin yani istediğim sıralamada msgboxlarda isimleri gösterecek bir kod lazım virgül ekleme vesaire geri kalan bütün kodları ben yazıcam orası sorun değil
 
Üst