Автор: Екатерина Акбашева, 06 Декабря 2010 в 22:27, курсовая работа
Проект предназначен для получения информации о наличии в библиотеке соответствующих книг.
Информация о состоянии книжного фонда содержится в текстовом файле в виде последовательности групп записей <автор>, <название книги>, <инвентарный номер>, <читатель>, <срок возврата>. Файл поддерживается в актуальном состоянии в соответствии с динамикой получения – возврата книг. Файл создается клиентской частью программы. Чтение и обновление файла осуществляется с помощью специального класса, включенного в библиотеку программ.
Inherits Data
Private IO As IIO
Private FFileName As String
Private
FFound As Integer
Public Sub New(ByVal FileName As String)
FFound = -1
FFileName = FileName
IO = New IIO
If Not IO.FileExist(FileName) Then
IO.FileCreate(FileName)
End If
End Sub
Public Sub ReadDB()
'Процедура чтения БД.
'Открываем файл БД "FFileName" с возможностью только чтения.
Dim FFileHandle As Integer
FFileHandle = IO.FileAssign(FFileName, OpenMode.Input)
Count = 0
ReDim Authors(Count), Books(Count), Readers(Count), Periods(Count), IDsOfBook(Count)
While Not IO.FileEOF(FFileHandle)
ReDim Preserve Authors(Count), Books(Count), Readers(Count), Periods(Count), IDsOfBook(Count)
'читаем как строки
Authors(Count) = IO.ReadString(FFileHandle)
Books(Count) = IO.ReadString(FFileHandle)
Readers(Count) = IO.ReadString(FFileHandle)
Periods(Count) = IO.ReadString(FFileHandle)
'читаем как число
IDsOfBook(Count) = IO.ReadInteger(FFileHandle)
Count += 1
End While
'Освобождаем файл после выполнения всех работ.
IO.FileFree(FFileHandle)
End Sub
Public Sub SaveDB()
'Процедура записи(сохранения) БД.
'Открываем БД только для записи.
Dim FFileHandle, i As Integer
FFileHandle = IO.FileAssign(FFileName, OpenMode.Output)
For i = 0 To Count - 1
'запись данных в файл
IO.WriteParams(FFileHandle, Authors(i))
IO.WriteParams(FFileHandle, Books(i))
IO.WriteParams(FFileHandle, Readers(i))
IO.WriteParams(FFileHandle, Periods(i))
IO.WriteParams(FFileHandle, IDsOfBook(i))
Next
'Освобождаем файл после выполнения всех работ.
IO.FileFree(FFileHandle)
End Sub
Public Function Add(ByVal Author As String, ByVal Book As String, ByVal IDOfBook As Integer) As Integer
ReDim Preserve Authors(Count), Books(Count), Readers(Count), Periods(Count), IDsOfBook(Count)
Authors(Count) = Author
Books(Count) = Book
Readers(Count) = ""
Periods(Count) = ""
IDsOfBook(Count) = IDOfBook
Count += 1
Return Count
End Function
Public Sub Del(ByVal IDOfBook As Integer)
Dim i As Integer
If FindOfID(IDOfBook) > -1 Then
For i = GetFound() To Count - 2
Authors(i) = Authors(i + 1)
Books(i) = Books(i + 1)
Readers(i) = Readers(i + 1)
Periods(i) = Periods(i + 1)
IDsOfBook(i) = IDsOfBook(i + 1)
Next
Count -= 1
ReDim Preserve Authors(Count), Books(Count), Readers(Count), Periods(Count), IDsOfBook(Count)
End If
End Sub
Public Function FindOfID(ByVal IDOfBook As Integer) As Integer
Dim i, result As Integer
result = -1
For i = 0 To Count - 1
If IDsOfBook(i) = IDOfBook Then
result = i
Exit For
End If
Next
FFound = result
Return result
End Function
Public Function FindOfBook(ByVal Book As String) As Integer
Dim i, result As Integer
result = -1
For i = 0 To Count - 1
If Books(i) = Book Then
result = i
Exit For
End If
Next
FFound = result
Return result
End Function
Public Function GetFound() As Integer
Return FFound
End Function
End Class
II0.vb
'IIO - класс-оболочка над стандартными средствами I/O.
'Представляет
собой более удобный вариант
для работы с файлами.
Public Class IIO
Inherits Object
Public Sub New()
'Конструктор класса
End Sub
Public Function FileExist(ByVal FileName As String) As Boolean
'Данная функция проверяет наличие файла "FileName", в случае удачи возвращает true.
Dim FileInfo As New System.IO.FileInfo(FileName)
Dim Res As Boolean = False
Res = FileInfo.Exists
FileInfo = Nothing
Return Res
Информация о работе Проект программного обеспечения библиотеки