テキストファイルの中味を全部読み込んで、テキストボックスに表示するというコードをOpenステートメントを使って書いています。
その際、1つの種類のデータを1つのテキストファィルとして書き出し&読み込み
しているのですが、これですと種類が増えていくとともにテキストファイルの
数もどんどん増えてしまい効率が悪いです。
で、それらを1つのテキストファイルにまとめておいて、中をセクションに
区切って、それを読み込み&書き出しする方法はあるのでしょうか?
データが1行ですと分かるのですが、それぞれが長いテキストデータを1つの
テキストファイルに区切って書き出し&読み込みする方法が分かりません。
どなたか教えてください!!!!!!!
よろしくお願いします。
No.3ベストアンサー
- 回答日時:
例えば、セクションの区切りについて、次のようなルールにしたとします。
行頭に[SectionXXX]という文字列がある事。
XXXはセクションを表す3桁の数字
この場合は、000から999まで有効ですね。
順番に取得する場合は、数字の手前までの文字列を比較して、ループを回せば、数字がいくつであっても全部取り込めます。
特定のセクションを指定して取り出す場合は、予めどこかでその数字(これは文字列として格納する)を指定する変数にぶち込んで、ループの中で更に比較して、該当する物だけを取り出せばよいと。
この場合、比較する文字列は、
"[Section" & strNum
みたいな感じになりますね。
この変数には、例えばテキストボックスにセクションNoを入力するようにしておいて、この値があったらこの変数にいれるとか、そんな風にすれば、よさげです。
どうでしょうか?
この回答への補足
回答ありがとうございます。う~ん、正直難解ですねぇ。
IfとLoopを組み合わせるというところがどうも・・・。
勉強が足りなくてすみません。
本を読みながら試行錯誤してみます。
No.6
- 回答日時:
正直目的とあうかどうか分かりませんが、INIファイルを使用するのもひとつの選択肢だと思います。
INIファイルだと、APIを使用すれば、比較的楽に属性をテキストファイルに保存することができますよ。
No.5
- 回答日時:
申し訳ありません。
呼び捨ててしまいました。
ごめんなさい...
この回答への補足
いえいえどういたしまして。
みなさんのご意見を参考にして、私なりに考えてみました。
同じセクションの行頭に特定の文字を挿入しました。
[Section1]デ-タ1デ-タ1デ-タ1デ-タ1デ-タ1
[Section1]デ-タ1デ-タ1デ-タ1
[Section1]デ-タ1デ-タ1
[Section2]デ-タ2デ-タ2デ-タ2デ-タ2
[Section2]デ-タ2デ-タ2
[Section3]デ-タ3デ-タ3デ-タ3デ-タ3デ-タ3
[Section3]デ-タ3デ-タ3デ-タ3デ-タ3デ-タ3デ-タ3
[Section3]デ-タ3デ-タ3デ-タ3デ-タ3デ-タ3デ-タ3
で、例えば[Section2]の文字列だけを抜き出してテキストボックスに表示
するコードを下のようにしてみました。
Dim aa, readdata, bb As String
Open App.Path & "\" & "test.txt" For Input As #1
Do Until EOF(1)
Line Input #1, aa
bb = Left(aa, 6)
If bb = "[Section2]" Then
readdata = readdata & aa & vbCrLf
End If
Loop
Close #1
Text1.Text = readdata
こんな感じでどうでしょうか?
多分もっと効率のいいコードがあるかも知れませんが、へっぽこの私には
これが限界です。
No.4
- 回答日時:
fujiyama2002と同じく文字列の連結でデータを取得しています。
自分はセクションの数が限られている為、一度配列にセットし
後から再度取りこむ形を取っています。
数が決められない場合はyou-mさんがおっしゃる様に、
先頭より順読みし、ループとIF文で取得すれば・・・
と思います。
以上
No.2
- 回答日時:
you-mさんと同様に自分も区切り文字
[Excel]や[Access]といった括弧書きで
区別しております。
この回答への補足
セクションの区切りを入れておいて読み込むという考え方は理解できるのですが、
どうすればいいのかが分かりません。
例えば、
[section 1]
データ1データ1データ1データ1データ1データ1
データ1データ1データ1データ1データ1データ1
データ1データ1データ1データ1データ1データ1
データ1データ1データ1データ1データ1データ1
[section 2]
データ2データ2データ2データ2データ2データ2
データ2データ2データ2データ2データ2データ2
データ2データ2データ2データ2データ2データ2
というテキストファイルがあったとして、[section 1]の部分の読み込みは
Open App.Path & "\test.txt" For Input As #1
Do Until data = "[section 2]"
Line Input #1, data
alldata = alldata & data & vbCrlf
Loop
Close #1
aaa = Replace(alldata, "[section 2]", "")
bbb = Replace(aaa, "[section 1]", "")
text1.text = bbb
(初心者なので変なコードですが・・・)
というふうに、次にくるセクションの頭までを指定して読み込めば良いと思う
のですが、[section 2]の部分だけを読み込みたい時のコードが全く分かりません。
上記のやり方では、先頭のセクションだけを読み込むことは可能ですが、
以降のセクションだけを抜き出すのはできません。
ここが今ひとつ理解できないところです。
初心者なもので、へっぽこですみません。
どうか教えてください!!!
お願いいたします。
No.1
- 回答日時:
やり方というか、やり方自体自分で決めれば済む事だと思いますよ。
例えば、セクションの区切りの行には、行頭に(本文で使われないような)特定のパターンを入れておいて、読み込むときには、一つのセクションを読み出すのに、そのパターンを判定するループにすればいいでしょう。
同様に書き出す場合も、一つのセクションを書き込んだら、そのパターンを含んだ区切りをいれるとか。
どうでしょうか?
この回答への補足
回答いただき、ありがとうございます。
現在、ninja972さんに質問させていただいた内容で悩んでいます。
ご助言を!!!!!!!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ATTファイルってどうやって開け...
-
C言語のソースからコメントを抜...
-
別のサーバーのテキストファイ...
-
テキストファイルの一部分を抽...
-
既存のテキストファイルを開く方法
-
テキストファイル(英語&日本...
-
テキストファイルの特定行の削...
-
階層付きテキストに変換できる?
-
ストリームについて。
-
STM32 Nucleo-F446REでデータを...
-
テキストファイル内容の、16進...
-
VBscriptでWebサイトから取得し...
-
VB(VBA)で、バイナリデータを使...
-
Excel VBAが徐々に遅くなる
-
CSVファイルの時刻の形式について
-
【Excel VBA】取り込んだファイ...
-
accessでクエリをExcelにエクス...
-
0バイトのテキストファイル
-
C#でtiffファイルのページ数を取得
-
VB2008 iniファイルの全セクシ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ATTファイルってどうやって開け...
-
テキストファイルの一部分を抽...
-
Excel VBAが徐々に遅くなる
-
VB(VBA)で、バイナリデータを使...
-
テキストファイルの特定行の削...
-
ファイル変換
-
ファイルのチェックサムを改行...
-
研究する文献がたくさんありま...
-
StreamReaderで読み込んだファ...
-
既存のテキストファイルを開く方法
-
ストリームについて。
-
エクセルVBAでメールの自動作成...
-
テキストファイルをiCalendar形...
-
テキストファイル固定長データ...
-
テキストファイル内容の、16進...
-
UTF-8とASCIIコードにおける互...
-
VBSでテキストファイルの2行目...
-
C言語のソースからコメントを抜...
-
別のサーバーのテキストファイ...
-
Zbarというソフトについて
おすすめ情報