VB.netでゲーム作成中なのです。
テキストファイルから一行ずつ文字を読み込んでいます。
ボタンを押したら読み込んだところまで保存して再度起動したら前回のところからテキストファイルを読み込みたいのですが、どうすればいいかわかりません。どなかたおしてもらえないでしょか??
保存した行数で分かるのではないの?
編集 削除'テキストファイルから一文字呼び込み改行じゃないか判定
Dim testChar As String = ""
testChar = Convert.ToChar(m_Sr.Read())
If testChar = vbLf Then
tmTextLoad_stop()
End If
'テキストファイルから呼び込んだ一文字をlblStoryに表示
lblStory.Text &= testChar
このように呼び込んでます。
どこまで読み込んだかはReadが持っているということでしょうか??
アクアと申しますどうぞ宜しくお願いします。
早速ですが、保存するのはテキストファイルですか?それとも、[どの行まで読み込んだ]という情報ですか?
たぶん保存したいのはどの行まで読んだという情報ではないか?と茶色の卵さんの質問をみて思いました。
(Readは持ってないですよね。)
どこまで読んだかを保存したいです。
編集 削除最初の質問で
> ボタンを押したら読み込んだところまで保存して
と書いてるから、読み込んだ行数分のデータを全部保存してると読みましたが。
(なんでそんなことするかは分からなかったけど)
保存ファイルに読込みファイルの読み込んだところまで全部のデータが転記
されてるなら、保存ファイルを最後まで読めば、その行数が前回読んだ行数です。
ただ、今現在は、保存の処理は何もできてないのね?
何をどう保存しても良いのね?
じゃあ、別のテキストファイル(セーブ用ファイル)に読み込んだ行数を書いておけば
それを読めば行数が分かる・・・でいいんじゃないの?
> どこまで読み込んだかはReadが持っているということでしょうか??
m_Sr が何者か知らないし、持ってるかどうかなんか知らない。
でも、持って無くても変数1つ用意して改行が見つかったらカウントアップすれば
いいだけなので、自分で数えれば何の問題もないと思う。
>If testChar = vbLf Then
ま、OS によっては改行コード違うんじゃないの?とかは無視してますが。
読込みファイルはちゃんと LF が改行で作ってあるんでしょう。
説明が下手ですいません。
したいことはテキストファイルをどこまで出力したかをセーブ(記憶)してシステムを終了した後にシステムを起動してセーブ(記憶)した続きから出力したいのです。
まだセーブ(記憶)もできてない状況です。
どのように記憶させていいかもわかりません。
m_Sr は Public m_Sr As System.IO.StreamReader です
m_Sr = New System.IO.StreamReader("ファイル名",_
System.Text.Encoding.GetEncoding("shift_jis"))
でセットされたいます。
こういうのって、画面に1行ごとに表示するとは限らないんじゃないの?
まあそれはそれとして、テキスト文書は制御部分と表示部分で1行とかにして、制御部分だけを登録すればいいような気がする。
0001,つまり
0002,こういうこと
で、0002まで読んだよっていうのを保存すれば、再表示のときに0002を探せばいんじゃない?
こんにちは
えと、どのように記憶させていいかもわからないとういのは
ファイルへの書き込みがわからないということですか?
保存方法としては、アクアさんやまるるうさんが回答してく
ださっているとおり、何行目まで読んだかを記憶しておく、
変数を1つ用意して、1行読み込むたびに +1して
セーブのときは、その変数の値をファイルに書き出せばいい
のではないでしょうか。
ご指導ありがとうございました。
なんとか解決しました。
感謝です。