Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB.NET: [vb2008] aakkostaminen

jokke568 [16.05.2010 22:59:07]

#

Hei

Miten saisin aakkostettua Sisalto(500) sisaltöä

Public Sisalto(500) as Stru_Sisalto


Public Structure Stru_Sisalto
dim A as string
dim B as string
dim c as string
dim d as date
dim e as integer
end structure

Miten saan järjestettyä A:n mukaan aakkosjärjestykseen ja pystynkö samalla myös järjestämään samalla aikajärjestykseen D:n mukaan?

Miten saan siirrettyä sisallon tiedot johonkin Arrayhin? (Tää array on muulle outoa)

Ei hyväksynyt, että

dim testiArray() as stru_Sisalto

for i=1 to 500
if sisalto(i).a <> "" then testiArray=sisalto(i)
next i

Multa loppu nyt ymmärrys voisiko joku vähän jeesata. Mikä array räpellyksessäni mätää tai onko toista tapaa järjestää sisalto(500) sisaltöä?

Metabolix [16.05.2010 23:40:39]

#

Yksinkertainen lajittelualgoritmi sisältää kaksi sisäkkäistä silmukkaa: ulompi käy läpi kaikki taulukon indeksit, ja sisemmässä etsitään taulukon loppuosasta kyseiseen kohtaan kuuluva arvo. Seuraava koodi esittää lajittelun periaatteen, mutta vertailuehdon joudut tekemään itse.

' Käydään läpi kaikki kohdat paitsi viimeinen.
For i = 1 To 499
  ' Käydään läpi myöhemmät kohdat; jokin niistä voi kuulua tähän.
  For j = i+1 To 500
    ' Jos taulukon myöhemmässä kohdassa (j) on arvo, joka kuuluu ennen
    ' tutkittavaa arvoa (i), vaihdetaan nämä keskenään. Tällä tavalla
    ' kohtaan (i) päätyy lopulta oikea arvo. Vertailun joudut muuttamaan.
    If sisalto(j) > sisalto(i) Then
      ' Vaihdetaan i ja j
      apu = sisalto(i)
      sisalto(i) = sisalto(j)
      sisalto(j) = apu
    End If
  Next j
Next i

Grez [17.05.2010 09:09:25]

#

jokke568 kirjoitti:

Miten saan järjestettyä A:n mukaan aakkosjärjestykseen ja pystynkö samalla myös järjestämään samalla aikajärjestykseen D:n mukaan?

Teet sopivan vertailijan

Private Class Srtu_Ad_Comparer
    Implements IComparer(Of Stru_Sisalto)
    Public Function Compare(ByVal x As Stru_Sisalto, ByVal y As Stru_Sisalto) As Integer Implements System.Collections.Generic.IComparer(Of Stru_Sisalto).Compare
        Compare = String.Compare(x.A, y.A)
        If Compare = 0 Then Compare = Date.Compare(x.d, y.d)  'Jos A:t oli samat, menee päivän mukaan
    End Function
End Class

ja kutsut Sort -metodia:

Sisalto.Sort(Sisalto, New Srtu_Ad_Comparer())

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta