Imports System.IO Imports System.Collections Imports System.Runtime.Serialization.Formatters.Binary Public Class clsBDD Private Database As SortedList Private al As ArrayList Private StreamFile As Stream Private Serializer As New BinaryFormatter Private Enumerator As IDictionaryEnumerator Private Fichier As String ' // METHODES PUBLIQUES Public Sub New(ByVal fich As String) Database = New SortedList() al = New ArrayList If Not File.Exists(fich) Then CreateDirectory(fich) End If Fichier = fich LoadFile() End Sub Private Sub CreateDirectory(ByVal fich As String) If IO.Directory.Exists(fich.Substring(0, fich.LastIndexOf("\"))) = False Then IO.Directory.CreateDirectory(fich.Substring(0, fich.LastIndexOf("\"))) End If If Not File.Exists(fich) Then File.WriteAllText(fich, "") End If End Sub Public Sub Add(ByRef sVal As ArrayList) Database.Add(GetLastID(), sVal) End Sub Public Property Item(ByVal sKey As String) As Object Get Return Database.Item(sKey) End Get Set(ByVal value As Object) Database.Item(sKey) = value End Set End Property Public Property Item(ByVal index As Integer) As Object Get Return Database.Item(Database.GetKey(index)) End Get Set(ByVal value As Object) Database.Item(Database.GetKey(index)) = value End Set End Property Public ReadOnly Property Count() As Long Get Count = Database.Count End Get End Property Public Sub Remove(ByVal sKey As String) Database.Remove(sKey) End Sub Public Function GetLastID() As String If Database.Count = 0 Then Return 0 End If Dim nb As Integer = 0 '' RECUPERATION NOMBRE LE PLUS GRAND For i As Integer = 0 To Database.Count - 1 If nb < Database.GetKey(i) Then nb = Database.GetKey(i) Next Return nb + 1 End Function Public Function GetidRow(ByVal index As Integer) Return Database.GetKey(index) End Function Public Function KeyExists(ByVal sKey As String) As Boolean If Database.IndexOfKey(sKey) = -1 Then Return False 'If Database.IndexOfKey(sKey) = Nothing Then Return False Return True End Function ' // METHODES PRIVEES Private Sub LoadFile() Try StreamFile = File.OpenRead(Fichier) Catch End Try If StreamFile.Length > 0 Then Database = CType(Serializer.Deserialize(StreamFile), SortedList) Else Database = New SortedList End If StreamFile.Close() End Sub Public Sub Save() File.WriteAllText(Fichier, "") StreamFile = File.OpenWrite(Fichier) Serializer.Serialize(StreamFile, Database) StreamFile.Close() End Sub End Class