Данные в файле в таковом формате, обязательный пробел:
Процессор - результат
Вот код:
- Код: Выделить всё
Option Explicit
Private Type Processor
Name As String 'Название процессора
result As Long 'Ну не знаю, может у кого-то больше 2 млрд будет, тогда Currency, или что-то подобное
End Type
Dim Processor() As Processor 'Процессоры
Private Sub Form_Load()
'На форме Listbox - List1
Dim data() As String, i As Integer, s As String
Open "c:\data.txt" For Input As #1
s = Input(LOF(1), 1)
Close #1
data() = Split(s, vbCrLf)
ReDim Processor(UBound(data))
For i = 0 To UBound(data)
Processor(i).Name = Left$(data(i), InStr(data(i), " - "))
'Left$ - Обрезаем название до " - " В результате: проц
Processor(i).result = Replace(Mid$(data(i), InStr(data(i), " - ") + 3), " ", "")
'Mid$ - Обрезаем название после " - "
'В результате:
'111 111 111 111
'Дальше c помощью Replace удаляем лишние пробелы, так чтобы получилось число
Next
Call AddProcessor("Celeron", 101231233)
'Додаем свой проц
SortProcessors
'Сортируем
ShowProcessor
'Показываем все это
End Sub
Sub AddProcessor(pname As String, result As Long)
'Добавление процессора
ReDim Preserve Processor(UBound(Processor) + 1) 'Переопределяем массив, с сохранением данных
With Processor(UBound(Processor))
.Name = pname
.result = result
End With
End Sub
Sub SortProcessors()
'Самая примитивная сортировка
Dim i As Integer, j As Integer, tmp As Processor
For i = 0 To UBound(Processor)
For j = i + 1 To UBound(Processor)
If Processor(i).result > Processor(j).result Then
'Если один процессор круче за второй, то меняе их местами
tmp = Processor(i)
Processor(i) = Processor(j)
Processor(j) = tmp
End If
Next
Next
'В результате упорядченный список
End Sub
Sub ShowProcessor()
'Показываем, то что у нас есть
Dim i As Integer
For i = 0 To UBound(Processor)
List1.AddItem (Processor(i).Name & " - " & Processor(i).result)
Next
End Sub