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


PICBASICコンパイラ

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

[第114回]



●SDカードIF(34)SDカードをWindows7に接続(7)CSVファイル(5)BINDEC、BINDEC2

前回は説明の途中で終ってしまいました。
相変わらずの諸事多忙です。

今回はバイナリから十進数への変換プログラムを作ります。
新たに作成したプログラムはBINDEC.EXEです。
さっそく実行してみました。

入力するファイルは今までと同じTEST29.BINですから、もう入力データを表示するのは止めてもよいのですけれど先に作ったプログラム(BINCSV.EXE)をもとにして新しいプログラムを作ったりしますから余計な表示部分が残ってしまいます。
こういうところはいずれまとめて削除するようにします。
ちょいと見には今までのBINCSV.EXEでの実行画面と同じように見えますがよく見ると出力ファイルのサイズ(バイト数)がもとのデータに比べてかなり大きくなっています(test29.csv=316bites)。
CSVファイルですから間に「,」が追加されていることに加えてもとの1バイトのデータが十進数に変換されたことによって桁数が増えているからです。
そのあたりを確認するためにDEBUGコマンドを実行して、作成されたTEST29.CSVファイルの中身を確認してみました。
最初の「33 32」はもとのバイナリデータの「20」(16進数表記)を十進数に変換したものです。
16進数の「20」を十進数に変換すると「32」になります。
その次の「33 33」はもとのバイナリデータの「21」(16進数表記)を十進数に変換したものです。
16進数の「21」を十進数に変換すると「33」になります。
うまく変換できているようです。
TeraPadで開いてみました。

CSVファイルですから値の区切りは今までと同じように「,」ですがここで表示されている文字は今までの「英数記号」ではなくて普通に計算で使う十進数になっています。

今度はExcelで開いてみました。

ひとつのセルにひとつの数値が入っています。
これは普通に計算できる「数値」です。

ところで。
今までのところはCSVファイルをTeraPadやExcelで開くと文字や数値が横にならんで表示されました。
目的にも依るのでしょうけれど横方向ではなくて縦方向に並べたいということもあると思います。
Excelには横並び(行)を縦並び(列)に変換する機能がありますがそんな面倒なことをしなくてもそういう目的ならば最初からそのように表示できるCSVファイルを作ったほうが手間が省けます。
で。
「縦並び」になるプログラムも作ってしまいました。
BINDEC2.EXEです。
今までと同じように実行しました。

そのあとDEBUGコマンドを実行してTEST29.CSVの中身を確認してみました。
十進数のところは前と同じですが区切り文字コードとして使われていた「2C」(「,」のASCIIコード)が「0D 0A」になっています。
「0D 0A」は「改行」を示す特殊コードです。

TeraPadで開いてみました。


Excelでも開いてみました。


PICBASICコンパイラ[第114回]
2023.12.19upload

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