xpertwinner
Member
- Joined
- Dec 26, 2008
- Messages
- 24
- Programming Experience
- Beginner
I have a program, where I have created an object type called "Modulo". This class has certain atributes, shuch as an ID, a name, a position and others.
What I have is a submarine, which is a list of those modules. I want to read positions from a txt file and then order the submarine according to those positions.
What is happening is that the positions are well read, the sorting of the positions is correctly done, but the "names" of the modules don't follow!
For example, when I get 2 0 1 from the file, the program should print:
0 B
1 C
2 A
but instead it prints
0 B
1 A
2 C
The code is as follows:
Thanks in advance,
Hugo Sousa Pinto
What I have is a submarine, which is a list of those modules. I want to read positions from a txt file and then order the submarine according to those positions.
What is happening is that the positions are well read, the sorting of the positions is correctly done, but the "names" of the modules don't follow!
For example, when I get 2 0 1 from the file, the program should print:
0 B
1 C
2 A
but instead it prints
0 B
1 A
2 C
The code is as follows:
VB.NET:
Dim teste As New List(Of Modulo)
teste.Add(New Modulo(1, "A", 100))
teste.Add(New Modulo(2, "B", 150))
teste.Add(New Modulo(3, "C", 100))
Try
Dim instance As StreamReader = New StreamReader("C:\Documents and Settings\Hugo\Os meus documentos\permut_table\permut_table.txt")
Dim LineofText As String
Dim size = teste.Count()
Dim i As Integer
Dim limit As Integer
Dim submarino_de_calculo As New List(Of Modulo)
limit = Factorial(size)
i = 0
'if you have n elements, read the n! first lines from the element 10-n until the end
Do While (instance.Peek <> -1 And i < limit)
LineofText = instance.ReadLine()
Dim positions_temp() As String
Dim positions() As String
Dim cSplitAt(1) As Char
cSplitAt(0) = Chr(32)
positions_temp = LineofText.Split(cSplitAt, StringSplitOptions.RemoveEmptyEntries)
positions = positions_temp.GetRange(10 - size, size)
Dim k As Integer
MsgBox("posicao" & i)
For k = 0 To positions.Count() - 1
MsgBox(positions(k))
Next
submarino_de_calculo = teste
Dim j As Integer
For j = 0 To positions.Count() - 1
submarino_de_calculo(j).Posicao = positions(j)
Next
submarino_de_calculo.Sort(AddressOf CompareModulos)
MsgBox("Positions after ordered")
Dim a As Integer
For a = 0 To submarino_de_calculo.Count - 1
MsgBox(submarino_de_calculo(a).Designacao)
Next
i += 1
Loop
Catch P As Exception
MsgBox("file not found")
End Try
Public Function CompareModulos(ByVal m1 As Modulo, ByVal m2 As Modulo)
Return m1.Posicao.CompareTo(m2.Posicao)
End Function
Thanks in advance,
Hugo Sousa Pinto
Last edited by a moderator: