■ 現在のこのページの役立ち度:
表示されない場合こちらのリンクからもご覧になれます。
■ このページの役立ち度を評価する:
役立ち度を評価してください。
(1(左):あまり役立たない - 5(右):大変役立った):
■ ページの共有:
[ サイト内検索 ]
カスタム検索
#22365-0データたま2001-08-10(金) 17:48
     #22366-0RE#22365:データ匿名223662001-08-10(金) 18:10
     #22367-0RE#22366:データたま2001-08-10(金) 20:16
     #22368-0RE#22367:データ匿名223682001-08-11(土) 01:19
     #22369-0RE#22368:データたま2001-08-11(土) 03:42
     #22370-0RE#22369:データレベル112001-08-11(土) 10:17
#22365-0
データ
テキストファイル内のデータ("aaa","bbb","ccc" という感じで)を読み込んで、
リストボックスに(aaa bbb ccc という感じで)貼り付けることは出来たのですが、その逆が分かりません。
リストボックスのデータ(aaa bbb ccc)を逆に、テキストファイルにデータ("aaa","bbb","ccc")
と書き出したいのですが、どうコードを書けばよいでしょうか?
聞いてばっかりだと自分のためにもならないので、一応イメージ的なコードを考えると・・

  Open list1.list  For Input As #1
   Open "c:\test02.txt" For Output As #2
   Do While Not EOF(1)
    Write #2, a1, a2, a3, "aaa", "bbb","ccc"                                       
   Loop                                                                 
   Close #1, #2

パッと思いつく習い始めの頭で、書いてみましたけど、なんか違いますね(笑)
書いててなにかヘンだと思いながら・・(笑)

どうしたらいいでしょうか?教えてください。
#22366-0
RE#22365:データ
> テキストファイル内のデータ("aaa","bbb","ccc" という感じで)を読み込んで、
> リストボックスに(aaa bbb ccc という感じで)貼り付けることは出来たのですが、その逆が分かりません。
> リストボックスのデータ(aaa bbb ccc)を逆に、テキストファイルにデータ("aaa","bbb","ccc")
> と書き出したいのですが、どうコードを書けばよいでしょうか?

>   Open list1.list  For Input As #1

ここが違います(^^;
リストボックスのデータにアクセスするには、Openは使わずにFor〜Nextを使ってループします。

Dim i As Integer
Dim iFileNo As Integer
Dim a() As String

iFileNo = FreeFile
Open "c:\test02.txt" For Output As #iFileNo
   For i = 0 To List1.ListCount - 1
      a() = Split(List1.List(i)," ")
      Write #iFileNo, a(0), a(1), a(2)
   Next i
Close #iFileNo
#22367-0
RE#22366:データ
> > テキストファイル内のデータ("aaa","bbb","ccc" という感じで)を読み込んで、
> > リストボックスに(aaa bbb ccc という感じで)貼り付けることは出来たのですが、その逆が分かりません。
> > リストボックスのデータ(aaa bbb ccc)を逆に、テキストファイルにデータ("aaa","bbb","ccc")
> > と書き出したいのですが、どうコードを書けばよいでしょうか?
> 
> >   Open list1.list  For Input As #1
> 
> ここが違います(^^;
> リストボックスのデータにアクセスするには、Openは使わずにFor〜Nextを使ってループします。
> 
> Dim i As Integer
> Dim iFileNo As Integer
> Dim a() As String
> 
> iFileNo = FreeFile
> Open "c:\test02.txt" For Output As #iFileNo
>    For i = 0 To List1.ListCount - 1
>       a() = Split(List1.List(i)," ")
>       Write #iFileNo, a(0), a(1), a(2)
>    Next i
> Close #iFileNo

あ〜なるほど! For Nextですか。。勉強になりました。
ちなみに、このままだと、ボタンを押すたびに、リストの内のデータがはいりますが、
例)リストボックスのデータ(aaa bbb ccc)で、ボタンを一回押すとテキストデータに
"aaa","bbb","ccc"と入りますが、2回押しても、テキスト内データは"aaa","bbb","ccc"
の一件だけですよね!?
それを、クリックするたびにデータがたくわえられる・・つまり、
2回クリックしたら
"aaa","bbb","ccc"
"aaa","bbb","ccc"
っとなるようにするには、どのように書き換えればよいでしょうか?
#22368-0
RE#22367:データ
> あ〜なるほど! For Nextですか。。勉強になりました。
> ちなみに、このままだと、ボタンを押すたびに、リストの内のデータがはいりますが、
> 例)リストボックスのデータ(aaa bbb ccc)で、ボタンを一回押すとテキストデータに
> "aaa","bbb","ccc"と入りますが、2回押しても、テキスト内データは"aaa","bbb","ccc"
> の一件だけですよね!?
> それを、クリックするたびにデータがたくわえられる・・つまり、
> 2回クリックしたら
> "aaa","bbb","ccc"
> "aaa","bbb","ccc"
> っとなるようにするには、どのように書き換えればよいでしょうか?

> Open "c:\test02.txt" For Output As #iFileNo
を
Open "c:\test02.txt" For Append As #iFileNo
にすればOKです。
#22369-0
RE#22368:データ
> > あ〜なるほど! For Nextですか。。勉強になりました。
> > ちなみに、このままだと、ボタンを押すたびに、リストの内のデータがはいりますが、
> > 例)リストボックスのデータ(aaa bbb ccc)で、ボタンを一回押すとテキストデータに
> > "aaa","bbb","ccc"と入りますが、2回押しても、テキスト内データは"aaa","bbb","ccc"
> > の一件だけですよね!?
> > それを、クリックするたびにデータがたくわえられる・・つまり、
> > 2回クリックしたら
> > "aaa","bbb","ccc"
> > "aaa","bbb","ccc"
> > っとなるようにするには、どのように書き換えればよいでしょうか?
> 
> > Open "c:\test02.txt" For Output As #iFileNo
> を
> Open "c:\test02.txt" For Append As #iFileNo
> にすればOKです。

アドバイス。ありがとうございました!
最後に、もう一つだけ夜中の3時にまでやってもわからない、プログラム部分があります。
上記のアドバイスで、データを蓄えれることはできたのですが、
もう少し深く話しますと、そのリスト内データは、違うフォームのテキストボックス1から名前を打って
入ってきた人が、あるデータ郡から選んだ内容をリスト内に出していたのです。
そこで、最後に、テキスト出力する際、その頭の行にでもその人の名前を入れる方法などは
ないでしょうか? 無理難題かもしれませんが、ここでどうしたらいいか、四苦八苦してるので
ご教授おねがいします。
#22370-0
RE#22369:データ
> アドバイス。ありがとうございました!
> 最後に、もう一つだけ夜中の3時にまでやってもわからない、プログラム部分があります。
> 上記のアドバイスで、データを蓄えれることはできたのですが、
> もう少し深く話しますと、そのリスト内データは、違うフォームのテキストボックス1から名前を打って
> 入ってきた人が、あるデータ郡から選んだ内容をリスト内に出していたのです。
> そこで、最後に、テキスト出力する際、その頭の行にでもその人の名前を入れる方法などは
> ないでしょうか? 無理難題かもしれませんが、ここでどうしたらいいか、四苦八苦してるので
> ご教授おねがいします。
テキストファイルはシーケンシャルファイルなので、変更や途中行追加・削除は出来ません。
1行目から作り直す形になります。
もっとスマートな方法にしたいのであれば、DAO + MDB でデータベースに挑戦してみるのも良い
かと思います。VBからDBを操作する方法はいずれは通らねばならないと思いますので・・・
このページと関連する記事:
#10926-0「開く」と「名前を付けて保存」に関する質問2000-08-27(日) 22:46
#7782-0リストボックスの書き出し2000-04-27(木) 17:29
#16171-0ファイルが見つからない!?2001-05-18(金) 11:14
#22299-0まゆきさんへ2001-08-08(水) 16:05
#17623-0テキストファイルからリストボックスに読みこむ方法2001-01-09(火) 10:49
#40587-0テキストファイルの文字列置換方法2001-03-21(水) 15:34
#22373-0テキストボックス内のデータ2001-08-12(日) 15:54
#20008-0リストボックスの読み込み2001-04-03(火) 18:59
#7392-0ソートされたテキストファイルにデータを書き込むには2000-02-07(月) 16:01
#29210-0テキストファイルの最後の行を削除2002-06-05(水) 23:00
お探しの情報は見つかりましたか?お困りの問題は解決しましたか?
サイト内検索, 似た記事検索で見つからなくてもあきらめずに掲示板で質問してみましょう。
VB初心者友の会があなたのお役に立てれば幸いです。また、本ページの投稿者の方々にこの場を借りて感謝致します。
本ページは過去ログを集めて自動構成しています。よろしければこのページに関するフィードバックをお願いします。
(※ 構成の誤り、広告等の不適切な記事、リンク切れ、読めないページの報告など)