2023.12.27
前へ
次へ
ホームページトップへ戻る


PICBASICコンパイラ

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
まるでインタプリタ。でもコンパイラです。超カンタン超シンプルです。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

[第117回]



●SDカードIF(37)SDカードをWindows7に接続(10)CSVファイル(8)BINDECD

相変わらず諸事多忙です。
本年も残りはわずか数日となってしまいました。
今年も例年と同様に大晦日が仕事納めになってしまいそうです。
で。
おそらく例年通り元旦が仕事始めになってしまいますでしょう。
真性ワーカーホリックであります。

前回は80データごとに改行するプログラムを作成しました。
そして「いずれ任意のデータ数で改行できるようなプログラムを作るとよいかと考えています」なんてことを書きました。
「いずれそのうち」なんてことを言っているときっと忘れてしまいます。
なので師走も押し迫ってきてやらねばならぬこともやっておきたいことも山積みなのですけれど、意を決して作ってしまいました。
「意を決して」はちょいとオーバーでありました。
それほどのことはありません。
前回作ったプログラムにほんの少し手を加えるだけでできてしまいました。
前回のプログラムをもとにして任意のデータ数で改行するようにしたプログラムはBINDECD.EXEです。
BINDECD.EXEを実行しました。

前回のプログラムに追加したのは
bytes/line=
という表示をしているところです。
その表示に
20[Enter]
と入力しました。
前回と同じようにTEST31.BINを読み込んでTEST31.CSVを作成しました。

ここまで書いてきて気が付きました。
上の画像ではただ表示されているだけなのか実際にキーボードから入力したものなのかの区別がつきません。
うーん。
自分ではわかっていて書いているのですが、あとから見直してみると「ひとりよがり」になっていることがよくあります。
ひとにものを伝えるというのはなかなかに難しいものです。

そのように気が付いたからにはなんとかすべきでありましょう。
そこでその区別がつくようにもう一度「ストップモーション」風に画像をキャプチャしてみました。
もう一度最初からやり直しです。
bindecd[Enter]と入力しました。

bindecd.exeが実行され、最初に
infilename=
と表示されました。
ここで読み込みたいバイナリファイルのファイル名を入力します。

ファイル名としてtest31と入力します。

拡張子を入力する必要はありません。
最後に[Enter]を入力します。

[Enter]を入力しました。

入力したバイナリファイル名とそれを読み込むことで作成されるCSVファイル名が表示されました。
その次に
bytes/line=
と表示されました。
ここで1行のデータ数を入力します。

1行のデータ数として20を入力します。

ここでは任意のデータ数を入力することができます。
例として20を入力しました。
最後に[Enter]を入力します。

[Enter]を入力しました。

test31.csvが作成され、プログラムが終了しました。

念のためにDEBUGコマンドでtest31.csvの中身を確かめてみます。

debug test31.csvと入力し[Enter]を入力するとDEBUGが開始されます。

[Enter]を入力しました。

Windows7の場合DEBUGコマンドは英語版のようです。
いきなりコマンドプロンプト画面そのものが英語版の表示になってしまいます。
ここからはDEBUGコマンドを終了するまでDEBUGコマンドでのコマンド入力になります。
入力を促すプロンプトマークが>から_に変わりました。

(DEBUGコマンドの)Dコマンドを入力します。

Dコマンドはメモリダンプコマンドです。
読み込んだファイルの先頭から128バイトが表示されます。

[Enter]を入力しました。

先頭の128バイトが表示されました。
DEBUGコマンドは大昔のMSDOSの機能のままです。
DEBUGコマンドの本来の機能はその名の通りマシン語プログラムのデバッグのためのものです。
MSDOSの時代のマシン語プログラムファイル(COMファイル)のプログラム先頭アドレスは0000ではなくて0100です。
そのためメモリダンプは0100から始まります。
ファイルそのもののサイズは最大で0000〜FFFFの64Kバイトです。
上位アドレス(ここでは0CAB)はこのときDEBUGコマンドにWindowsから割り当てられたメモリアドレスの上位16ビットです。

Qコマンドを入力するとDEBUGが終了して画面表示がもとの日本語画面に戻ります。

今回作成したTEST31.CSVは20データごとに改行コード(0D 0A)が挿入されていることが確認できます。
上から4行目と下から2行目です。
そのほかのデータ区切りは「,」(コード2C)です。

そのように作成されたTEST31.CSVをTeraPadで開きました。

20データごとに改行されていることがわかります。
文字数での改行ではなくてデータ数での改行ですからデータの文字数によって行末の位置が変わります。

今度はTEST31.CSVをExcelで開きました。

Excelはひとつのセルにひとつのデータが入りますから行末は数値の桁数に影響されずに縦方向がきれいに揃います。

PICBASICコンパイラ[第117回]
2023.12.27upload

前へ
次へ
ホームページトップへ戻る