Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
После открытия файла произвольного доступа и записи в него всех длинных записей заполняется индекс пока еще не отсортированными короткими записями:
ReDim Index(n) As ТипИндекса
For i=1 To n
Get #1, i, Студент
Index(i).ФамилияИмя= Ucase (Trim (Студент.Фамилия)+_ Trim (Студент.Имя))
Index(i).НомерЗаписи=i
Next i
Непосредственно сортировка индекса:
Do
f=False
For i=1 To n-1
If Index(i).ФамилияИмя>Index(i+1).ФамилияИмя Then
Index(0)=Index(i):Index(i)=Index(i+1):I
ndex(i+1)=Index(0)
f=True
End If
Next i
Loop While f=True
После чего чтение из файла можно осуществлять оператором:
Get #1, Index(i).НомерЗаписи, Студент
Текст всей программы:
Private Type ДанныеСтудент
Фамилия As String * 15
Имя As String * 10
Группа As String * 4
ОцМатем As Integer
ОцИнфор As Integer
ОцФилос As Integer
End Type
Private Type ТипИндекса
ФамилияИмя As String * 25
НомерЗаписи As Integer
End Type
Dim Index() As ТипИндекса
Private Sub Command1_Click()
Dim Студент As ДанныеСтудент, i As Integer
Open "danst" For Random As #1 Len = Len(Студент)
For i = 1 To 5
Студент.Фамилия = InputBox("Фамилия")
Студент.Имя = InputBox("Имя")
Студент.Группа = InputBox("Группа")
Студент.ОцМатем = Val(InputBox("Оценка по математике"))
Студент.ОцИнфор = Val(InputBox("Оценка по информатике"))
Студент.ОцФилос = Val(InputBox("Оценка по философии"))
Put #1, i, Студент
Next
Close 1
End Sub
Private Sub Command2_Click()
Dim Студент As ДанныеСтудент, i As Integer
ReDim Index(5) As ТипИндекса
Dim f As Boolean
Open "danst" For Random As #1 Len = Len(Студент)
For i = 1 To LOF(1)/ Len(Студент)
Get #1, i, Студент
Index(i).ФамилияИмя = UCase(Trim(Студент.Фамилия) + _
Trim(Студент.Имя))
Index(i).НомерЗаписи = i
Next i
Do
f = False
For i = 1 To 4
If Index(i).ФамилияИмя > Index(i + 1).ФамилияИмя Then
Index(0) = Index(i): Index(i) = Index(i + 1)
Index(i + 1) = Index(0): f = True
End If
Next i
Loop While f = True
For i = 1 To 5
Get #1, Index(i).НомерЗаписи, Студент
Print " " & Trim(Студент.Фамилия) & " " & _ Trim(Студент.Имя) _& " " & Trim(Студент.Группа)
Next i
Close #1
End Sub
Дата публикования: 2014-11-02; Прочитано: 266 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!