Your example works, but I must be missing something because mine does not. Here's the actual code. Forgive the sloppiness as I'm porting it and hacking it up trying different stuff.
Code: Select all
BytesToWrite = ArraySize(@AnswerCorrect()) * 4
If Logic = #FILE_SAVE
BackupFile(Globe\ScorePath, "scb")
If Not CreateFile(1, Globe\ScorePath)
ProcedureReturn
EndIf
LoadingOrSaving$ = "Saving "
Else
LoadingOrSaving$ = "Loading "
If Not ReadFile(1, Globe\ScorePath)
ProcedureReturn
EndIf
EndIf
LoadingOrSaving$ = LoadingOrSaving$ + LCase(Globe\ScorePath) + "..."
If lNot(Globe\ProgramStartup)
SetWindowText_(hwndAttach, @LoadingOrSaving$)
EndIf
; SettingsWriteReadString(Logic, @FileHeader$)
; If FileHeader$ = "tn2scores"
If Logic = #FILE_SAVE
;MOVE CURRENT SCORES TO PREVIOUS
For i = 0 To 140
For j = 0 To 2
For k = 0 To 1
lTemp = AnswerCorrect(0, i, j, k)
AnswerCorrect(1, i, j, k) = AnswerCorrect(0, i, j, k)
AnswerIncorrect(1, i, j, k) = AnswerIncorrect(0, i, j, k)
AnswerCorrect(2, i, j, k) = AnswerCorrect(2, i, j, k) + AnswerCorrect(0, i, j, k)
AnswerIncorrect(2, i, j, k) = AnswerIncorrect(2, i, j, k) + AnswerIncorrect(0, i, j, k)
AnswerCorrect(0, i, j, k) = 0
AnswerIncorrect(0, i, j, k) = 0
Next k
Next j
Next i
;SettingsWriteReadBinary(Logic, @AnswerCorrect(0, 0, 0, 0), BytesToWrite)
;SettingsWriteReadBinary(Logic, @AnswerIncorrect(0, 0, 0, 0), BytesToWrite)
*mem = @AnswerCorrect()
WriteData(1, *mem, BytesToWrite*4)
FlushFileBuffers(1)
Debug Loc(1)
;FileSeek(1, Loc(1))
*mem = @AnswerIncorrect()
WriteData(1, *mem, BytesToWrite*4)
Debug Loc(1)
Else
SettingsWriteReadBinary(Logic, @AnswerCorrect(0, 0, 0, 0), BytesToWrite)
SettingsWriteReadBinary(Logic, @AnswerIncorrect(0, 0, 0, 0), BytesToWrite)
EndIf
; Else
; Globe\MessageBoxText = "File is not a Take Note 2.1 score File! File Not Loaded"+ Chr(0)
; Globe\MessageBoxTitle = "Warning!"
; DoMessageBox(MainWindow\Handle, 1)
; EndIf
CloseFile(1)
SetWindowText_(hwndAttach, @szWindowTitle$)
I'd be thankful to know I'm doing something stupid.