アプリ版:「スタンプのみでお礼する」機能のリリースについて

 前に「あいうえお」のような一行を表示させるプログラムについてお聞きしたんですけど、今度は一行目に「あいうえお」二行目に「かきくけこ」三行目に「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

全部表示させるにはどうすればいいかお願いします。

A 回答 (4件)

ようするにテキストファイルの中身を


メッセージボックスに表示したいという事ですよね。

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

参考まで。
    • good
    • 0
この回答へのお礼

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

お礼日時:2001/11/17 16:35

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

メッセージボックスの場所を変えてみましょう
    • good
    • 0
この回答へのお礼

ありがとうございました、strworkが更新されてたんですか(^^;
これからも勉強します。

お礼日時:2001/11/17 16:28

こんにちは。

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
    • good
    • 0
この回答へのお礼

こんにちは^^こういうやりかたもあったんですね、ありがとうございました。FreeFile関数についてわからないので学習しようと思います。

お礼日時:2001/11/17 16:33

まずは回答


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」は改行です。
    • good
    • 0
この回答へのお礼

丁寧な説明ありがとうございます。vbCrLfは改行なんですね(^^;
ありがとうございました。

お礼日時:2001/11/17 16:31

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!