コードファイルの解析 |
---|
MaferLite.bas ソースプログラム2
Public Function CodeSet() As Long '配列に読み込んだ内容を1行ずつ評価するために、添字の初期化を行う lngCodeIndex = 0 '改造コード部分を格納するための配列の初期化 Erase strCodeData intCodeDataIndex = 0 '戻り値の初期値セット CodeSet = -1 |
MaferLite.bas ソースプログラム3
01> Do While Not strCodeString(lngCodeIndex) = "EOF" 02> Select Case UCase(GetStrL(strCodeString(lngCodeIndex), ":")) 03> Case "#MAFER_LITE" 04> CodeSet = -2 05> Case "#TARGET" 06> Select Case UCase(GetStrR(strCodeString(lngCodeIndex), ":")) 07> Case "FILE" 08> CodeSet = 1 09> ' Case "MEMORY" 10> ' CodeSet = 2 11> ' Case "REGISTRY" 12> ' CodeSet = 3 13> End Select 14> Case "#CODE" 15> 'コード用配列に、コード内容を読み込む 16> strCodeData(intCodeDataIndex) = UCase(GetStrR(strCodeString(lngCodeIndex), ":")) 17> intCodeDataIndex = intCodeDataIndex + 1 18> Case "#FILENAME" 19> 'ファイル名を変数にセットする 20> strDataFile = UCase(GetStrR(strCodeString(lngCodeIndex), ":")) 21> Case Else 22> End Select 23> lngCodeIndex = lngCodeIndex + 1 24> Loop 25> strCodeData(intCodeDataIndex) = "EOF" 26> End Function |
ファイル改造用フォームの表示 |
---|
frmML_FileEdit.frm ソースプログラム1
Private Sub Form_Load() txtFileName.Text = strDataFile End Sub |
frmML_FileEdit.frm ソースプログラム2
Private Sub cmdExecute_Click() On Error GoTo ErrHandler '各種エラーチェック If txtFileFullpath.Text = "" Then 'フルパスを入力しているかチェック MsgBox "ファイルのフルパス名を入力してください", vbOKOnly + vbExclamation, "入力エラー" txtFileFullpath.SetFocus Exit Sub ElseIf Dir(txtFileFullpath.Text) = "" Then 'ファイルの存在チェック MsgBox txtFileFullpath.Text & vbCrLf & "ファイルが存在しません" & vbCrLf & vbCrLf & "パスとファイル名を確認して下さい", vbOKOnly + vbExclamation, "読み込みエラー" txtFileFullpath.SetFocus SelText txtFileFullpath Exit Sub '指定されたファイルと違うファイル名を入力していないかチェック(コメントアウトしている方の ElseIf文でも、結果は同じ) 'ElseIf UCase(txtFileName.Text) <> UCase(Right(txtFileFullpath.Text, Len(txtFileName.Text))) Then ElseIf StrComp(txtFileName.Text, Right(txtFileFullpath.Text, Len(txtFileName.Text)), vbTextCompare) Then MsgBox "コードファイルのファイル名と、入力されたフルパス名とが異なっています", vbOKOnly + vbExclamation, "入力エラー" txtFileFullpath.SetFocus SelText txtFileFullpath Exit Sub End If |
frmML_FileEdit.frm ソースプログラム3
'改造コードのみを格納していた配列の最初から、ファイルの書き換えを実行していく intCodeDataIndex = 0 Do While Not strCodeData(intCodeDataIndex) = "EOF" ret = BinFileEdit(txtFileFullpath.Text, strCodeData(intCodeDataIndex)) If ret = 0 Then intCodeDataIndex = intCodeDataIndex + 1 Else MsgBox "セーブデータを書き換えられませんでした" & vbCrLf & "エラー番号" & ret, vbOKOnly + vbExclamation, "書き込みエラー" Exit Sub End If Loop MsgBox "セーブデータを書き換えました", vbOKOnly + vbInformation, "書き換え完了" cmdBackMain_Click |
frmML_FileEdit.frm ソースプログラム4
Private Sub cmdBackMain_Click() Unload Me frmMaferLite.Show End Sub |
MaferLiteの欠点 |
---|
ファイル名 | |||
ファイルのフルパス名 | 「参照」 | ||
書き換え | メインメニューに戻る | 終了 |