■ 現在のこのページの役立ち度:
表示されない場合こちらのリンクからもご覧になれます。
■ このページの役立ち度を評価する:
役立ち度を評価してください。
(1(左):あまり役立たない - 5(右):大変役立った):
■ ページの共有:
[ サイト内検索 ]
カスタム検索
#10796-0テキストファイルの読み込みかずき2000-08-23(水) 12:03
     #10798-0RE#10796:テキストファイルの読み込みよねKEN2000-08-23(水) 13:12
     #10801-0RE#10796:テキストファイルの読み込み魔界の仮面弁士2000-08-23(水) 13:58
#10796-0
テキストファイルの読み込み
下記のコードを実行すると、ファイルは開けているようなのですが
テキストボックスには1行しか表示されません。

なにかよい方法がありましたらお教えください。

--コード--
Dim text As String      'テキストの内容

---------------------------------------------------------

Private Sub read_Click()
    
    'ファイル入力操作
    Dim intFile As Integer                
    intFile = FreeFile()                  
    
   Open "test.txt" For Input As #intFile    'ファイルを開く
     Do Until EOF(intFile)                 'ファイルを変数へ
        Input #intFile, text
        txtMain.text = text               'テキストファイルを表示する
     Loop
    
End Sub

-------------------
(このコードにこだわらなくてもよい方法がありましたら
 お教えください)

#helpなどを見ているとFSOなるものがあるのですがこれでも
#ファイルを読めるのでしょうか?
#10798-0
RE#10796:テキストファイルの読み込み
> 下記のコードを実行すると、ファイルは開けているようなのですが
> テキストボックスには1行しか表示されません。
   :省略
>      Do Until EOF(intFile)                 'ファイルを変数へ
>         Input #intFile, text
>         txtMain.text = text               'テキストファイルを表示する
これだと、Input #ステートメントでカンマまたは改行が見つかるまでの1データを取得し
それをtxtMain.Textに設定するということになります。
ループ回るたびに取得した1データ分をtxtMain.Textに代入してしまうので、
最終的なデータしかtxtMain.Textに入りません。

行単位でデータを取り出すなら、Line Input #ステートメントです。
また、取り出したデータを追加していくなら、
文字列変数 = 文字列変数 & 取得データ
という形にしましょう。

つまり、上のコードの流れを尊重するなら
txtMain.Text = txtMain.Text & text
となります。

> (このコードにこだわらなくてもよい方法がありましたら
>  お教えください)
Input関数というのがあります。ヘルプをご覧下さい。
 
> #helpなどを見ているとFSOなるものがあるのですがこれでも
> #ファイルを読めるのでしょうか?
できるそうです。が、こっちは私は使ってないのであまり知りません。
ヘルプとにらめっこして自分で確かめましょう。
#10801-0
RE#10796:テキストファイルの読み込み
>         txtMain.text = text               'テキストファイルを表示する
この部分を、
    txtMain.SelStart = Len(txtMain.Text)
    txtMain.SelText = text
に置き換えてみてください。

> (このコードにこだわらなくてもよい方法がありましたら
>  お教えください)
一行単位での読み込みは低速なので、できれば全行を一気に読み込んでしまった方が高速です。
手抜きをするなら、RichTextBoxのLoadFileメソッドを使うという手もあります。


> #helpなどを見ているとFSOなるものがあるのですがこれでも
> #ファイルを読めるのでしょうか?
FSOというのは、FileSystemObjectオブジェクトの通称ですね。
正確に言えば、ファイルの読み込みに使うのは、FSOではなく「TextStreamオブジェクト」です。
もっとも、TextStreamオブジェクトを使うためには、FSOも必要になるのですが…。

で、この「TextStreamオブジェクト」を使うのであれば、「ReadAllメソッド」で、全行取得が可能です。

# 蛇足ですが、Shift-JIS以外のテキストファイルや、バイナリファイルなどにも対応した、
# 「Streamオブジェクト」というものもあります。
お探しの情報は見つかりましたか?お困りの問題は解決しましたか?
サイト内検索, 似た記事検索で見つからなくてもあきらめずに掲示板で質問してみましょう。
VB初心者友の会があなたのお役に立てれば幸いです。また、本ページの投稿者の方々にこの場を借りて感謝致します。
本ページは過去ログを集めて自動構成しています。よろしければこのページに関するフィードバックをお願いします。
(※ 構成の誤り、広告等の不適切な記事、リンク切れ、読めないページの報告など)