Open命令を使ってのファイルの読み込み

返信する


答えを正確に入力してください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: Open命令を使ってのファイルの読み込み

by 雷電 » 2006年5月20日(土) 21:43

コードの順番が間違っていたんですね。
分かりました。
今回はどうもありがとうございました。

by konisi » 2006年5月19日(金) 21:10

すんません、コードのミスです。

コード: 全て選択

'宣言部
Dim Dat As String
Dim Enter As String
Enter=Ex"\r\n"

'本体
Open Mid$(buffer,hTop,hEnd-hTop) As #1 
    Do 
        Input #1,File 
        Dat=Dat+File+Enter
        If Eof(1) then Exit Do 
    Loop
Close 1
SetDlgItemText(hMainWnd,EditBox1,Dat) 

by 雷電 » 2006年5月19日(金) 20:59

コンパイルしてみてやってみたところ、あとで気がついたのですが、一番最後の行の文字列がセットされません。
何故でしょう?

by 雷電 » 2006年5月19日(金) 20:15

すいません。
hはいりませんでした。
失礼しました。

by 雷電 » 2006年5月19日(金) 18:26

konishiさんありがとうございました。
全ての文字列、取得と表示ができました。
感謝いたします。

by konisi » 2006年5月18日(木) 21:07

コード: 全て選択

'宣言部
Dim Dat As String
Dim Enter As String
Enter=Ex"\r\n"

'本体
Open Mid$(buffer,hTop,hEnd-hTop) As #1 
    Do 
        Input #1,File 
        If Eof(1) then Exit Do 
        Dat=Dat+File+Enter
    Loop
Close 1
SetDlgItemText(hMainWnd,EditBox1,Dat) 
としてみてはどうでしょうか?

by 雷電 » 2006年5月17日(水) 22:04

Print命令は、コマンドプロンプトの場合ですよね。

コード: 全て選択

Open FileName$ For Input As #1 
Do 
    Input #1,File 
    Print File           '表示・出力系の処理 
    If Eof(1) then Exit Do'TRUEの時 と言う場合には=TRUEは省略できる 
Loop 
Close #1
こうしても、出力されないので、自分なりにアレンジしてみました。
FileName$はDim命令で前に定義しないといけませんね。

コード: 全て選択

Open Mid$(buffer,hTop,hEnd-hTop) As #1
    Do
        Input #1,File
        If Eof(1) then Exit Do
        SetDlgItemText(hMainWnd,EditBox1,File)
    Loop
    Close 1
というよりも、FileName$の定義の仕方が分からないので、前のままでやってみました。しかし、うまくいきません。
全ての文字列は取得されず、ランダムにどこかの一列を取得して出力しているようです。なぜでしょうか?

by konisi » 2006年5月17日(水) 21:47

このようにすればいいのではないのでしょうか?(と言うより僕はいつもこういう方法でやってます。)

コード: 全て選択


Open FileName$ For Input As #1
Do
    Input #1,File
    Print File           '表示・出力系の処理
    If Eof(1) then Exit Do'TRUEの時 と言う場合には=TRUEは省略できる
Loop
Close #1
健闘を祈ります。

by 雷電 » 2006年5月17日(水) 18:25

ということは、Ifで分岐すればいいのですね?
なんか、へたくそですがコードを書いてみましたが、TRUEじゃなかったときの操作はどうやれば良いでしょう?

コード: 全て選択

If Eof(1)=TRUE Then
       Close #1
Else
       'ここの操作が分かりません
End If
という感じですか?

by konisi » 2006年5月16日(火) 23:35

確かInput#文は使ったらファイルポインタが自動で動いてくれるから、そのまま連続してEof(1)がTRUEになるまで読み込み続ければいいのではないかと。

Open命令を使ってのファイルの読み込み

by 雷電 » 2006年5月16日(火) 22:08

以前のトピックにGTRさんが質問されていましたが、そのような機能がほしいのですが
どういうコードを組んでいいか分かりません。BackSerchABなんかも見てるんですが、なかなかうまくできません。
今思ったのですが、Openで

コード: 全て選択

Open Mid$(buffer,hTop,hEnd-hTop) For Input As #1
とファイルを開き

コード: 全て選択

Input #1,File
で読み込んでも、一行しか表示することができません。
それを動かす関数、命令があると思うのですが、分かりません。
ご指導、よろしくお願いします。

ページトップ