タイトル | : ファイルの読み込みについての質問です。 |
記事No | : 12333 |
投稿日 | : 2008/05/22(Thu) 18:53 |
投稿者 | : tea |
以下の項目をファイル書き込み&読み込みに追加しましたが、ファイル に書き込むことは出来たのですが、追加した項目を読み込むことが出来 ません。 ファイルの読み込みをデバッグしていくと Case "チャージドタイムアウト1": .Teams(ixTeam).AnElapsedTime(1) = sValue の.Teams(ixTeam).AnElapsedTime(1) = sValueの箇所を認識せずに、次の Case "チャージドタイムアウト2": へ移動してしまい、追加した項目は以後前述と同様の繰り返しとなります。
どうか教えてください。 よろしくお願いします。
Option Explicit
Event JournalAfterInsert(ByVal Quarter As BBQuarter, ByVal TopicIndex As Long)
Event JournalAfterDelete(ByVal Quarter As BBQuarter, ByVal TopicIndex As Long, ByVal TeamIndex As Long)
Private Type UGame Path As String FileName As String IsDirty As Boolean
TournamentTitle As String TournamentReferee As String TournamentAScorer As String TournamentUmpire As String TournamentTimekeeper As String TournamentScorer As String Tournament24Operator As String TournamentNo As String TournamentDate As Date TournamentTimeString As String TournamentPlace As String Setting As GameSetting Quarter As BBQuarter TimeOnQuarter As Date AnElapsedTime(1 To 7) as bbTime
Teams(0 To 1) As Team Journal As Journal End Type
Private mp As UGame
'書き込み' Private Sub writeFileRegist() Dim h As Long Dim ixTeam As Long Dim ixPlayer As Long On Error GoTo ErrHandle h = FreeFile Open registFullName() For Output Access Write Lock Read Write As #h With mp Print #h, "大会情報" Print #h, "名称:" & .TournamentTitle Print #h, "No:" & .TournamentNo Print #h, "日付:" & .TournamentDate Print #h, "時刻:" & .TournamentTimeString Print #h, "場所:" & .TournamentPlace Print #h, "クオーター:" & QuarterIndexToText(.Quarter) With .Setting Print #h, "試合ルール" Print #h, "ゲーム時間(分):" & .QuarterMinutes Print #h, "ショットクロック(秒):" & .ShotClockSecond Print #h, "チームファウル(回):" & .TeamFoulMax Print #h, "個人ファウル(回):" & .PlayerFoulMax End With For ixTeam = 0 To 1 With .Teams(ixTeam) Print #h, "チーム" & .TeamWideChar Print #h, "チーム名:" & .Name Print #h, "コーチ名:" & .Coach.Name Print #h, "Aコーチ名:" & .ACoach.Name '以下が追加したコードです。 Print #h, "チャージドタイムアウト1:" & .AnElapsedTime(1) Print #h, "チャージドタイムアウト2:" & .AnElapsedTime(2) Print #h, "チャージドタイムアウト3:" & .AnElapsedTime(3) Print #h, "チャージドタイムアウト4:" & .AnElapsedTime(4) Print #h, "チャージドタイムアウト5:" & .AnElapsedTime(5) Print #h, "チャージドタイムアウト6:" & .AnElapsedTime(6) Print #h, "チャージドタイムアウト7:" & .AnElapsedTime(7) 'ここまで
'繰り返し処理:1人目から最大人数まで' For ixPlayer = 1 To bbPlayerMax With .Player(ixPlayer) Print #h, "選手" & CStr(ixPlayer) & ":" _ & .UniformNumber & "、" & .Name & "、" & _ IIf(.IsStartingMember, "スターティングメンバー", _ "") & "、" & IIf(.IsCaptain, "キャプテン", "") End With Next End With Next End With '閉じる' Close #h Exit Sub
'エラー処理ルーチン' ErrHandle: Close #h Exit Sub End Sub
'ファイルの読み込み Private Sub readFileRegist() 'ローカル変数を宣言' Dim h As Long, p As Long Dim sLine As String, sItem As String, sValue As String, sSection As String Dim ixTeam As Long, ixPlayer As Long Dim asValuse As Variant 'エラー処理' On Error GoTo ErrHandle '入出力関数' h = FreeFile 'ファイルを開いて、ファイルへ入出力できるようにします。書き込み' Open registFullName() For Input Access Read Lock Read Write As #h With mp '繰り返し実行するフロー制御ステートメント&EOF関数' Do Until EOF(h) Line Input #h, sLine p = InStr(sLine, ":") If p = 0 Then 'sLineを代入' sItem = sLine 'もしくは' Else sItem = Left(sLine, p - 1) sValue = Mid(sLine, p + 1) End If Select Case sItem Case "大会情報": sSection = sItem: GoTo NextRegist Case "試合ルール": sSection = sItem: GoTo NextRegist Case "チームA": sSection = sItem: ixTeam = 0: GoTo NextRegist Case "チームB": sSection = sItem: ixTeam = 1: GoTo NextRegist End Select Select Case sSection Case "大会情報" Select Case sItem Case "名称": .TournamentTitle = sValue Case "No": .TournamentNo = sValue Case "日付": .TournamentDate = sValue Case "時刻": .TournamentTimeString = sValue Case "場所": .TournamentPlace = sValue Case "クオーター": .Quarter = QuarterTextToIndex(sValue) End Select Case "試合ルール" Select Case sItem Case "ゲーム時間(分)": .Setting.QuarterMinutes = sValue Case "ショットクロック(秒)": .Setting.ShotClockSecond = sValue Case "チームファウル(回)": .Setting.TeamFoulMax = sValue Case "個人ファウル(回)": .Setting.PlayerFoulMax = sValue End Select Case "チームA", "チームB" Select Case sItem Case "チーム名": .Teams(ixTeam).Name = sValue Case "コーチ名": .Teams(ixTeam).Coach.Name = sValue Case "Aコーチ名": .Teams(ixTeam).ACoach.Name = sValue '以下をを追加しました。 Case "チャージドタイムアウト1": .Teams(ixTeam).AnElapsedTime(1) = sValue Case "チャージドタイムアウト2": .Teams(ixTeam).AnElapsedTime(2) = sValue Case "チャージドタイムアウト3": .Teams(ixTeam).AnElapsedTime(3) = sValue Case "チャージドタイムアウト4": .Teams(ixTeam).AnElapsedTime(4) = sValue Case "チャージドタイムアウト5": .Teams(ixTeam).AnElapsedTime(5) = sValue Case "チャージドタイムアウト6": .Teams(ixTeam).AnElapsedTime(6) = sValue Case "チャージドタイムアウト7": .Teams(ixTeam).AnElapsedTime(7) = sValue 'ここまで
Case Else If Left(sItem, 2) = "選手" Then ixPlayer = Mid(sItem, 3) asValuse = Split(sValue, "、") With .Teams(ixTeam).Player(ixPlayer) .UniformNumber = asValuse(0) .Name = asValuse(1) .IsStartingMember = (asValuse(2) <> "") .IsCaptain = (asValuse(3) <> "") End With End If End Select End Select '???' NextRegist: Loop End With '閉じる' Close #h Exit Sub
ErrHandle: Close #h ErrRaise Exit Sub
|