とりあえずソースを読む |
---|
MaferLite.bas ソースプログラム1
'改造コードファイルの文字列を格納する配列 Public strCodeString(128) As String 'strCodeString の添字 Public lngCodeIndex As Long '改造コードのみの内容を格納する配列 Public strCodeData(100) As String 'strCodeData の添字 Public intCodeDataIndex As Integer '書き換えるファイルの名前(フルパスではない)を格納する変数 Public strDataFile As String |
frmMaferLite.frm ソースプログラム1
01> On Error GoTo ErrHandler 02> 'コードファイルを読み込む 03> Dim CodeFileName As String 'コードファイルのフルパス名を格納するための変数 04> With CommonDialog1 05> .DialogTitle = "コードファイルの選択" 06> '.InitDir = LastPath 07> .Filter = "MAFERのファイル(*.mfr)|*.mfr|" & _ 08> "テキストファイル(*.txt)|*.txt|" & _ 09> "すべてのファイル(*.*)|*.*" 10> .FilterIndex = 2 11> .FileName = "" 12> .Flags = cdlOFNHideReadOnly 13> End With 14> CommonDialog1.ShowOpen 15> If CommonDialog1.FileName <> "" Then 16> CodeFileName = CommonDialog1.FileName 17> Else 18> Exit Sub 19> End If |
frmMaferLite.frm ソースプログラム2
01> Dim FileNumber As Variant '開くファイルの番号 02> Dim CodeFile As String '1行ずつ読み込んだ内容を、一時的に保存するための変数 03> 'コードファイルの内容を格納するための配列を初期化 04> Erase strCodeString 05> lngCodeIndex = 0 06> 'ファイルをオープンした後、その内容を配列に読み込む 07> FileNumber = FreeFile 08> Open CodeFileName For Input As #FileNumber 09> Do While Not EOF(1) 10> Line Input #FileNumber, CodeFile 11> '最初の1文字が「#」でなければ、配列に読み込まない 12> If Left(CodeFile, 1) = "#" Then 13> strCodeString(lngCodeIndex) = CodeFile 14> lngCodeIndex = lngCodeIndex + 1 15> End If 16> Loop 17> 'ファイルの終わりまで読みとった後、最後に"EOF"を追加する。(配列を最後まで読む時の、判定を簡単にするため) 18> strCodeString(lngCodeIndex) = "EOF" 19> Close #FileNumber |
frmMaferLite.frm ソースプログラム3
01> '改造コード部分のみを配列に読み込む関数 CodeSet の戻り値を宣言し、関数を実行 02> Dim retCode As Long 03> retCode = CodeSet 04> Select Case retCode 05> Case 1 06> 'ファイル改造用のコードなので、それに対応したフォームを開く 07> Me.Hide 08> frmML_FileEdit.Show 09> Exit Sub 10> 'Case 2 11> 'メモリ用のコードだった場合 12> 'Case 3 13> 'レジストリ用のコードだった場合 14> Case -1 15> '読み込んだファイルが、CodeSet 関数で正しく処理できなかった時 16> MsgBox "読み込んだファイルは、コードファイルではありません", vbOKOnly + vbExclamation, "ファイル形式エラー" 17> Case Else 18> End Select 19> Exit Sub 20> ErrHandler: 21> Select Case Err 22> Case 53 23> MsgBox "ファイルが存在しません", vbOKOnly + vbExclamation, "読み込みエラー" 24> Case Else 25> MsgBox "不明なエラーが発生しました" & vbCrLf & "エラー番号 " & Err.Number, vbOKOnly + vbExclamation, "不明なエラー" 26> End Select 27> End Sub |