PIC−USBIO using BASIC
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
USBインターフェースを内蔵したPICを使ってWindowsパソコンで外部回路を制御するための各種I/O基板の製作記事です。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
[第14回]
●文字変数、文字定数の結合
4日ぶりの更新になってしまいました。
複数のお客様からまとまったご注文をいただきましたのでこのところ大忙しなのです。
感謝、感謝であります。
実はそのほかに色々考えていることなどがあって、それでついHPの更新が後回しになってしまいました。
しばらくはこの状況が続きそうです。
気長なお付き合いをお願いいたします。
それで。
前回はDATE$、TIME$について書きました。
DATE$、TIME$はBASICの機能としてはごく普通の機能です。
しかし前回はそれとは別にDATE2$、TIME2$というシステム変数も紹介しました。
これはオリジナルの変数でZB3BASICにもありません。
今回PIC−USBIO用のBASICのために新規に考えたものです。
この機能は[第7回]で紹介しましたCSVファイルの作成のためにあるとよいと思いついて作ったものです。
ファイル名を指定してオープンするためにWOPEN命令を使います。
WOPEN #n,ファイル名
です。
実はその時点ではファイル名は文字定数(” ”で囲った文字型の定数)として考えていました。
しかしデータロガーとしての使い道をよくよく考えてみるとファイル名が定数(プログラムを書く時点で決っている文字列)というのはちょっと不便ではないかということに気が付きました。
たとえばログファイルには日付や時間の情報が必須になります。
データロガーの場合もファイル名に日付や時間の情報があったら便利ではないかと思います。
そのためには当然「ファイル名」は変数である必要があります。
そこでWOPEN、ROPENの機能を拡張してファイル名に文字型の定数のほかに文字型の変数も使えるようにしました。
そしてその次に行なったのがDATE2$、TIME2$の創設です。
これはどういうことかと言いますと。
一般的なDATE$の値は”YY/MM/DD”という文字列で示されます。
TIME$の値は”HH:MM:SS”という文字列で示されます。
ところがファイル名(半角英数字の場合)に/や:は使えないのです。
Windowsでは全角のファイル名も使えるのですが、当BASICでは全角の文字列は考えていません。
ソフトウェアの負担を軽くするために扱える文字コードは半角英数及び一部の記号のみに限定しています。
話を元に戻します。
ですからファイル名に日付や時間を含めようとするとDATE$、TIME$から/と:を外して数字だけを取り出さなくてはなりません。
そのための関数としてはLEFT$、MID$、RIGHT$があります。
それを使えばよいのですけれど、使うにしてもできるだけ簡単に使えることが望ましい、というのがDATE2$、TIME2$を考え出した理由でした。
実際の使用例を見ていただきます。
もとのプログラム(TEST66.TXT)は[第8回]で使ったテストプログラムです。
その一部を書き換えました。
こういうときに行番号が必要になります。
22と24を追加しました。
それからカーソルを移動して30行を書き換えました。
こういうときにスクリーンエディタは実に便利です。
REN(renumber)コマンドで行番号を10番飛びに直しました。
番号を付け直したあとの30行が今回のテーマ、文字変数、文字定数の結合です。
文字変数、文字定数を結合したいときは’+’記号を使います。
文字列’test4_’のうしろにdate2$を結合しました。
文字変数への代入は数値型と同じように’=’を使います。
結合した結果をfname$に入れます。
40行でfname$の中身を画面に表示します。
RUNコマンドで実行しました。
あれっ?
うっかりしていました。
狙った通りのファイル名になったのですが、うっかりしていて拡張子’.csv’をつけるのを忘れてしまいました。
拡張子がなくてもTeraPadなら普通に開けます。
拡張子がないファイルはExcelでも開くことはできますが、開くための手続きがちょっと面倒です。
’.csv’を追加しました。
カーソルを30行に移動してそこで後ろに+”.csv”を追加しました。
スクリーンエディタの便利なところです。
またインタプリタでかつ行番号付きプログラムがデバッグや追加編集が極めて容易なことの参考例でもあります。
TeraPadで開きました。
Excelで開きました。
PIC−USBIO using BASIC[第14回]
2022.6.21upload
前へ
次へ
ホームページトップへ戻る