BASICでファイル読み込みをします。
子供の頃にN88 BASIC触ってた時は、ファイルという概念がどうしても理解できなかったと記憶してます。パソコンを起動すると、BASICインタプリタが起動するのが当たり前だったので、BASICが起動するのがパソコンだと思い込んでいました。OSって何? BASICあればいいじゃん状態。ずっと避けて通ってきたファイル読み込み、大人になったら余裕で理解できるので、子供の頃のリベンジです。
ファイルを開き、読み込み、閉じる。ファイルを扱うのはこの手順ですね。
サンプルソースです。
takk@deb9:~/tmp$ cat open-input-close.bas | nl -ba -i10 -v10 10 '$lang: "qb" 20 30 open "sample.txt" for input access read as #1 40 50 do until eof(1) 60 line input #1, a$ 70 print a$ 80 loop 90 close #1 takk@deb9:~/tmp$
openで#番号に、ファイルを割り付けて、input #番号でファイルを読み込みます。
EOFを見つけるまで繰り返し読むため、do~loopを使っています。
読み込むデータを作成。
takk@deb9:~/tmp$ seq 100 | pr -t5J | tee sample.txt 1 21 41 61 81 2 22 42 62 82 3 23 43 63 83 4 24 44 64 84 5 25 45 65 85 6 26 46 66 86 7 27 47 67 87 8 28 48 68 88 9 29 49 69 89 10 30 50 70 90 11 31 51 71 91 12 32 52 72 92 13 33 53 73 93 14 34 54 74 94 15 35 55 75 95 16 36 56 76 96 17 37 57 77 97 18 38 58 78 98 19 39 59 79 99 20 40 60 80 100 takk@deb9:~/tmp$
では、ビルドして、ファイルを読み込んでみましょう。
処理は、読み込んでそのまま表示するだけです。
takk@deb9:~/tmp$ fbc open-input-close.bas takk@deb9:~/tmp$ ./open-input-close 1 21 41 61 81 2 22 42 62 82 3 23 43 63 83 4 24 44 64 84 5 25 45 65 85 6 26 46 66 86 7 27 47 67 87 8 28 48 68 88 9 29 49 69 89 10 30 50 70 90 11 31 51 71 91 12 32 52 72 92 13 33 53 73 93 14 34 54 74 94 15 35 55 75 95 16 36 56 76 96 17 37 57 77 97 18 38 58 78 98 19 39 59 79 99 20 40 60 80 100 takk@deb9:~/tmp$
ファイルと結果を比較してみます。
takk@deb9:~/tmp$ !! | diff - sample.txt ./open-input-close | diff - sample.txt takk@deb9:~/tmp$
何も表示されてませんので、一致しましたね。
コメント