お世話になります。
.net初心者で、現在ファイル操作の勉強をしています。
そこでわからない点がありますのでお助けすださい。
グローバル変数に文字列を代入して、テキストファイルに保存しました。
そして読み込んだら、その文字列が、グローバル変数に代入される、という動きがほしいのですがやり方がわかりません。
色々調べたのですが、納得のできるサンプル等がありませんでしたので今回お助けを求めました。
よろしくお願いします。
グローバル変数に文字列を代入 gString = 適当な文字列
テキストファイルに文字列を書込む StreamWriter.Write(gString)
↓
テキストファイルから文字列を読込む gString = StreamReader.ReadToEnd
VBレスキュー(花ちゃん)様Tips参照
ttp://hanatyan.sakura.ne.jp/index.html
ついでに参考になりましたw
わからない所なんですが、FORMで
[フォームでグローバル変数に代入した文字列をテキストファイルに保存して終了。
次に、読み込んだら今度は逆に文字列がグローバル変数に代入されて、別フォームのTextBoxなどにも文字が入っている状態にする。]
という動きをさせたいのですができません。
保存することはできたのですが、読み込んだときに、グローバル変数の中に、グローバル変数として保存したはずの文字が代入されません。
ファイルから読み込めていないか、
グローバル変数に代入できていないか、
くらいしか原因が考えられませんが。。。
デバッグした結果は?どのコードまで成功しているんです?
特攻隊長まるるうさん、お返事ありがとうございます。
'ファイルの読み込み。
Dim FileName As String
Dim FileNum As Integer
Dim DialogRet As Integer
Dim strBuff As String
If OpenFileDialog1.ShowDialog() = DialogResult.OK Then
FileName = OpenFileDialog1.FileName
Else
Exit Sub
End If
FileNum = FreeFile()
FileOpen(FileNum, FileName, OpenMode.Input)
Do Until EOF(FileNum)
strBuff = LineInput(FileNum)
glb_A = strBuff.Substring(0, 6)
glb_B = strBuff.Substring(7, 11)
glb_C = strBuff.Substring(18, 20)
glb_D = strBuff.Substring(38)
lstBettori.Items.Insert(0, strBuff)
Loop
FileClose(FileNum)
End Sub
今は読み込みのときはこういうコードを書いています。
しかしこれだと、見ての通り各グローバル変数には一定の文字位置の文字数しか入らず、指定した文字範囲を超過してしまいますとglb_Aに入れたいものが、glb_Bに超過して入ってしまします。
保存するものによっては文字数が長くなるのものもあるので、それに対応させたいのですが方法がわかりません。
他の掲示板から移動する場合は、両方の掲示板でそれなりの
対応をするのが礼儀だと思いますが。
http://www2.moug.net/bbs/program/20070521000002.htm
それに事実を正確に伝えようとしていませんよね。
>読み込んだときに、グローバル変数の中に、グローバル変数として
>保存したはずの文字が代入されません。
『されません』というのは結果が期待できるコードを書いた上で
言える事で、
>保存するものによっては文字数が長くなるのものもあるので、
>それに対応させたいのですが方法がわかりません。
原因がすでに分かってるのになぜ最初から書かないんですか?
>納得のできるサンプル等がありませんでしたので
回答者にコードを書かせようと考えてるのでしょうか?
…だとしたら上手くいくはずのない考え方ですね。
・十分な長さを文字範囲として指定し、足りない部分を特定の文字で埋める
(例えばスペース)のが固定長の考え方です。
・区切り文字を決めて、その区切り文字ごとに読む(例えばカンマ区切りなら
CSVと呼ばれてよく使われています)という方法もあります。
特攻隊長まるるう様
ご指摘どうもありがとうございました。
以後気をつけさせていただきます。
自分が求めている結果を出すためにはCSVで区切り文字を決めて、その区切り文字ごとに読むことが必要だとわかりました。
しかし、自分のコードのどこを修正したらいいのかがわかりません。
一から書き直したほうがいいのでしょうか??
> 以後気をつけさせていただきます。
以後でなくて今すぐに対応して欲しいんですけど?
[マルチポストについて]
http://www.ippo.ne.jp/g/53.html
> CSVで区切り文字を決めて
理解できてないのか、日本語の使い方が下手なのか、話が噛み合い
ませんね。CSVなら区切り文字は決まってます。カンマ以外に区切り
文字を決めるならCSVとは呼びません。
言われたことを自分で調べなおして確認してないでしょう?
初心者であることは関係ありません。自分で調べて考えて
理解しないとプログラムは作成できません。
前の掲示板の書き込みも含めて、既に十分な量のサンプルコードが
示されています。それぞれのプログラムを1行1行丁寧に解析して
ください。
分からないコードはヘルプ(MSDN)で説明を読んでください。
コードを選択した状態で[F1]キーを押せば表示されます。
関連する内容はキーワード検索を活用してください。
同じ目的の関数は、同じクラスにまとめられています。
例えば、文字列編集なら
[String メンバ]
http://msdn2.microsoft.com/ja-jp/library/system.string_members(VS.80).aspx
それぞれのリンク先に簡単な使用例も載っています。
ツイート | ![]() |