VERSION 1.0 CLASS BEGIN MultiUse = -1 'True Persistable = 0 'NotPersistable DataBindingBehavior = 0 'vbNone DataSourceBehavior = 0 'vbNone MTSTransactionMode = 0 'NotAnMTSObject END Attribute VB_Name = "Data" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = True Attribute VB_PredeclaredId = False Attribute VB_Exposed = True ''+-------------------------------------------+ ''| ICI style I/O database file access module | ''+-------------------------------------------+ ''| Made by Jure Sah of MesonAI | ''+-------------------------------------------+ '' ''DO NOT MODIFY WITHOUT MY PREMITION!!! ''(or use in altered form) '' ''Mailto:jure.sah@guest.arnes.si '' ''Feel free to use this module in your ''programs and share it with your friends. '' '' ''You will probably need it if you are ''building apps for the ICI Console. '' ''There is a external public string that ''can be defined: ''It can be used to simplify calling routines Public xTemporaryPath As String Public DataFilesPath As String Private Function xFixName(xName As String) As String xFile$ = "" If DataFilesPath <> "" Then xFile$ = DataFilesPath + "\" xFile$ = xFile$ + xName xFixName = xFile$ End Function Public Sub xCreate(xName As String) On Error Resume Next xFile$ = xFixName(xName) ''Does it already exist? If Dir(xFile$) = "" Then ''Place emptyness in new file OutputFN = FreeFile Open xFile$ For Output As #OutputFN Print #OutputFN, "INTERNAL FLAG = EXISTS!" Close #OutputFN End If End Sub Public Sub xRemove(xName As String) On Error Resume Next xFile$ = xFixName(xName) ''Does it already exist? If Dir(xFile$) <> "" Then Kill xFile$ End If End Sub Public Sub xSet(xName As String, xProperty As String, xValue As String) On Error Resume Next ''Set filenames xFile$ = xFixName(xName) SwapFile$ = xTemporaryPath + "\ICIC.SWP" If Dir(xFile$) <> "" Then ''Find Property in file and save the remaining data in the swap file SwapFN = FreeFile Open SwapFile$ For Output As #SwapFN MainFN = FreeFile Open xFile$ For Input As #MainFN Found = False Do: Line Input #MainFN, a$ ''If the thing behind the "=" is our property... If UCase$(Trim$(Mid$(a$, 1, InStr(a$, "=") - 1))) = UCase$(Trim$(xProperty)) Then Found = True Else ''Otherwise copy to the swapfile Print #SwapFN, a$ End If Loop Until EOF(MainFN) Close #MainFN, #SwapFN Else Found = False End If If Not Found Then ''If property not already inside, append it AppendFN = FreeFile Open xFile$ For Append As #AppendFN Print #AppendFN, xProperty; "="; xValue Close #AppendFN Else ''If property inside, put it in the swap file and switch them AppendFN2 = FreeFile Open SwapFile$ For Append As #AppendFN2 Print #AppendFN2, xProperty; "="; xValue Close #AppendFN2 Kill xFile$ Name SwapFile$ As xFile$ End If Kill xTemporaryPath + "\ICIC.SWP" End Sub Public Function xQuery(xName As String, xProperty As String) As String On Error Resume Next xFile$ = xFixName(xName) ''Find the right Property and then extract the Value If Dir(xFile$) <> "" Then InputFN = FreeFile Open xFile$ For Input As #InputFN Found = False Do: Line Input #InputFN, a$ 'Debug.Print "("; UCase$(Trim$(Mid$(a$, 1, InStr(a$, "=") - 1))); ")" If UCase$(Trim$(Mid$(a$, 1, InStr(a$, "=") - 1))) = UCase$(Trim$(xProperty)) Then xQuery = Trim$(Mid$(a$, InStr(a$, "=") + 1)) Exit Do End If Loop Until EOF(InputFN) Close #InputFN End If End Function Public Function xNextSerial(xName As String, xProperty As String) As Long Do: N = N + 1 tmp$ = xQuery(xName, xProperty + Trim$(Str$(N))) Loop Until Trim$(tmp$) = "" xNextSerial = N End Function