КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Создание информационно-поисковой системы в среде Visual Basic
1. Итак, созданная информационно-поисковая система содержит следующую структуру:
Private Type med name As String * 40 pr As Double dt As Date pst As Long mem As Integer sys As String * 25 vol As Integer vid As String * 35 res As Integer cor As Integer End Type
Dim mw As med Dim id As Long
Private Sub Command1_Click() mw.name = Text2.Text mw.pr = Val(Text10.Text) mw.dt = CDate(Text8.Text) mw.pst = Val(Text11.Text) mw.sys = Text3.Text mw.mem = Val(Text4.Text) mw.vol = Val(Text5.Text) mw.vid = Text6.Text mw.cor = Val(Text7.Text) mw.res = Val(Text9.Text) id = Val(Text1.Text) Put #1, id, mw End Sub
Private Sub Command3_Click() List2.Clear id = Val(Text13.Text) If id < 1 Then MsgBox " Данной записи не существует",, "Подсказка" Else If id > LOF(1) / Len(mw) Then MsgBox " Данной записи не существует",, "Подсказка" Else If Text13.Text = "" Then MsgBox " Введите номер записи" Else id = Val(Text13.Text) Get #1, id, mw List2.AddItem id & "." & mw.name & " " & mw.pr & " " & mw.dt & " " & mw.pst & " " & mw.sys & " " & mw.mem & " " & mw.vol & " " & mw.vid & " " & mw.res & " " & mw.cor & " " End If End If End If End Sub
2. Для наиболее полного чтения данных организовываем следующие кнопки:
Private Sub Command4_Click() List1.Clear id = 1 Get #1, id, mw List2.AddItem id & "." & mw.name & " " & mw.sys & " " & mw.mem & " " & mw.vol & " " & mw.vid & " " & mw.cor & " " & mw.dt & " " & mw.res & " " & mw.pr & " " & mw.pst & " " End Sub
Private Sub Command5_Click() List1.Clear If id > 1 Then id = id - 1 Else: id = 1 End If Get #1, id, mw List2.AddItem id & "." & mw.name & " " & mw.sys & " " & mw.mem & " " & mw.vol & " " & mw.vid & " " & mw.cor & " " & mw.dt & " " & mw.res & " " & mw.pr & " " & mw.pst & " " End Sub
Private Sub Command6_Click() List1.Clear If id < LOF(1) / Len(mw) Then id = id + 1 Else: id = LOF(1) / Len(mw) End If Get #1, id, mw List2.AddItem id & "." & mw.name & " " & mw.sys & " " & mw.mem & " " & mw.vol & " " & mw.vid & " " & mw.cor & " " & mw.dt & " " & mw.res & " " & mw.pr & " " & mw.pst & " " End Sub
Private Sub Command7_Click() List1.Clear id = LOF(1) / Len(mw) Get #1, id, mw List2.AddItem id & "." & mw.name & " " & mw.sys & " " & mw.mem & " " & mw.vol & " " & mw.vid & " " & mw.cor & " " & mw.dt & " " & mw.res & " " & mw.pr & " " & mw.pst & " " End Sub
3. Следующим этапом организовываем поиск. Необходую информацию ищем следующим образом: вводим в текстовое поле (12) запрос (то,что необхоимо найти),нажимаем кнопку «Поиск». Все найденные данные будут отображаться в List1. Если запрос введен не корректно, то выводится следующую информацию: «По вашему запросу ничего не найдено» Private Sub Command2_Click() List1.Clear id = 1 Seek #1, id Do While Not EOF(1) Get #1, id, mw If InStr(Trim(UCase(mw.name)), Trim(UCase(Text12.Text))) Or InStr(Trim(UCase(mw.sys)), Trim(UCase(Text12.Text))) Or InStr(Trim(UCase(mw.mem)), Trim(UCase(Text12.Text))) Or InStr(Trim(UCase(mw.vol)), Trim(UCase(Text12.Text))) Or InStr(Trim(UCase(mw.vid)), Trim(UCase(Text12.Text))) Or InStr(Trim(UCase(mw.cor)), Trim(UCase(Text12.Text))) Or InStr(Trim(UCase(mw.dt)), Trim(UCase(Text12.Text))) Or InStr(Trim(UCase(mw.res)), Trim(UCase(Text12.Text))) Or InStr(Trim(UCase(mw.pr)), Trim(UCase(Text12.Text))) Or InStr(Trim(UCase(mw.pst)), Trim(UCase(Text12.Text))) > 0 Then List1.AddItem id & " " & mw.name & " " & mw.sys & " " & mw.mem & " " & mw.vol & " " & mw.vid & " " & mw.cor & " " & mw.dt & " " & mw.res & " " & mw.pr & " " & mw.pst End If id = id + 1 Loop If Text12.Text = "" Then List1.Clear If Text12.Text = "" Then List1.Visible = False Text1.Text = False Text2.Text = False Text3.Text = False Text4.Text = False Text5.Text = False Text6.Text = False Text7.Text = False Text8.Text = False Text9.Text = False Text10.Text = False Text11.Text = False End If If List1.ListCount = 0 Then List1.AddItem "По вашему запросу ничего не найдено" End Sub
4. Организовываем очищение текстового поля (12) при введенном в него запросе. Private Sub Command9_Click() Text12.Text = "" End Sub
5. Следующим этапом производим удаление записей. Вводим в текстовое поле (14) номер записи, которую необходимо удалить. При нажатии кнопки «Удалить» удаляется выбранная запись и в List4 появляется отредактированный список, который сдвигается на количество удалённых записей.
Private Sub Command8_Click() Open App.Path & "\db2.dat" For Random As #2 Len = Len(mw) id = 1 Seek #1, id Do While id <= LOF(1) / Len(mw) Get #1, id, mw If id <> Val(Text14.Text) Then Put #2,, mw End If id = id + 1 Loop Close #2 Close #1 Kill App.Path & "\db.dat"
FileCopy App.Path & "\db2.dat", App.Path & "\db.dat" Kill App.Path & "\db2.dat" Open App.Path & "\db.dat" For Random As #1 Len = Len(mw) List4.Clear For id = 1 To LOF(1) / Len(mw) Get #1, id, mw List4.AddItem id & "." & mw.name & " " & mw.sys & " " & mw.mem & " " & mw.vol & " " & mw.vid & " " & mw.cor & " " & mw.dt & " " & mw.res & " " & mw.pr & " " & mw.pst & " " Next id End Sub
6. Для удобства создаем List3, в котором отображаются уже ранее введенные записи. Private Sub Form_Activate() Open App.Path & "\db.dat" For Random As #1 Len = Len(mw) List3.Clear For id = 1 To LOF(1) / Len(mw) Get #1, id, mw List3.AddItem id & "." & mw.name & " " & mw.sys & " " & mw.mem & " " & mw.vol & " " & mw.vid & " " & mw.cor & " " & mw.dt & " " & mw.res & " " & mw.pr & " " & mw.pst & " " Next id End Sub
7. Для наглядности можно произвести следующие операции над элементами формы, чтобы каждый элемент имел фиксированное место. Это осуществляется путем сдвига этих элементов. Первоначально фиксируем текстовое поле (12), затем Label12, кнопки «Поиск» и «Очистить». Далее закрепляем положение Frame1, Frame2, Frame3 и Frame4.
Private Sub Form_Resize() Text12.Top = 0 Text12.Left = Form1.Width / 2 - Text12.Width / 2 Label12.Top = 0 Label12.Left = Form1.Width / 2 - Text12.Width / 2 - Label12.Width Command2.Top = 0 Command2.Left = Form1.Width / 2 + Text12.Width / 2 Command9.Top = 0 Command9.Left = Form1.Width / 2 + Text12.Width / 2 + Command2.Width Frame3.Top = Text12.Height Frame3.Left = Form1.Width / 2 - Text12.Width / 2 - Label12.Width Frame1.Top = Frame3.Top + Frame3.Height Frame1.Left = Form1.Width / 2 - Text12.Width / 2 - Label12.Width Frame4.Top = Frame1.Top + Frame1.Height Frame4.Left = Form1.Width / 2 - Text12.Width / 2 - Label12.Width Frame2.Top = Frame4.Top + Frame4.Height Frame2.Left = Form1.Width / 2 - Text12.Width / 2 - Label12.Width
End Sub
Дата добавления: 2017-01-14; Просмотров: 67; Нарушение авторских прав?; Мы поможем в написании вашей работы! |