キャッチゲームの制作 VB6
 (9) ランキングの処理 前へ 目次へ 次へ 

 3. ランキングの書き込み

 ランキングのデータは配列 Ten と Namae で管理(記憶)している。ランキングは10位までであるから、配列の1番から10番までのデータを順にファイルに書き込む。ランキングのファイル名は「RankingData.dat」とする。
 処理は、サブプロシージャ RankingSave として作成する。
ファイル保存の場所注意

・プログラムリスト

Private Sub RankingSave()
    Dim n As Integer

    On Error GoTo Err2    'エラーが発生したときの移動先
    Open "RankingData.dat" For Output As #1    'ファイルを開く
    For n = 1 To 10
        Print #1, Ten(n)      'データを書き込む
        Print #1, Namae(n)    'データを書き込む
    Next n
    Close #1    'ファイルを閉じる
    Exit Sub    'プロシージャを抜け出す
Err2:        'エラーの時にする処理はない
    MsgBox "ランキングファイルの保存に失敗しました。", vbOKOnly, Form1.Caption
End Sub


得点1
名前1
得点2
名前2
  …
得点10
名前10

 得点と名前のデータを2つの Print 命令でファイルに書き込んでいる。
 ファイルには、左のように得点と名前が2行で書き込まれる。

 Input 命令でデータを読み込むと、1つの変数にはデータの先頭から「改行」までのデータ、または、「カンマ」までのデータが読み込まれる。ここでは、1行に一つのデータを書き込むようにしている。


 RankingSaveプロシージャは、終了時に実行すればよいので、Form_QueryUnloadプロシージャ内から呼び出す。Form_Loadプロシージャで ChDrive App.Path と ChDir App.Path を実行しているのでアプリケーションと同じフォルダに書き込まれる。

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
    … 省略 …
    End If
    RankingSave      'ランキングファイルの書き込み
    End
End Sub

ファイル保存の場所注意


 ほかの書き込み方法

 データの書き込みで Print 命令の代わりに Write 命令を次のように使うことができる。

Write #1, Ten(n), Namae(n)

 Write 命令はファイルにデータを書き込むときに各データ(ここでは得点と名前)の間にカンマ が自動的に挿入される。また、文字列は、ダブル クォーテーション ("") で囲んで出力される。

得点1,"名前1"
得点2
,"名前2"
    …
得点10
,"名前10"



課 題

*経過時間を表示する。
*落下速度でリンゴのポイントを変える。(早く落ちるリンゴの方が得点が高くなる。)
*色違いのリンゴを発生させ、例えば黒リンゴを取るとゲーム終了、金リンゴを取ると時間延長、というようにする。
     などなど..... チャレンジしてみよう。


 (9) ランキングの処理 前へ 目次へ 次へ 
Copyright © 2001,2002 Hiroshi Masuda 

 

 

inserted by FC2 system