2017-04-06 48 views
0

你好,我的代碼有問題! 我們被要求從text.txt文件中組織一個名稱列表,讓它們顯示到一個lits框中(把那個部分放下:))。然後從列表框中,我們被要求創建一個數組並使用我們自己的排序方法對數組進行排序,並使用一個按鈕來組織名稱,另一個按降序排列的按鈕。訂單名稱的結果應顯示在另一個列表框中。 我已經得到列表中的最後一個名字,顯示在第二個列表框中,但我的代碼沒有錯誤,它只是不會正確命名名稱!幫幫我!!!!!從列表框中排序的視覺基本數組

這裏是我的代碼:)

Public Class FileSort 
Dim sr As IO.StreamReader = IO.File.OpenText("C:\Users\Inspiron 15\documents\visual studio 2010\Projects\assigment4 EL\assigment4 EL\names.txt") 

Structure names 
Dim c As Integer 
Dim fullname As String 
End Structure 

Dim allNames(99) As names 

Private Sub btnName_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnName.Click 

Do While sr.Peek <> -1 
    Name = sr.ReadLine 
    LstNames.Items.Add(Name & " ") 
Loop 
sr.Close() 

End Sub 
Private Sub bubbelsort(ByRef names() As System.String, ByVal c As Integer) 
c = 0 
names(c) = sr.ReadLine() 
c = c * 1 
For c = 1 To 99 Step +1 '~~~ Addding (Z to A) to the the Listbox 
    lstOrderedNames.Items.Add(Name & "")' 
Next 

End Sub 
Private Sub BtnAssend_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnAssend.Click 

Dim names(99) As String 
Dim c As Integer 
c = 0 
Dim A As Integer 
A = 99 
names(c) = sr.ToString 
c = c + 1 
For c = 1 To 99 Step +1 '~~~ Addding (Z to A) to the the Listbox 
    lstOrderedNames.Items.Add(Name & "") 
Next 
End Sub 

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnDessend.Click 
Dim names(99) As String 
Dim c As Integer 
c = 0 
Dim A As Integer 
A = 99 
names(c) = sr.ToString 
names(A) = sr.ToString 
A = A - 1 
For A = 99 To 0 Step -1 '~~~ Addding (Z to A) to the the Listbox 
    lstOrderedNames.Items.Add(Name & "") 
Next 
End Sub 

enter image description here

+0

您可能還需要之前和之後的「待遇」 – user3598756

回答

0

,你可以使用LINQ

ListBox1.Items.Add("Battle") 
ListBox1.Items.Add("Cattle") 
ListBox1.Items.Add("apple") 

ListBox2.DataSource = (From l In ListBox1.Items 
         Select l Order By l Ascending).ToList 
+0

添加數據的一些例子除非不作爲使用自己的排序方法計算。 – ThatGuy

+0

omg謝謝它的工作!劑量是否會計算爲創建您自己的分類方法或劑量是否屬於使用VB分類函數的類別? –

+0

這絕對是一種內置的排序方法。你可以用同樣的方式使用你自己的排序方法,我將不得不稍後發佈它,因爲它比我目前所能涉及的稍微多一些。 – ThatGuy

0

由於您的問題是排序算法(如果我理解正確此)。

起初我們需要一個數組。

Dim arr(ListBox1.Items.Count - 1) As String 
For i As Integer = 0 To arr.Length - 1 
    arr(i) = CStr(ListBox1.Items(i)) 
Next 

接着排序算法。既然你想去BubbleSort:

Private Sub StringBubbleSort(arr As String) 
    For i As Integer = 0 To arr.Length - 1 
     For j As Integer = 0 To arr.Length - 2 - i 
      If String.Compare(arr(j), arr(j + 1)) > 0 Then 
       Dim temp As String = arr(j) 
       arr(j) = arr(i) 
       arr(i) = temp 
      End If 
     Next 
    Next 
End Sub 

然後你使用這個函數並將數組複製到第二個ListBox。

StringBubbleSort(arr) 
ListBox2.Items.AddRange(arr) 

String.Compare:https://msdn.microsoft.com/de-de/library/84787k22(v=vs.110).aspx