2017-03-15 10 views
0

次のコードは、1行に2つの数値を含むテキストファイルからXとYに値を読み込みます(ループの最初の繰り返しはXとYの正しい値を示します)。 、210)。次の反復以降、XとYの値はファイルに含まれている値とは異なります(0,210ではなく2番目の反復では210,210)。私はミスをしているに違いないが、私はそれを見つけることができない! "perforatedcircles.txt" のテキストファイルから書式付きデータを読み取る

Sub main() 
Dim X As Double 
Dim Y As Double 

Open "perforatedcircles.txt" For Input As #1 

Do While Not EOF(1) 
Input #1, X, Y 
Loop 
Close #1 

End Sub 

サンプル内容:入力ファイルが作成されたどのように

70.000 210.000 
0.000 210.000 
-70.000 -210.000 

答えて

0

? Input#ディレクティブが期待しているのとは異なるフォーマットであるようです。

https://msdn.microsoft.com/en-us/library/aa243386(v=vs.60).aspx

「のデータは、通常の書き込み#でファイルに書き込まれる入力#と読みます。のみの入力またはバイナリモードで開いたファイルで、この文を使用します。」

"Note Input#を使用してファイルからデータを正しく読み込むには、Print#ステートメントの代わりにWrite#ステートメントを使用してデータをファイルに書き込みます。適切に区切られた。

スペース区切りを指定すると、ファイルを別々に解析する必要があります。ここに一例があります:

Dim iLine As Integer, 
Dim sFile As String 
Dim sData As String 
Dim sLine() As String 
Dim sSplitLine() As String 
Dim x as Double 
Dim y as Double 

'read the whole file into 1 string variable 
sFile = "perforatedcircles.txt" 
Open sFile For Input As #1 
sData = Input(LOF(1), 1) 
Close #1 
sLine = Split(sData, vbCrLf) 
For iLine = 0 To UBound(sLine) 
    sSplitLine = Split(sLine(UBound(sLine)), " ") 

    x = CDbl(sSplitLine(0)) 
    y = CDbl(sSplitLine(1)) 
    'Do Stuff with your numbers here 
Next iLine 
+0

ファイルは区切り文字としてスペースを入れて書かれています。 – umayfindurself

関連する問題