MAT PRINT文で書き出したテキストファイルを読み込む方法

  Full BASICでは,(MAT)PRINTは(MAT)INPUT文に対応していません。
  書き出したファイルを後に読み込んで利用したい場合には,内部形式ファイルとして開き,(MAT)WRITE文で書き出して(MAT)READ文で読み込むように設計されています。

  けれども,MAT PRINT文で書き出した配列が数値配列であれば,そのファイルを修正することでMAT INPUT文で読めるようにすることは可能です。要点は,すべての数値の間にコンマを書きこむことです。
 1   2   3   4
 5   6   7   8
 9  10 11 12
のような内容のテキストファイルを,
 1,   2,   3,   4,
 5,   6,   7,   8,
 9,  10, 11, 12
のように修正することで,(ファイル名をa:comma.txtと仮定)
DIM A(3,4)
OPEN #1:NAME "a:comma.txt"
MAT INPUT #1: A
CLOSE #1
で,配列Aに読み込めるようになります。

  この変換を行うプログラムの例を示します。
100 OPEN #1: NAME "a:space.txt"   !入力ファイル
110 OPEN #2: NAME "a:comma.txt"   !出力ファイル
120 ERASE #2
130 LINE INPUT #1:s$
140 DO WHILE s$<>""
150    WHEN EXCEPTION IN
160       LINE INPUT #1 : t$    ! t$は次行
170    USE
180       LET  t$=""
190    END WHEN
200    LET s$=RTRIM$(s$)        ! 右端の空白文字を除去しておく
210    LET p=1
220    DO WHILE s$(p:p)<>""
230       DO UNTIL s$(p:p)<>" "
240          LET p=p+1          ! 最初の空白でない文字を探す
250       LOOP
260       DO UNTIL s$(p:p)=" " OR s$(p:p)=""
270          LET p=p+1          ! 次の空白または行末を探す
280       LOOP
290       IF (t$<>"") OR s$(p:p)=" " THEN  !次行が存在するか行末でないならば,
300          LET  s$(p:p-1)="," !コンマを挿入する
310          LET p=p+1
320       END IF
330    LOOP
340    PRINT #2:s$
350    LET s$=t$
360 LOOP
370 CLOSE #1
380 CLOSE #2
390 END


戻る

inserted by FC2 system