OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

プログラムについて

  • 困ってます
  • 質問No.169188
  • 閲覧数61
  • ありがとう数4
  • 気になる数0
  • 回答数4
  • コメント数0

お礼率 46% (128/273)

 前に「あいうえお」のような一行を表示させるプログラムについてお聞きしたんですけど、今度は一行目に「あいうえお」二行目に「かきくけこ」三行目に「1234567890」四行目に「abcd」のように一度に四行、またはそれ以上を表示させたいんです。
それで次のようにプログラムを作ったんですが最後の行のabcdが表示されるだけでした。

Private Sub Command1_Click()
Dim strWork As String
Open "c:\mydata\test.txt" For Input As #1
Do While Not EOF(1)
Line Input #1, strWork
Loop
Close #1
MsgBox strWork
End Sub

全部表示させるにはどうすればいいかお願いします。
通報する
  • 回答数4
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.2
レベル12

ベストアンサー率 65% (276/422)

strWork が更新されて、最後の一文だけの情報になってます。

Private Sub Command1_Click()
Dim strWork As String
Open "c:\mydata\test.txt" For Input As #1
Do While Not EOF(1)
Line Input #1, strWork
MsgBox strWork
Loop
Close #1
End Sub

メッセージボックスの場所を変えてみましょう
お礼コメント
mos21

お礼率 46% (128/273)

ありがとうございました、strworkが更新されてたんですか(^^;
これからも勉強します。
投稿日時 - 2001-11-17 16:28:12
-PR-
-PR-

その他の回答 (全3件)

  • 回答No.1
レベル10

ベストアンサー率 35% (51/145)

ようするにテキストファイルの中身を メッセージボックスに表示したいという事ですよね。 DO WHILE NOT EOF(1) LINE INPUT #1,BUFF1 BUFF1=BUFF1+CHR(13)+CHT(10) BUFF2=BUFF2+BUFF1 LOOP 参考まで。 ...続きを読む
ようするにテキストファイルの中身を
メッセージボックスに表示したいという事ですよね。

DO WHILE NOT EOF(1)
LINE INPUT #1,BUFF1
BUFF1=BUFF1+CHR(13)+CHT(10)
BUFF2=BUFF2+BUFF1
LOOP

参考まで。
お礼コメント
mos21

お礼率 46% (128/273)

アドバイスありがとうございました。そうなんです、テキストファイルの中身を
メッセージボックスに表示したいんですがうまくいかなくて(^^;
やってみますね、ありがとうございました。
投稿日時 - 2001-11-17 16:35:37


  • 回答No.3
レベル14

ベストアンサー率 51% (1179/2272)

こんにちは。maruru01です。 このコードではtest.txtの最後の行しかstrWorkに格納されません。 1行ずつ読んでつなげていく必要があります。 次のようにします。 なお、ファイル番号は、FreeFile関数を使った方が確実です。 では。 Private Sub Command1_Click()   Dim temp As String   Dim strWork As ...続きを読む
こんにちは。maruru01です。
このコードではtest.txtの最後の行しかstrWorkに格納されません。
1行ずつ読んでつなげていく必要があります。
次のようにします。
なお、ファイル番号は、FreeFile関数を使った方が確実です。
では。

Private Sub Command1_Click()

  Dim temp As String
  Dim strWork As String
  Dim fileNum As Integer

  fileNum = FreeFile
  strWork = ""
  Open "c:\mydata\test.txt" For Input As #fileNum
  Do While Not EOF(fileNum)
    Line Input #fileNum, temp
    strWork = strWork & temp & vbCrLf
  Loop
  Close #fileNum

  MsgBox strWork

End Sub
お礼コメント
mos21

お礼率 46% (128/273)

こんにちは^^こういうやりかたもあったんですね、ありがとうございました。FreeFile関数についてわからないので学習しようと思います。
投稿日時 - 2001-11-17 16:33:38
  • 回答No.4
レベル12

ベストアンサー率 45% (207/457)

まずは回答 Private Sub Command1_Click() Dim strWork As String Dim strInputBuff As String Open "c:\mydata\test.txt" For Input As #1 strWork = "" Do While Not EOF(1) Line Input #1 ...続きを読む
まずは回答
Private Sub Command1_Click()
Dim strWork As String
Dim strInputBuff As String
Open "c:\mydata\test.txt" For Input As #1
strWork = ""
Do While Not EOF(1)
Line Input #1, strInputBuff
strWork = strWork & strInputBuff & vbCrLf
Loop
Close #1
MsgBox strWork
End Sub

ここから説明
Do
Line Input #1, strWork
Loop
とするとループ1回目の"strWork"は「あいうえお」で
ループ2回目は「かきくけこ」です、3回目は「1234567890」、4回目は「abcd」が各々上書き設定されます。
5回目はEOFの為ループを抜けます。
よって最後の「abcd」がメッセージボックスとして表示されるという事です。

ですから回答のように一度別の変数へ追加しながら代入する必要があります。なお、「vbCrLf」は改行です。
お礼コメント
mos21

お礼率 46% (128/273)

丁寧な説明ありがとうございます。vbCrLfは改行なんですね(^^;
ありがとうございました。
投稿日時 - 2001-11-17 16:31:13
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ