Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Saving Items problem
#1
Well this is the problem, If I edit an item and add items it and then press ok. I go to Edit Item Index and it has all the items I edited/added. But once I restart the server It only saves the last item I added or in the list(index). Im using binary files btw.

Subs relating to items..

Code:
Sub SaveItems()
Dim i As Long
    
    For i = 1 To MAX_ITEMS
        Call SaveItem(i)
    Next i
End Sub

Sub SaveItem(ByVal ItemNum As Long)
Dim FileName As String
Dim nFileNum As Integer

    FileName = App.Path & "\data\items.dat"
    
    nFileNum = FreeFile
    Open FileName For Binary As #nFileNum

    Put #nFileNum, , Item(ItemNum).Name
    Put #nFileNum, , Item(ItemNum).Pic
    Put #nFileNum, , Item(ItemNum).Type
    Put #nFileNum, , Item(ItemNum).Data1
    Put #nFileNum, , Item(ItemNum).Data2
    Put #nFileNum, , Item(ItemNum).Data3
    
    Close #nFileNum

End Sub

Sub LoadItems()
Dim FileName As String
Dim i As Long
Dim nFileNum As Integer

    Call CheckItems
    
    FileName = App.Path & "\data\items.dat"
    nFileNum = FreeFile
    Open FileName For Binary As #nFileNum
    
    For i = 1 To MAX_ITEMS
        Get #nFileNum, , Item(i).Name
        Get #nFileNum, , Item(i).Pic
        Get #nFileNum, , Item(i).Type
        Get #nFileNum, , Item(i).Data1
        Get #nFileNum, , Item(i).Data2
        Get #nFileNum, , Item(i).Data3
        DoEvents
    Next i
    
    Close #nFileNum
End Sub

Sub CheckItems()
    If Not FileExist("data\items.dat") Then
        Call SaveItems
    End If
End Sub

:: Pando
Reply
#2
This is the system I use, that works just as good, saving each item in it's own file, like the maps do.

Code:
Sub SaveItems()
Dim i As Integer

For i = 1 To MAX_ITEMS
    If Not FileExist("data\items\item" & i & ".doi", True) Then
        Call SetStatus("Saving items... " & i & "/" & MAX_ITEMS)
        DoEvents
        Call SaveItem(i)
    End If
Next i

End Sub


Sub SaveItem(ByVal ItemNum As Integer)
Dim FileName As String
Dim f As Long
FileName = App.Path & "\data\Items\Item" & ItemNum & ".doi"

f = FreeFile
Open FileName For Binary As #f
Put #f, , Item(ItemNum)
Close #f
End Sub

Sub LoadItems()
Dim FileName As String
Dim i As Long, f As Long

    Call CheckItems

For i = 1 To MAX_ITEMS
    Call SetStatus("Loading items... " & i & "/" & MAX_ITEMS)
    FileName = App.Path & "\data\items\item" & i & ".doi"
    f = FreeFile
    Open FileName For Binary As #f
    Get #f, , Item(i)
Close #f

DoEvents
Next i

End Sub

Sub CheckItems()
    Call SaveItems
End Sub
Reply
#3
Hmm can you tell me whats my problem first?

:: Pando
Reply
#4
I didn't use the system you have, I don't like it. So I don't know what your issue is. Maybe something with the clearitems, I'm not sure.
Reply
#5
What about the loading then?
(it doesn't work)


:: Pando
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)