X-BASIC/68はEOFコードでファイルの終端を認識するため、それが必須です
(ないと読み込み異常を起こします)。
現在のWindows上の各種テキストエディタやXcodeはEOFを付加しないので、
それを付けるのがこのプログラムです。
一応ここでもソースコードを公開しますが、 X-BASIC/68用なので、X-BASIC/68またはぺけ-BASIC上で動かさないと無意味です(保存時はSHIFT-JISで)。
それと、高速化を何も考慮してないので、かなり遅いです。 必要なら、BC.Xでコンパイルしてくださいまし。
/* X-BASICのプログラム末尾にEOF(&h1a)を付けるプログラム /* X-BASIC/68はEOFコードでファイルの終端を認識するため、それが必須である。 /* (ないと異常動作を起こす。) /* ぺけ-BASICはサイズでも認識するのでなくても問題ない。X-BASIC for iOSも同様。 /* 現在のWindows上のエディタやXcodeはEOFを付加しないので、それを付けるのがこのプログラム。 /* これはX-BASIC/68またはぺけ-BASIC上で動かさないと無意味。 /* print "X-BASIC/68でサンプルプログラムを正常読み込みさせるため、" print "BASICプログラムファイルの終端に&h1aのコードを付加します。" int fp,ofp int c,cc str fname,ofname input "ファイル名(拡張子.bas不要)";fname ofname=fname+"_1a.bas" fname= fname+".bas" print "出力ファイル名:";ofname print "開始するには何かキーを押してください" while inkey$(0)="":endwhile print "しばらくお待ちください" /* fp=fopen(fname,"r") if fp<0 then { print "ファイルが見つかりません:";fname end } ofp=fopen(ofname,"c") if ofp<0 then { fclose(fp) print "ファイルが作成できません:";ofname end } cc=-1 while 1 c=fgetc(fp) if c<0 then break fputc(c,ofp) cc=c:/*1つ前の出力文字 endwhile if cc<>&h1a then fputc(&h1a,ofp) fclose(ofp) fclose(fp) print "終了しました" endX68用なので、LZHで圧縮しています。
LZHファイル : add1a.lzh
ちなみに、ぺけ-BASICはサイズでも認識するのでなくても問題ありません。
X-BASIC for iOSも同様です。
0 件のコメント:
コメントを投稿