dポイントプレゼントキャンペーン実施中!

1.txtの中身が

01110
10100

であったとします

open "1.txt" for input as #1
でファイルを開いて、

dim readin(10) as integer
に対して、
readin(0)=0
readin(1)=1
readin(2)=1
・・・   =1
     =0
     =1
     =0
readin(7)=1
readin(8)=0
readin(9)=0
というように、整数の配列にテキストの中にある0と1を代入したいのですが、どうすればよいのでしょうか。

検索をしても、line input のように行で読み込むものや、項目の間にスペースの区切りが必要なものが出てきます。

テキストの中身をスペースで区切る、もしくはlineinputでバッファ変数に読み込んだあと、leftなどでバッファから読み込むことも出来そうですが、それは最終の手段としておいておいて、
一回の操作で直接1文字のみ読み込む方法があれば教えてください。

A 回答 (4件)

char = Input(1, #1)



で1文字読み込みができます。

ただし、キャリッジ リターン (Chr(13))、ライン フィード (Chr(10))なども1文字として読み込みますので、それらの文字は無視する必要があります。
    • good
    • 0
この回答へのお礼

input( , )を用いてバッファ変数に1文字読み込んだあと、
if temp<>chr(13) and temp<>chr(10) then・・・
で改行を無視し、
val()を用いて数値化することで、1桁の整数を読み込むことができました。
ありがとうございました。

お礼日時:2012/02/27 17:52

No1です。

質問の最後を読み飛ばしていました。
>一回の操作で直接1文字のみ読み込む方法

したがて、No1は
>それは最終の手段としておいておいて

にしておいてください。
    • good
    • 0

テキストファイルをランダムファイルとして読めば簡単では・・・



1レコードを1LENにしてランダムOPENすれば1文字単位で読めますよ。

dim readin(10) as integer

x=0

open "1.txt" for random as #1 len=1

jp1:

if eof(1) then close :goto jp2

x=x+1 : get #1 , x , readin(x)

goto jp1

jp2:

end


配列の変数 readin(1) ~ readin(10) に一文字単位で入ります。

※ あえて 1からにしておけば 1文字目がreadin(1)に 対応するので解かり易い

0から入れたければ get #1,x,readin(x-1) にしてください
    • good
    • 0

方法はいろいろありますが、ベタな方法で。




Sub test()
Dim fileNum As Integer
Dim buf
Dim ary() As String
Dim i As Long
Dim j As Long
Dim k As Long

fileNum = FreeFile
Open "C:\Documents and Settings\user\デスクトップ\my.txt" For Input As #fileNum
Do Until EOF(fileNum)
Line Input #fileNum, buf
buf = buf & buf
Loop

i = Len(buf)
ReDim Preserve ary(i)
For j = 1 To i
ary(j) = Mid(buf, j, 1)
Next j

Debug.Print "読み込んだ文字列は" & buf
Debug.Print "以下より各要素表示"
For k = 1 To i
Debug.Print "ary(" & k & ")=" & ary(k)
Next k

Close #fileNum
End Sub
    • good
    • 0

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