重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

ファイルの中身は以下のようになっています.
(fortran向けのデータのため桁が指定されています.)

<ファイルの中身>*********************
_______400________10
____4____1
__10.00000___0.00000___0.00000

  …     …     …
************************************
(_は空白と考えてください.)

全て桁を指定しており,右詰で記入されています.

これらをVBで読み込みたいのですが,
たとえば1行目を
input(No,I & J)
と書いても読み込めません.
というところまではわかるのですが…

読み込める方法(記述)があれば教えてください!!
お願いします!!

A 回答 (3件)

> 「切り出し」というのはどういう方法ですか?


項目の区切り文字があるようにみえませんのでMidB関数を使用してください。

もともと例示されているレコードフォーマットが不明ですが、以下のようにすることで7項目読みだせます。
ループ制御は考慮してませんのであしからず。
また各項目とも文字型です。数値型への変換は、がんばってくださいね。
MidとMidBの違いなどはヘルプなどで把握してください。

Dim strBuffer As String
Dim nFile As Long

Dim strField1 As String
Dim strField2 As String
Dim strField3 As String
Dim strField4 As String
Dim strField5 As String
Dim strField6 As String
Dim strField7 As String

nFile=FreeFile

Open "C:\TEST.TXT" For Input As #nFile

LineInput #nFile, strBuffer
strField1 = MidB(strBuffer, 1, 10)
strField2 = MidB(strBuffer, 11, 10)

LineInput #nFile, strBuffer
strField3 = MidB(strBuffer, 1, 5)
strField4 = MidB(strBuffer, 6, 5)

LineInput #nFile, strBuffer
strField5 = MidB(strBuffer, 1, 10)
strField6 = MidB(strBuffer, 11, 10)
strField7 = MidB(strBuffer, 21, 10)

Close #nFile

End

実際に試験してないので間違えてたらお許しください。
    • good
    • 0
この回答へのお礼

大変わかりやすいご回答ありがとうございます!
今からやってみたいと思います.

お礼日時:2004/08/30 15:48

レコードの状態(改行コードとか復帰コードの入り具合)が説明されてなくて、困るのですが、旧DOSBasic時代に


INPUT\ と言うのがあった。IOCSが読み取った文字を任意の数だけ返すと言うものでした。VBでも使えるかやって見てください。
(追記)¥がなくなって、VBでもINPUT関数で残っていた。s=INPUT(20,#1)
20は文字数(バイト数)。#1はファィル番号。
復帰コード、空白等はそのまま読むそうです。
    • good
    • 0

いくつか方法はあるでしょうが、とりあえず簡単に、なら。




Line Input で一行丸ごと読み込んでから、切り出しされては?

この回答への補足

一行丸ごと読み込んだ後の「切り出し」というのはどういう方法ですか?
すみません,初心者なもので…

よろしくお願いします...

補足日時:2004/08/26 15:34
    • good
    • 0

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