
■ BASCOM-AVR (DEMO) の使用方法 ■ |
変数の宣言と、操作・変換に関する命令 |
● 変数の宣言に関する命令です。 |
DIM |
変数や配列を使用するために、名前と型式を宣言します。 |
DEFxxx |
指定した文字で始まるすべての変数を、指定された型として宣言(DIM)します。 |
LOCAL |
サブルーチンやユーザー関数の、内部だけで使用する、一時的な変数を宣言します。 |
CONST |
記号定数(定数に名前を付けたもの)を宣言します。 |
ALIAS |
ポート名などの、割り当て先が決まっている固有名を、別の名前で参照します。 |
CONFIG BASE |
すべての配列に対する、添え字の下限値を設定します。 |
● 変数の操作や変換に関する命令です。 |
SWAP |
同じ型式の、2つの変数の内容を交換します。 |
INCR |
変数の数値に、1を足します。 (インクリメント) |
DECR |
変数の数値から、1を引きます。 (ディクリメント) |
SHIFT |
変数の内容を、右または左へ、任意のビット数分シフト(移動)させます。 |
ROTATE |
変数の内容を、右または左へ、任意のビット数分ローテート(回転)させます。 |
MAKEINT |
上位と下位、2つのバイト型変数を、1つのワードまたはインテジャー型に変換します。 |
LOW |
ワードやロング型の変数から、下位の8ビットを取り出し、バイト型変数に入れます。 |
HIGH |
ワードやロング型の変数から、上位の8ビットを取り出し、バイト型変数に入れます。 |
HIGHW |
ロング型変数から、上位16ビットを取り出し、ワードまたはインテジャー型に入れます。 |
MAKEBCD |
10進数の数値を、BCD(Binary coded decimal)値に変換します。 |
MAKEDEC |
BCD(Binary coded decimal)値を、10進数の数値に変換します。 |
GRAY2BIN |
グレイコード値を、バイナリ値に変換します。 |
BIN2GRAY |
バイナリ値を、グレイコード値に変換します。 |
COMPARE |
2つの変数に対してバイト単位の比較を行います。 |
MAX |
配列に格納されている最大の数値と、その配列の添え字番号を調べます。 |
MIN |
配列に格納されている最小の数値と、その配列の添え字番号を調べます。 |
SORT |
配列に格納されている内容を、昇順にソート(並び替え)します。 |
FLIP |
バイト変数内のビット配置を、上位と下位の間で逆にします。 |
SIZEOF |
変数のメモリー上のサイズを調べます。 (バイト数で返します) |
● 文字列の操作や変換に関する命令です。 |
ASC |
文字列の先頭にある文字の、ASCIIコード値を変数に入れます。 |
CHR |
ASCIIコードが入った変数または定数を、1つの文字に変換し文字列に入れます。 |
STR |
変数の数値を、文字列に変換します。 |
VAL |
数値を表現した文字列を、数値に変換します。 |
BIN |
変数の数値を、バイナリ(2進数)の文字列に変換します。 |
BINVAL |
バイナリ(2進数)の文字列を、数値に変換します。 |
BCD |
BCDコードで表される数値変数を、文字列に変換し表示装置に出力します。 |
HEX |
変数の数値を、ヘキサデシマル(16進数)の文字列に変換します。 |
HEXVAL |
ヘキサデシマル(16進数)の文字列を、数値に変換します。 |
FORMAT |
数値を表す文字列の、フォーマット(形式)を変更します。 |
FUSING |
シングル型(浮動小数点)変数の、小数点以下のフォーマット(形式)を調整します。 |
CONFIG
SINGLE |
シングル型(浮動小数点)変数の、小数点以下の有効桁数を指定します。 |
CONFIG DP |
シングル型(浮動小数点)変数とFUSING命令の、小数点に使用する記号を指定します。 |
LEN |
文字列の文字数を調べて、変数に入れます。 |
LEFT |
文字列の左側(先頭)から、指定された数の文字を取り出し、文字変数に入れます。 |
RIGHT |
文字列の右側(末尾)から、指定された数の文字を取り出し、文字変数に入れます。 |
MID |
文字列の指定の位置から任意の文字数を取り出し、変数に入れるまたは入れ替えます。 |
INSTR |
文字列の中から、指定した文字列を検索し、その位置を変数に入れます。 |
CHARPOS |
文字列の中から、指定した1文字を検索し、その位置を変数に入れます。 |
SPLIT |
複数の文字列が、同じ文字や記号で区切られている場合に、それを配列に分割します。 |
JOIN |
複数の文字列の配列を、1行の文字列に結合します。 |
STRING |
ASCIIコードに対応する文字を、指定した個数分、文字列に入れます。 |
SPACE |
文字変数に、指定した数のスペース(空白)文字を入れます。 |
TRIM |
文字列の、先頭と末尾にあるスペース(空白)を、すべて取り除きます。 |
LTRIM |
文字列の、先頭にあるスペース(空白)を、すべて取り除きます。 |
RTRIM |
文字列の、末尾にあるスペース(空白)を、すべて取り除きます。 |
LCASE |
文字列の英字を、すべて小文字に変換します。 |
UCASE |
文字列の英字を、すべて大文字に変換します。 |
QUOTE |
文字列の前後に、ダブルクォーテーションマーク[ " ]を付加します。 |
INSERTCHAR |
文字列の任意の位置に、新たな1文字を挿入します。 |
DELCHAR |
文字列内の指定した位置にある1文字を削除します。 |
DELCHARS |
文字列から、指定された文字値に一致するすべての文字を削除します。 |
REPLACE
CHARS |
文字列内の指定した文字を、すべて別の文字に置き換えます。 |
STR2DIGITS |
数値表現の文字列を、桁ごとに数値配列へ分割します。 |
DIM |
一覧へ戻る |
変数や配列を使用するために、名前と型式を宣言します。
書式 |
Dim variable As type
Dim variable As location type At address Overlay |
注釈 |
variable = |
変数や配列の名前。 |
type = |
変数や配列の型式。 (Bit,Byte,Word,Integer,Long,Single,Double,String) |
location = |
変数を置く場所を指定。 (SRAM、ERAM、XRAM)
(オプション) |
address = |
変数が置かれるメモリーの位置を番地で指定。 (オプション) |
Overlay = |
架空変数であることを宣言。 (オプション) |
|
・変数や配列の、名前の付け方や型式については、こちらを参照して下さい。 → 変数
・1行に複数の宣言を、カンマ[ , ]で区切り記述できます。
・locationは、変数を格納するメモリーの種類を指定します。
・記載しなければ、内蔵のSRAMエリアに配置され、ERAMは内蔵のEEPROM、XRAMは
外部メモリーにそれぞれ配置されます。
・メモリーの使用方法は、こちらを参照して下さい。 → メモリーの種類と使用方法
・addressは、接頭語に[ $ ]または[ &H ]を付けることで、どちらも16進表記になります。
・Overlayは、メモリーを使用しない架空の変数を宣言します。
・addressで絶対番地を指定するので、他に宣言された変数とオーバーラップする形で
使用しますが、通常の用途ではあまり必要でないと思いますので、詳細は省略します。
|
(例) |
|
Dim A As Byte |
' 基本形。 |
Dim Bb As Byte , Cw As Word |
' 複数の変数宣言を、カンマ[ , ]で
区切り記述。 |
Dim Lcdchr As String * 5 |
' 文字列を5文字で宣言します。 |
Dim Ndat(10) As Byte |
' 配列を10個宣言します。 |
Dim Edat1 As Eram Byte |
' EEPROMの先頭番地から順に割り当て
られます。 |
Dim Edat2 As Eram Byte At $10 |
' EEPROMの$10番地に宣言されます。 |
|
|
DEFxxx |
一覧へ戻る |
指定した文字で始まるすべての変数を、指定された型として宣言(DIM)します。
書式 |
DEFxxx char |
注釈 |
xxx = |
Defbit
Defbyte
Defint
Defword
Deflng
Defsng
Defdbl |
BIT型
BYTE型
INTEGER型
WORD型
LONG型
SINGLE型
DOUBLE型 |
|
・特定の文字で始まるすべての変数を、指定された型として宣言(DIM)します。
・使用する個々の変数を宣言(DIM)することもできますが、コンパイラにその処理を
任せることができます。
|
(例) |
|
Defbit b |
' "b"で始まる変数をBIT型で宣言。 |
DefInt c |
' "c"で始まる変数をINTEGER型で宣言。 |
Set b1 |
' ビットをセットする。 |
car = 12345 |
' 整数を代入する。 |
cdef = 987 |
' 整数を代入する。 |
|
|
LOCAL |
一覧へ戻る |
サブルーチンやユーザー関数の、内部だけで使用する、一時的な変数を宣言します。
書式 |
Local variable As type |
注釈 |
variable = |
変数の名前。 |
type = |
変数の型式。
(Byte , Word , Integer , Long , Single , String) |
|
・Bit型変数と配列は、使用できません。
・ERAM、XRAMへの配置もできません。
・ローカル変数は、使用する間だけフレーム領域にメモリーが確保され、ルーチン終了時には
そのメモリーが解放されます。
・フレーム領域の詳細は、こちらを参照して下さい。 → メモリーの種類と使用方法
|
(例) |
|
Declare Sub Test(byval T As Byte) |
' サブルーチンを宣言。 |
Call Test(2) |
' サブルーチンを呼び出し。(数値を受け渡し) |
End |
' プログラムの終了。 |
' |
' |
Sub Test(byval T As Byte) |
' サブルーチンの手続きを定義。 |
Local S As Byte |
' ローカル変数を宣言。 |
S = T + 1 |
' 受け渡された数値に1を足す。 |
Print S |
' 計算結果をプリント。(3がプリントされます) |
End Sub |
' サブルーチンの終了。 |
|
|
CONST |
一覧へ戻る |
記号定数(定数に名前を付けたもの)を宣言します。
書式 |
symbol = value |
注釈 |
symbol = |
定数に付ける名前。 |
value = |
記号定数に割り当てる、数値や文字列。 |
|
・この命令は、コンパイラが値を参照するだけなので、プログラムメモリーを消費しません。
・例えば、ある決められた設定値を、プログラム内の複数の場所で使用するとします。
この設定値を、それぞれの場所に数値で記述すると、設定値に変更が出た場合、
すべての値を修正しなければなりません。
この様な場合に、設定値に名前を付けておくことで、CONST命令行だけを修正すれば、
すべての値が変更されることになります。
|
(例) |
|
Const Aset = 5 |
' 数値を割り当て。 |
Const Cdata = "test" |
' 文字列を割り当て。 |
Const S1 = Sin(1) |
' 関数の値を割り当て。 |
|
|
CONFIG BASE |
一覧へ戻る |
すべての配列に対する、添え字の下限値を設定します。
書式 |
Config Base = value |
注釈 |
value = |
添え字の下限値。 (0 または 1) |
|
・デフォルトでは、配列の添え字は(1)から始まります。
・場合によっては、添え字が(0)から始まる方が扱いやすい場合があります。
・「Config Base = 0」を使用すると、すべての配列が0から始まるように、デフォルト値を
無効にすることができます。
・_BASEという名前の定数が、設定を反映します。
・実行中にBASEを変更することはできません。
・既存のプログラムでこの設定を変える場合は、プログラムを変更する必要があります。
|
SWAP |
一覧へ戻る |
同じ型式の、2つの変数の内容を交換します。
書式 |
Swap variable , variable |
注釈 |
variable = 内容を交換する変数の名前。 |
・交換できる変数の型式は、ビット、バイト、インテジャー、ワード、ロングと文字変数です。
|
INCR |
一覧へ戻る |
変数の数値に、1を足します。 (インクリメント)
・(variable = variable + 1) と、同じ働きです。
|
DECR |
一覧へ戻る |
変数の数値から、1を引きます。 (ディクリメント)
・(variable = variable - 1) と、同じ働きです。
|
SHIFT |
一覧へ戻る |
変数の内容を、右または左へ、任意のビット数分シフト(移動)させます。
書式 |
Shift variable , direction , number [, Signed] |
注釈 |
variable = |
シフト(移動)させる変数名。
(Byte , Word , Integer , Long , Single) |
|
direction = |
Left
Right |
−左へシフト(移動)。 −右へシフト(移動)。 |
|
number = |
シフト(移動)するビット数。
(Byte 1〜8) (Word 1〜16) (Long 1〜32) |
|
Signed = |
算術的右シフト。 (右へシフト専用のオプション) |
|
・左へシフトする場合は最下位ビットに、右へシフトする場合は最上位ビットに、0が
入ります。
・同時に、シフト方向へあふれたビットは、すてられます。
・左へ1ビットシフトすることは、変数値を2倍したことになり、右へ1ビットシフトする
ことは、変数値を1/2することになるので、2の倍数分の計算は、掛け算(*)や
割り算(/)より高速で処理できます。
|
(例) |
|
Dim S As Byte |
' 使用する変数を宣言。 |
S = &B10101101 |
' テスト用の数値を代入。 |
Shift S , Left , 1 |
' 左へ1ビットシフト。 |
Print Bin(S) |
' 結果を出力。 (01011010 が出力されます) |
' |
' |
S = &B10101101 |
' テスト用の数値を代入。 |
Shift S , Right , 2 |
' 右へ2ビットシフト。 |
Print Bin(S) |
' 結果を出力。 (00101011 が出力されます) |
End |
' プログラムの終了。 |
|
 |
・算術的右シフトは、右へシフトを行う場合にのみ
動作し、シフト前の最上位ビット(符号)を、
シフト後の最上位ビットにコピーします。
・±の符号を有効にしたまま右シフトするので、
右シフトの簡易割り算にもマイナス値が有効
です。
|
|
ROTATE |
一覧へ戻る |
変数の内容を、右または左へ、任意のビット数分ローテート(回転)させます。
書式 |
Rotate variable , direction , number |
注釈 |
variable = |
ローテート(回転)させる変数名。
(Byte , Word , Integer , Long , Single) |
|
direction = |
Left
Right |
−左へローテート(回転)。 −右へローテート(回転)。 |
|
number = |
ローテートするビット数。
(Byte 1〜8) (Word 1〜16) (Long 1〜32) |
|
・シフトとの違いは、ビットを移動させて、空いたビットの場所へ、あふれたビットを入れ
直すことです。
・つまり、ビット全体が環状になっていて、回転をさせます。
・例えば、バイト型変数の場合、左右どちらかに、8ビット分ROTATEすると、元の値に
戻ります。
|
(例) |
|
Dim S As Byte |
' 使用する変数を宣言。 |
S = &B10101101 |
' テスト用の数値を代入。 |
Rotate S , Left , 1 |
' 左へ1ビットローテート。 |
Print Bin(S) |
' 結果を出力。 (01011011 が出力されます) |
' |
' |
S = &B10101101 |
' テスト用の数値を代入。 |
Rotate S , Right , 2 |
' 右へ2ビットローテート。 |
Print Bin(S) |
' 結果を出力。 (01101011 が出力されます) |
End |
' プログラムの終了。 |
|
|
MAKEINT |
一覧へ戻る |
上位と下位の2つに分けられたバイト型変数を、1つのワードまたはインテジャー型に変換します。
書式 |
variableW = Makeint(varLSB , varMSB) |
注釈 |
variableW = |
変換した値を入れる、ワードまたはインテジャー型変数名。 |
varLSB = |
下位バイトの値が入った変数名。 |
varMSB = |
上位バイトの値が入った変数名。 |
|
・右に記載した計算を行います。 variableW = (varMSB * 256) + varLSB
|
(例) |
|
Dim M As Byte , L As Byte |
' 使用する変数を宣言。 |
Dim W As Word |
' 使用する変数を宣言。 |
M = 10 : L = 5 |
' テスト用の数値を代入。 |
W = Makeint(L , M) |
' 2バイトを1つのワード型に変換。 |
Print W |
' 結果を出力。 (2565 が出力されます) |
End |
' プログラムの終了。 |
|
|
LOW |
一覧へ戻る |
ワードやロング型の変数から、下位の8ビットを取り出し、バイト型変数に入れます。
書式 |
variable = Low(variableW)
Print Low(variableW) |
注釈 |
variable = |
取り出した下位バイトを入れる変数名。 |
variableW = |
ワードやロング型の変数名。 |
|
・PRINT命令やLCD命令で、直接表示装置へ出力することもできます。
|
(例) |
|
Dim B As Byte , L As Long |
' 使用する変数を宣言。 |
L = &H87654321 |
' テスト用の数値を代入。 |
B = Low(L) |
' 下位8Bitを取り出す。 |
Print Hex(B) |
' 結果を出力。 (21 が出力されます) |
' |
' |
B = L |
' これも同じ結果が得られます。 |
Print Hex(B) |
' 結果を出力。 (21 が出力されます) |
End |
' プログラムの終了。 |
|
|
HIGH |
一覧へ戻る |
ワードやロング型の変数から、上位の8ビットを取り出し、バイト型変数に入れます。
書式 |
variable = High(variableW)
Print High(variableW) |
注釈 |
variable = |
取り出した上位バイトを入れる変数名。 |
variableW = |
ワードやロング型の変数名。 |
|
・PRINT命令やLCD命令で、直接表示装置へ出力することもできます。
|
(例) |
|
Dim B As Byte , W As Word |
' 使用する変数を宣言。 |
W = &H4321 |
' テスト用の数値を代入。 |
B = High(W) |
' 上位8Bitを取り出す。 |
Print Hex(B) |
' 結果を出力。 (43 が出力されます) |
End |
' プログラムの終了。 |
|
|
HIGHW |
一覧へ戻る |
ロング型の変数から、上位の16ビットを取り出し、ワードまたはインテジャー型変数に入れます。
書式 |
variableW = Highw(variableL)
Print Highw(variableL) |
注釈 |
variableW = |
取り出した上位ワードを入れる変数名。 |
variableL = |
上位ワードを取り出すロング型の変数名。 |
|
・PRINT命令やLCD命令で、直接表示装置へ出力することもできます。
・下記例の様に、W = Lで下位16Bitが得られるため、Loww命令はありません。
|
(例) |
|
Dim W As Word , L As Long |
' 使用する変数を宣言。 |
L = &H87654321 |
' テスト用の数値を代入。 |
W = Highw(L) |
' 上位16Bitを取り出す。 |
Print Hex(W) |
' 結果を出力。 (8765 が出力されます) |
' |
' |
W = L |
' これは下位16Bitが得られます。 |
Print Hex(W) |
' 結果を出力。 (4321 が出力されます) |
End |
' プログラムの終了。 |
|
|
MAKEBCD |
一覧へ戻る |
10進数の数値を、BCD(Binary coded decimal)値に変換します。
書式 |
variableB = Makebcd(variableD)
Print Makebcd(variableD) |
注釈 |
variableB = |
変換したBCD値を入れる変数名。 |
variableD = |
変換する10進数の数値が入った変数名。 |
|
・10進数で表された数値変数の値を、BCDコードに変換し、数値変数に代入します。
・PRINT命令やLCD命令で、直接表示装置へ出力することもできますが、
Print Bcd()命令の方が便利です。
|
入力 |
出力 |
Decimal |
HEX |
Makebcd |
1 |
&H01 |
&H01 |
9 |
&H09 |
&H09 |
10 |
&H0A |
&H10 |
16 |
&H10 |
&H16 |
|
|
MAKEDEC |
一覧へ戻る |
BCD(Binary coded decimal)値を、10進数の数値に変換します。
書式 |
variableD = Makedec(variableB)
Print Makedec(variableB) |
注釈 |
variableD = |
変換した10進数の数値が入る変数名。 |
variableB = |
変換するBCD値が入った変数名。 |
|
・BCDコードで表された数値変数の値を、10進数に変換し、数値変数に代入します。
・PRINT命令やLCD命令で、直接表示装置へ出力することもできます。
|
入力 |
出力 |
BCD (HEX) |
Makedec |
&H01 |
&H01 |
&H09 |
&H09 |
&H10 |
&H0A |
&H16 |
&H10 |
|
|
GRAY2BIN |
一覧へ戻る |
グレイコード値を、バイナリ値に変換します。
書式 |
variableB = Gray2bin(variableG)
Print Gray2bin(variableG) |
注釈 |
variableB = |
変換したバイナリ値を入れる変数名。 |
variableG = |
グレイコード値が入った変数名。
(Byte , Word , Integer , Long) |
|
・グレイコードは、ロータリー・エンコーダに使用されます。
・PRINT命令やLCD命令で、直接表示装置へ出力することもできます。
|
BIN2GRAY |
一覧へ戻る |
バイナリ値を、グレイコード値に変換します。
書式 |
variableG = Bin2gray(variableB)
Print Bin2gray(variableB) |
注釈 |
variableG = |
変換したグレイコード値を入れる変数名。 |
variableB = |
バイナリ値が入った変数名。
(Byte , Word , Integer , Long) |
|
・グレイコードは、ロータリー・エンコーダに使用されます。
・PRINT命令やLCD命令で、直接表示装置へ出力することもできます。
|
COMPARE |
一覧へ戻る |
2つの変数に対してバイト単位の比較を行います。
書式 |
variable = Compare(var1 , var2 , bytes) |
注釈 |
variable = |
比較の結果が入るワード変数。 |
var1 = |
long変数や文字列などの任意の種類の変数。(定数は不可) |
var2 = |
long変数や文字列などの任意の種類の変数。(定数は不可) |
bytes = |
比較するバイト数。(定数または変数) |
|
・配列やLong、Double変数および文字列などの任意の変数の内容をバイト単位で
比較します。
・比較する対象の変数は、違うタイプでも可能です。(全てバイトの並びとして比較します)
・2つの変数が等しい場合、結果は0になります。
・2つの変数が異なる場合、異なる位置の指数(位置)が返されます。
・比較するバイト数の最大値は、ワードの範囲に収まる必要があります。(65535)
|
(例) |
|
Dim Val1(8) As Byte |
' 使用する配列を宣言。 |
Dim Val2(8) As Byte |
' 使用する配列を宣言。 |
' |
' |
Dim Val1 As Double |
' 使用するDouble変数を宣言。 |
Dim Val2(8) As Byte |
' 使用する配列変数を宣言。 |
' |
' |
Dim Val1 As String * 8 |
' 使用する文字変数を宣言。 |
Dim Val2 As String * 8 |
' 使用する文字変数を宣言。 |
' |
' |
Result = Compare(val1 , Val2 , 8) |
' 比較を行う。 |
|
|
MAX |
一覧へ戻る |
配列に格納されている最大の数値と、その配列の添え字番号を調べます。
書式 |
variable = Max(array) − 最大値のみを調べる。
Max(array, variable ,index) − 最大値と添え字番号を調べる。 |
注釈 |
variable = |
最大値を入れる数値変数名。 |
index = |
最大値が見つかった配列の添え字番号。 |
array = |
調べる配列名と、開始する添え字番号。 |
|
・バイト型とワード型の配列のみ、利用できます。
・調査を始めた添え字番号内に、最大値が無い場合は、0が入ります。
|
(例) |
|
Dim Ar(10) As Byte , B As Byte |
' 使用する変数を宣言。 |
Dim Amax As Byte , Aidx As Byte |
' 使用する変数を宣言。 |
For B = 1 To 10 |
' テスト用の数値を代入。 |
Ar(b) = B :Next |
' |
' |
' |
Max(Ar(1) , Amax , Aidx) |
' 最大値と添え字番号を調べる。 |
Print "Max=";Amax ; " Index=";Aidx |
' 結果を出力。
(Max=10 Index=10) |
End |
' プログラムの終了。 |
|
|
MIN |
一覧へ戻る |
配列に格納されている最小の数値と、その配列の添え字番号を調べます。
書式 |
variable = Min(array) − 最小値のみを調べる。
Min(array, variable ,index) − 最小値と添え字番号を調べる。 |
注釈 |
variable = |
最小値を入れる数値変数名。 |
index = |
最小値が見つかった配列の添え字番号。 |
array = |
調べる配列名と、開始する添え字番号。 |
|
・バイト型とワード型の配列のみ、利用できます。
・調査を始めた添え字番号内に、最小値が無い場合は、0が入ります。
|
(例) |
|
Dim Ar(10) As Byte , B As Byte |
' 使用する変数を宣言。 |
Dim Amax As Byte , Aidx As Byte |
' 使用する変数を宣言。 |
For B = 1 To 10 |
' テスト用の数値を代入。 |
Ar(b) = B :Next |
' |
' |
' |
Min(Ar(1) , Amax , Aidx) |
' 最小値と添え字番号を調べる。 |
Print "Min=";Amax ; " Index=";Aidx |
' 結果を出力。 (Min=1 Index=1) |
End |
' プログラムの終了。 |
|
|
SORT |
一覧へ戻る |
配列に格納されている内容を、昇順にソート(並び替え)します。
書式 |
Sort variable(index) , value |
注釈 |
variable = |
並べ替える配列変数名。 |
index = |
並び替えを始める配列変数の最初の添え字番号。 |
value = |
並べ替える配列の数。
(オプション:省略すると配列の全て) |
|
・indexで指定した添え字番号の配列から始めて、格納されている内容を昇順
(小さい順)にソート(並び替え)します。
・value値はオプションで、省略すると配列の全てが並び替えられます。
・並べ替えは、BYTE、WORD、INTEGER、LONG、DWORD 型の配列に対して
行われます。
|
(例) |
|
Dim D(5) As Byte , B As Byte |
' 使用する変数を宣言。 |
D(1) = 5 |
' テスト用の数値を代入。 |
D(2) = 3 |
' |
D(3) = 1 |
' |
D(4) = 4 |
' |
D(5) = 2 |
' |
Sort D(1) |
' 配列の内容を昇順に並び替える。 |
For B = 1 To 5 |
' 結果を出力。 |
Print D(b); |
' 12345が出力される。 |
Next B |
|
End |
' プログラムの終了。 |
|
|
FLIP |
一覧へ戻る |
バイト変数内のビット配置を、上位と下位の間で逆にします。
書式 |
variable = Flip(source) |
注釈 |
variable = |
反転された結果が入るバイト変数。 |
source = |
反転する元のバイト変数。 |
|
・FLIP命令は、データ線(d0〜d7)を逆に配置した場合に役立ちます。
・ビットを上位と下位の間で反転します。
|
(例) |
|
Dim V As Byte , S As Byte |
' 使用する変数を宣言。 |
S = &B0011_0101 |
' テスト用のビットを代入。 |
V = Flip(s) |
' ビットを上位と下位の間で反転する。 |
Print Bin(v) |
' 結果を出力。 (10101100 が出力されます) |
|
|
SIZEOF |
一覧へ戻る |
変数のメモリー上のサイズを調べます。 (バイト数で返します)
書式 |
value = Sizeof(variable) |
注釈 |
value = |
変数のメモリー上のサイズ。 (バイト数) |
variable = |
メモリー上のサイズを調べる変数名。 |
|
・変数がSRAM、XRAM、ERAM(EEPROM)のどこに割り当てられているかは関係
ありません。
・配列を調べる場合、配列の合計サイズが返されることに注意してください。
・配列の、どの添え字を指定しても、配列の合計サイズが返されます。
・変数は実行時の情報を保存しないため、この命令はコンパイル時にのみ機能します。
・したがって、この命令を動的な方法で使用することはできません。
・変数が使用するメモリーの量は次のとおりです。
Bit: 1バイト
Byte: 1バイト
Integer: 2バイト
Word: 2バイト
Dword: 4バイト
Long: 4バイト
Single: 4バイト
Double: 8バイト
String : 文字列の長さ+1 バイト
String * 1: 2バイト
String * 10: 11バイト
・1ビットは1バイトの1/8です。 したがって、8ビットが1バイトに収まります。
・文字列は[00]の終了コードで終るため、常に1バイトが加算されます。
|
ASC |
一覧へ戻る |
文字列の先頭にある文字の、ASCIIコード値を変数に入れます。
書式 |
variable = Asc(string [, index])
Print Asc(string [, index]) |
注釈 |
variable = |
ASCIIコードを入れる変数名。 |
string = |
ASCIIコードを調べる文字列が入った変数名または"文字列"。 |
index = |
文字列の位置を指定する添え字。(定数 または 変数)
(オプション)(1から文字列の長さまでの範囲) |
|
・先頭の1文字しか調べることができませんが、通常は、1文字だけ変数に入れて、
ASCIIコードを得ます。
・文字列が空の場合は、0が代入されます。
・PRINT命令やLCD命令で、直接表示装置へ出力することもできます。
・オプションのindex(添え字)を使用すると、文字列の中から任意の位置の1文字を
指定することが出来ます。
・インデックスは、1から文字列の長さまでの範囲です。
・インデックスが指定されていない場合は、初期値の1が使用されます。
|
(例) |
|
Dim S As String * 3 , Ac As Byte |
' 使用する変数を宣言。 |
S = "ABC" |
' テスト用の文字列を代入。 |
Ac = Asc(S) |
' 先頭文字のASCIIコードを調べる。 |
Print Ac |
' 結果を出力。 (65 が出力されます) |
' |
' |
Print Asc("ABC") |
' 直接の出力。 (65 が出力されます) |
End |
' プログラムの終了。 |
|
|
CHR |
一覧へ戻る |
ASCIIコードが入った変数または定数を、1つの文字に変換し文字列に入れます。
書式 |
string = Chr(variable)
Print Chr(variable) |
注釈 |
string = |
変換した文字列を入れる変数名。 |
variable = |
ASCIIコードの入った変数名または定数。 |
|
・制御コードやカスタム文字を出力する場合に使用します。
・PRINT命令やLCD命令で、直接表示装置へ出力することもできます。
|
(例) |
|
Dim Ac As Byte , S As String * 1 |
' 使用する変数を宣言。 |
Ac = 65 |
' テスト用の数値を代入。 |
S = Chr(Ac) |
' ASCIIコードを文字列に変換。 |
Print S |
' 結果を出力。 (A が出力されます) |
' |
' |
Print Chr(&H31) |
' 直接の出力。 (1 が出力されます) |
End |
' プログラムの終了。 |
|
|
STR |
一覧へ戻る |
変数の数値を、文字列に変換します。
書式 |
string = Str(variable) |
注釈 |
string = |
変換した文字列を入れる変数名。 |
variable = |
変換する数値の入った変数名。 |
|
・数値を文字列に変換し、文字変数に代入します。
・PRINT命令やLCD命令で数値変数を出力する場合は、内部でこの変換処理が行わ
れるので、数値変数をそのまま記述しても、同じ結果が得られます。
|
(例) |
|
Dim N As Byte , S As String * 3 |
' 使用する変数を宣言。 |
N = 123 |
' テスト用の数値を代入。 |
S = Str(N) |
' 文字列に変換。 |
Print S |
' 結果を出力。 (123 が出力されます) |
' |
' |
Print N |
' 数値変数を直接出力。
(123 が出力されます) |
End |
' プログラムの終了。 |
|
|
VAL |
一覧へ戻る |
数値を表現した文字列を、数値に変換します。
書式 |
variable = Val(string) |
注釈 |
variable = |
変換した数値を入れる変数名。 |
string = |
数値を表現した文字列が入った変数名。 |
|
・0〜9の数字と(+ -)で表現された文字列を、数値に変換し、数値変数に代入します。
|
(例) |
|
Dim S As String * 3 , N As Byte |
' 使用する変数を宣言。 |
S = "123" |
' テスト用の文字列を代入。 |
N = Val(S) |
' 数値に変換。 |
Print N |
' 結果を出力。 (123 が出力されます) |
End |
' プログラムの終了。 |
|
|
BIN |
一覧へ戻る |
変数の数値を、バイナリ(2進数)の文字列に変換します。
書式 |
string = Bin(variable)
Print Bin(variable) |
注釈 |
string = |
バイナリ(2進数)に変換した文字列を入れる変数名。 |
variable = |
変換する数値の入った変数名。 (ポート名) |
|
・数値を2進数(0と1での表現)に変換し、文字変数に代入します。
・PRINT命令やLCD命令で、直接表示装置へ出力することもできます。
・また、ポートの状態を表示する場合に、とても便利です。
|
(例) |
|
Dim B As Byte , S As String * 8 |
' 使用する変数を宣言。 |
B = &H35 |
' テスト用の数値を代入。 |
S = Bin(B) |
' バイナリ(2進数)の文字列に変換。 |
Print S |
' 結果を出力。(00110101 が出力されます) |
' |
' |
Print Bin(B) |
' 直接の出力。(00110101 が出力されます) |
' |
' |
Print Bin(PORTC) |
' ポートCの状態が出力されます。 |
End |
' プログラムの終了。 |
|
|
BINVAL |
一覧へ戻る |
バイナリ(2進数)の文字列を、数値に変換します。
書式 |
variable = Binval(string)
Print Binval(string) |
注釈 |
variable = |
変換した数値を入れる変数名。 |
string = |
変換するバイナリ(2進数)の文字列が入った変数名。 |
|
・2進数(0と1)で表された文字列を、数値に変換し、数値変数に代入します。
・PRINT命令やLCD命令で、直接表示装置へ出力することもできます。
|
(例) |
|
Dim S As String * 8 , B As Byte |
' 使用する変数を宣言。 |
S = "00010100" |
' テスト用の文字列を代入。 |
B = Binval(S) |
' 数値に変換。 |
Print B |
' 結果を出力。 (20 が出力されます) |
' |
' |
Print Binval(S) |
' 直接の出力。 (20 が出力されます) |
End |
' プログラムの終了。 |
|
|
BCD |
一覧へ戻る |
BCDコードで表される数値変数を、文字列に変換し表示装置に出力します。
書式 |
Print Bcd(variable)
Lcd Bcd(variable) |
注釈 |
variable = |
出力するBCD値が入った変数名。 |
|
・この命令は、PRINT、LCD命令のために用意されています。
・BCD値の上位4Bit・下位4Bitを、アスキーコードに変換して表示装置に出力します。
|
入力 |
出力 |
HEX (BCD) |
Decimal |
Print Bcd |
&H01 |
1 |
01 |
&H09 |
9 |
09 |
&H10 |
16 |
10 |
&H15 |
21 |
15 |
|
|
HEX |
一覧へ戻る |
変数の数値を、ヘキサデシマル(16進数)の文字列に変換します。
書式 |
string = Hex(variable)
Print Hex(variable) |
注釈 |
string = |
変換したヘキサデシマル(16進数)の文字列を入れる変数名。 |
variable = |
変換する数値の入った変数名。
(Byte,Word,Integer,Long,Single,Double) |
|
・数値を16進数(0〜Fでの表現)に変換し、文字変数に代入します。
・PRINT命令やLCD命令で、直接表示装置へ出力することもできます。
|
(例) |
|
Dim H As Byte , S As String * 2 |
' 使用する変数を宣言。 |
H = 10 |
' テスト用の数値を代入。 |
S = Hex(H) |
' ヘキサ(16進数)の文字列に変換。 |
Print S |
' 結果を出力。 (0A が出力されます) |
' |
' |
Print Hex(H) |
' 直接の出力。 (0A が出力されます) |
End |
' プログラムの終了。 |
|
|
HEXVAL |
一覧へ戻る |
ヘキサデシマル(16進数)の文字列を、数値に変換します。
書式 |
variable = Hexval(string)
Print Hexval(string) |
注釈 |
variable = |
変換した数値を入れる変数名。 |
string = |
変換するヘキサデシマル(16進数)の文字列が入った変数名。 |
|
・16進数(0〜F)で表された文字列を、数値に変換し、数値変数に代入します。
・PRINT命令やLCD命令で、直接表示装置へ出力することもできます。
|
(例) |
|
Dim S As String * 2 , H As Byte |
' 使用する変数を宣言。 |
S = "1F" |
' テスト用の文字列を代入。 |
H = Hexval(S) |
' 数値に変換。 |
Print H |
' 結果を出力。 (31 が出力されます) |
' |
' |
Print Hexval(S) |
' 直接の出力。 (31 が出力されます) |
End |
' プログラムの終了。 |
|
|
FORMAT |
一覧へ戻る |
数値を表す文字列の、フォーマット(形式)を変更します。
書式 |
stringT = Format(stringS , "mask")
Print Format(stringS , "mask") |
注釈 |
stringT = |
変更した文字列を入れる文字変数名。 |
stringS = |
変更する文字列が入った文字変数名。 |
mask = |
フォーマット(形式)。 |
|
・数値変数の内容をフォーマットして出力する場合は、STR命令で文字変数に変換して
からフォーマットを行います。
・maskに、"+"記号を付けた場合は、数値の前に+記号が付きます。
・数値の文字列よりも、maskのスペース(空白)が多い場合は、空白に続き、数値が
右詰で入ります。
・maskを、"00000"ゼロで表記した場合は、0が先行し、数値が右詰で入ります。
・maskを、"000.00"ゼロと小数点で表記した場合は、数値が右詰で入りmaskと同じ
位置に小数点が入ります。
・PRINT命令やLCD命令で、直接表示装置へ出力することもできます。
|
(例) |
|
Dim S As String * 5 , T As String * 5 |
' 使用する変数を宣言。 |
S = "123" |
' テスト用の文字列を代入。 |
Print Format(S , "+") |
' 結果を出力。(+123 が出力されます) |
Print Format(S , " ") |
' 結果を出力。( 123 が出力されます) |
Print Format(S , "00000") |
' 結果を出力。(00123 が出力されます) |
Print Format(S , "000.00") |
' 結果を出力。(001.23 が出力されます) |
End |
' プログラムの終了。 |
|
|
FUSING |
一覧へ戻る |
シングル型(浮動小数点)変数の、小数点以下のフォーマット(形式)を調整します。
書式 |
stringT = Fusing(variableS , "mask")
Print Fusing(variableS , "mask") |
注釈 |
stringT = |
調整した文字列を入れる文字変数名。 |
variableS = |
調整する数値が入ったシングル型変数名。 |
mask = |
フォーマット(形式)。 |
|
・maskは、"#.##"または"#.&&"のように、#と&記号で表記します。
・整数桁は必ず#を1つ記載し、小数点以下を任意の桁で調整します。
・"#.##では、小数点以下3桁目を四捨五入し、"#.&&では、小数点以下3桁目を
切り捨てます。
・PRINT命令やLCD命令で、直接表示装置へ出力することもできます。
|
(例) |
|
Dim Si As Single |
' 使用する変数を宣言。 |
Si = 56.78 |
' テスト用の数値を代入。 |
Print Fusing(Si , "#.#") |
' 結果を出力。 (56.8 が出力されます) |
Print Fusing(Si , "#.&") |
' 結果を出力。 (56.7 が出力されます) |
End |
' プログラムの終了。 |
|
|
CONFIG SINGLE |
一覧へ戻る |
シングル型(浮動小数点)変数の、小数点以下の有効桁数を指定します。
書式 |
Config Single = Scientific , Digits = value |
注釈 |
value = |
小数点以下の有効桁数。 (0〜7) |
|
・[0]は、末尾のゼロを全て取り除きます。
・[1〜7]は、小数点以下の桁数を指定します。
|
(例) |
|
Dim S As Single |
' 使用する変数を宣言。 |
Config Single = Scientific , Digits = 3 |
' 小数点以下を3桁に指定する。 |
S = 10 / 3 |
' 計算をする。 |
Print S |
' 結果を出力。
(3.333 が出力されます) |
End |
' プログラムの終了。 |
|
|
CONFIG DP |
一覧へ戻る |
シングル型(浮動小数点)変数とFUSING命令の、小数点に使用する記号を指定します。
書式 |
Config Dp = char |
注釈 |
char = |
"." または "," および Dot または Comma |
|
・STR命令およびFUSING命令は、シングル変数(浮動小数点)の値を文字列に
変換できます。
・初期値では小数点にドット"."が使用され、小数部はドット"."で区切られます。
・しかし、多くの国ではカンマ","が区切り文字として使用されています。
・この小数点の区切り文字を変更することができます。
・古い書式では、Config Dp = "." および Config Dp = "," です。
・新しい書式では、Config Dp = Dot および Config Dp = Comma も使用できます。
※ この指定は、STR命令およびFUSING命令のみで使用されます。
※ プログラムのコード内では、ドット"."で記述する必要があります。(Var = 1234.333)
|
(例) |
|
Dim S As Single |
' 使用する変数を宣言。 |
Config Dp = "," |
' 小数点の記号をカンマ","に指定する。 |
S = 1234.56 |
' テスト用の数値を代入。 |
Print S |
' 結果を出力。 (1234,56 が出力されます) |
End |
' プログラムの終了。 |
|
|
LEN |
一覧へ戻る |
文字列の文字数を調べて、変数に入れます。
書式 |
variable = Len(string)
Print Len(string) |
注釈 |
variable = |
文字数を入れる変数名。 |
string = |
文字数を調べる文字列が入った変数名。 |
|
・PRINT命令やLCD命令で、直接表示装置へ出力することもできます。
|
(例) |
|
Dim S As String * 5 , L As Byte |
' 使用する変数を宣言。 |
S = "ABC" |
' テスト用の文字列を代入。 |
L = Len(S) |
' 文字数を調べる。 |
Print L |
' 結果を出力。 (3 が出力されます) |
' |
' |
Print Len(S) |
' 直接の出力。 (3 が出力されます) |
End |
' プログラムの終了。 |
|
|
LEFT |
一覧へ戻る |
文字列の左側(先頭)から、指定された数の文字を取り出し、文字変数に入れます。
書式 |
stringL = Left(stringS , length)
Print Left(stringS , length) |
注釈 |
stringL = |
取り出した文字列を入れる変数名。 |
stringS = |
取り出す文字列が入った変数名。 |
length = |
取り出す文字数が入った変数名または定数。 |
|
・PRINT命令やLCD命令で、直接表示装置へ出力することもできます。
|
(例) |
|
Dim L As String * 6 , S As String * 6 |
' 使用する変数を宣言。 |
Dim N As Byte |
' 使用する変数を宣言。 |
S = "ABCDEF" : N = 4 |
' テスト用の文字列と数値を代入。 |
L = Left(S , N) |
' 左から4文字を取り出す。 |
Print L |
' 結果を出力。(ABCD が出力されます) |
' |
' |
Print Left(S , 3) |
' 直接の出力。(ABC が出力されます) |
End |
' プログラムの終了。 |
|
|
RIGHT |
一覧へ戻る |
文字列の右側(末尾)から、指定された数の文字を取り出し、文字変数に入れます。
書式 |
stringR = Right(stringS , length)
Print Right(stringS , length) |
注釈 |
stringR = |
取り出した文字列を入れる変数名。 |
stringS = |
取り出す文字列が入った変数名。 |
length = |
取り出す文字数が入った変数名または定数。 |
|
・PRINT命令やLCD命令で、直接表示装置へ出力することもできます。
|
(例) |
|
Dim R As String * 6 , S As String * 6 |
' 使用する変数を宣言。 |
Dim N As Byte |
' 使用する変数を宣言。 |
S = "ABCDEF" : N = 4 |
' テスト用の文字列と数値を代入。 |
R = Right(S , N) |
' 右から4文字を取り出す。 |
Print R |
' 結果を出力。(CDEF が出力されます) |
' |
' |
Print Right(S , 3) |
' 直接の出力。(DEF が出力されます) |
End |
' プログラムの終了。 |
|
|
MID |
一覧へ戻る |
文字列の指定した位置から、任意の数の文字を取り出し、文字変数に入れます。
文字列の指定した位置から、任意の数の文字を、別の文字列と入れ替えます。
書式 |
stringM = Mid(stringS , position , length) − 取り出し
Print Mid(stringS , position , length) = stringEx − 入れ替え |
Mid(stringS , position , length) = stringEx |
注釈 |
stringM = |
取り出した文字列を入れる変数名。 |
stringS = |
取り出す文字列が入った変数名。 |
position = |
取り出す位置が入った変数名または定数。 (文字列の左から) |
length = |
取り出す文字数が入った変数名または定数。 |
stringEx = |
交換する文字列が入った変数名または定数。 |
|
・positionは、文字列の一番左(先頭)が1です。
・PRINT命令やLCD命令で、直接表示装置へ出力することもできます。
|
(例) |
|
Dim M As String * 6 , S As String * 6 |
' 使用する変数を宣言。 |
Dim P As Byte , N As Byte |
' 使用する変数を宣言。 |
S = "ABCDEF" : P = 3 : N = 2 |
' テスト用の文字列と数値を代入。 |
M = Mid(S , P , N) |
' 左から3番目の2文字を取り出す。 |
Print M |
' 結果を出力。(CD が出力されます) |
Print Mid(S , 2 , 3) |
' 直接の出力。(BCD が出力されます) |
' |
' |
Mid(S , 3 , 2) = "12" |
' 左から3番目の2文字を入れ替えます。 |
Print S |
' 結果を出力。(AB12EF が出力されます) |
End |
' プログラムの終了。 |
|
|
INSTR |
一覧へ戻る |
文字列の中から、指定した文字列を検索し、その位置を変数に入れます。
書式 |
position = Instr(string , search)
position = Instr(startP , string , search) |
注釈 |
position = |
検索結果を入れる数値変数名。 |
string = |
検索される文字列が入った変数名。 |
search = |
検索する文字列が入った変数名または定数。 |
startP = |
検索を始める文字位置が入った変数名または定数。
(オプション) |
|
・文字列が見つからない場合は、0が入ります。
・startPは、文字列の一番左(先頭)が1です。
|
(例) |
|
Dim Sc As String * 2 , S As String * 8 |
' 使用する変数を宣言。 |
Dim P As Byte |
' 使用する変数を宣言。 |
S = "ABCDEFCD" : Sc = "CD" |
' テスト用の文字列を代入。 |
P = Instr(S , Sc) |
' 文字列を検索。 |
Print P |
' 結果を出力。 (3 が出力されます) |
' |
' |
P = Instr(4 , S , "CD") |
' 文字列を検索。 |
Print P |
' 結果を出力。 (7 が出力されます) |
End |
' プログラムの終了。 |
|
|
CHARPOS |
一覧へ戻る |
文字列の中から、指定した1文字を検索し、その位置を変数に入れます。
書式 |
position = Charpos(string , search) |
注釈 |
position = |
検索結果を入れる数値変数名。 |
string = |
検索される文字列が入った変数名。 |
search = |
検索する文字の定数、または文字の入った変数名、
数値変数名。 |
|
・INSTR命令と同じ機能ですが、1文字を検索する場合は、より迅速で使用メモリーも
少なくできます。
・検索文字が見つからない場合は、0が入ります。
・searchに文字列が使用されている場合は、先頭の1文字だけが検索に使用されます。
・searchは、文字コードが入った数値変数も可能です。
|
(例) |
|
Dim Sc As String * 1 , S As String * 8 |
' 使用する変数を宣言。 |
Dim P As Byte |
' 使用する変数を宣言。 |
S = "ABCDEFCD" : Sc = "C" |
' テスト用の文字列を代入。 |
P = Charpos(S , Sc) |
' 1文字を検索。 |
Print P |
' 結果を出力。 (3 が出力されます) |
End |
' プログラムの終了。 |
' |
' |
P = Charpos(S , "C") |
' 文字[C]を検索。 |
P = Charpos(S , &H35) |
' 文字[5]を検索。 |
|
|
SPLIT |
一覧へ戻る |
複数の文字列が、同一の文字や記号で区切られている場合に、それを配列に振り分けます。
書式 |
number = Split(string , array , search) |
注釈 |
number = |
検索結果の分割個数を入れる数値変数名。 |
string = |
検索される文字列が入った変数名または定数。 |
array = |
振り分ける1番目の配列の名前(添え字)。 |
search = |
検索する文字列が入った変数名または定数。 |
|
・検索結果に値する、十分な数と大きさの配列が必要です。
|
(例) |
|
Dim S As String * 16 , Ip(5) As String * 5 |
' 使用する変数を宣言。 |
Dim N As Byte |
' 使用する変数を宣言。 |
S = "192.168.1.23" |
' テスト用の文字列を代入。 |
N = Split(S , Ip(1) , ".") |
' 文字列を分割。 |
Print N |
' 検索個数を出力。(4 が出力されます) |
Print Ip(1) |
' 結果1を出力。(192 が出力されます) |
Print Ip(2) |
' 結果2を出力。 (168 が出力されます) |
Print Ip(3) |
' 結果3を出力。(1 が出力されます) |
Print Ip(4) |
' 結果4を出力。(23 が出力されます) |
End |
' プログラムの終了。 |
|
|
JOIN |
一覧へ戻る |
複数の文字列の配列を、1行の文字列に結合します。
書式 |
string = Join(variable(array) , value , char) |
注釈 |
string = |
結合された文字列を入れる文字変数。 |
variable = |
結合する元の文字列が入った配列変数名。 |
array = |
結合する文字配列の最初の添え字番号。 |
value = |
結合する文字配列の数。 |
char = |
オプション: 文字配列をつなげるために使用する記号。
(" " , "." 等) |
|
・SPLIT()命令は、文字列を複数の配列に分割することができます。
・JOIN()命令は、その逆で、文字列の配列から1行の文字列を作成します。
・オプションの文字配列をつなげる記号(スペースやドット)は、省略すると文字列だけが
結合されます。
※ 結合された文字列を入れる文字変数は、文字列を入れるのに十分な大きさが必要です。
|
(例) |
|
Dim Ip(5) As String * 5 |
' 使用する変数を宣言。 |
Dim N As String * 30 |
' 使用する変数を宣言。 |
Ip(1) = "12" |
' テスト用の文字列を代入。 |
Ip(2) = "34" |
' テスト用の文字列を代入。 |
Ip(3) = "56" |
' テスト用の文字列を代入。 |
Ip(4) = "78" |
' テスト用の文字列を代入。 |
Ip(5) = "90" |
' テスト用の文字列を代入。 |
N = Join(ip(1) , 5) |
' 文字列を結合する |
Print N |
' 結果を出力。
(1234567890が出力されます) |
|
|
STRING |
一覧へ戻る |
ASCIIコードに対応する文字を、指定した個数分、文字列に入れます。
書式 |
string = Space(length , code) |
注釈 |
string = |
文字列を入れる変数名。 |
length = |
個数が入った変数名または定数。 |
code = |
ASCIIコードが入った変数名または定数。 |
|
・PRINT命令やLCD命令で、直接表示装置へ出力することもできます。
・個数に(0)を入れると、数値のチェックが無いので、255個の文字が代入されてしまいます。
|
(例) |
|
Dim S As String * 8 |
' 使用する変数を宣言。 |
Dim L As Byte , Ac as Byte |
' 使用する変数を宣言。 |
L = 5 : Ac = 65 |
' テスト用の数値を代入。 |
S = String(L , Ac) |
' 文字変数に個数分の文字を入れる。 |
Print S |
' 結果を出力。 (AAAAA が出力されます) |
' |
' |
Print String(5 , 65) |
' 直接の出力。 (AAAAA が出力されます) |
End |
' プログラムの終了。 |
|
|
SPACE |
一覧へ戻る |
文字変数に、指定した数のスペース(空白)文字を入れます。
書式 |
string = Space(length) |
注釈 |
string = |
スペースを入れる変数名。 |
length = |
スペースの数が入った変数名または定数。 |
|
・PRINT命令やLCD命令で、直接表示装置へ出力することもできますが、この場合は
SPC命令を使用して下さい。
・個数に(0)を入れると、数値のチェックが無いので、255個のスペースが代入されて
しまいます。
|
(例) |
|
Dim S As String * 3 , Spc As String * 8 |
' 使用する変数を宣言。 |
Dim L As Byte |
' 使用する変数を宣言。 |
S = "ABC" : L = 3 |
' テスト用の文字列と数値を代入。 |
Spc = Space(L) |
' 文字変数に個数分のスペースを 入れる。 |
Print S ; Spc ; S |
' 結果を出力。(ABC ABC が出力されます) |
' |
' |
Print S ; Space(3) ; S |
' 直接の出力。(ABC ABC が出力されます) |
End |
' プログラムの終了。 |
|
|
TRIM |
一覧へ戻る |
文字列の、先頭と末尾にあるスペース(空白)を、すべて取り除きます。
書式 |
stringT = Trim(stringS) |
注釈 |
stringT = |
スペースを取り除いた文字列を入れる変数名。 |
stringS = |
スペースを取り除く文字列が入った変数名。 |
|
・PRINT命令やLCD命令で、直接表示装置へ出力することもできます。
|
(例) |
|
Dim S As String * 8 , T As String * 8 |
' 使用する変数を宣言。 |
S = " A B " |
' テスト用の文字列を代入。 |
T = Trim(S) |
' 先頭と末尾のスペースを取り除く。 |
Print T |
' 結果を出力。("A B" が出力されます) |
' |
' |
Print Trim(S) |
' 直接の出力。("A B" が出力されます) |
End |
' プログラムの終了。 |
|
|
LTRIM |
一覧へ戻る |
文字列の、先頭にあるスペース(空白)を、すべて取り除きます。
書式 |
stringT = Ltrim(stringS) |
注釈 |
stringT = |
スペースを取り除いた文字列を入れる変数名。 |
stringS = |
スペースを取り除く文字列が入った変数名。 |
|
・PRINT命令やLCD命令で、直接表示装置へ出力することもできます。
|
(例) |
|
Dim S As String * 8 , T As String * 8 |
' 使用する変数を宣言。 |
S = " A B " |
' テスト用の文字列を代入。 |
T = Ltrim(S) |
' 先頭のスペースを取り除く。 |
Print T |
' 結果を出力。("A B " が出力されます) |
' |
' |
Print Ltrim(S) |
' 直接の出力。("A B " が出力されます) |
End |
' プログラムの終了。 |
|
|
RTRIM |
一覧へ戻る |
文字列の、末尾にあるスペース(空白)を、すべて取り除きます。
書式 |
stringT = Rtrim(stringS) |
注釈 |
stringT = |
スペースを取り除いた文字列を入れる変数名。 |
stringS = |
スペースを取り除く文字列が入った変数名。 |
|
・PRINT命令やLCD命令で、直接表示装置へ出力することもできます。
|
(例) |
|
Dim S As String * 8 , T As String * 8 |
' 使用する変数を宣言。 |
S = " A B " |
' テスト用の文字列を代入。 |
T = Rtrim(S) |
' 末尾のスペースを取り除く。 |
Print T |
' 結果を出力。(" A B" が出力されます) |
' |
' |
Print Rtrim(S) |
' 直接の出力。(" A B" が出力されます) |
End |
' プログラムの終了。 |
|
|
LCASE |
一覧へ戻る |
文字列の英字を、すべて小文字に変換します。
書式 |
stringT = Lcase(stringS) |
注釈 |
stringT = |
小文字に変換した文字列を入れる変数名。 |
stringS = |
小文字に変換する文字列が入った変数名。 |
|
・PRINT命令やLCD命令で、直接表示装置へ出力することもできます。
|
(例) |
|
Dim S As String * 10 , T As String * 10 |
' 使用する変数を宣言。 |
S = "Abc Def 01" |
' テスト用の文字列を代入。 |
T = Lcase(S) |
' 小文字に変換。 |
Print T |
' 結果を出力。(abc def 01 が出力されます) |
' |
' |
Print Lcase(S) |
' 直接の出力。(abc def 01が出力されます) |
End |
' プログラムの終了。 |
|
|
UCASE |
一覧へ戻る |
文字列の英字を、すべて大文字に変換します。
書式 |
stringT = Ucase(stringS) |
注釈 |
stringT = |
大文字に変換した文字列を入れる変数名。 |
stringS = |
大文字に変換する文字列が入った変数名。 |
|
・PRINT命令やLCD命令で、直接表示装置へ出力することもできます。
|
(例) |
|
Dim S As String * 10 , T As String * 10 |
' 使用する変数を宣言。 |
S = "Abc Def 01" |
' テスト用の文字列を代入。 |
T = Ucase(S) |
' 大文字に変換。 |
Print T |
' 結果を出力。(ABC DEF 01 が出力されます) |
' |
' |
Print Ucase(S) |
' 直接の出力。(ABC DEF 01 が出力されます) |
End |
' プログラムの終了。 |
|
|
QUOTE |
一覧へ戻る |
文字列の前後に、ダブルクォーテーションマーク[ " ]を付加します。
書式 |
stringT = Quote(stringS) |
注釈 |
stringT = |
付加された文字列を入れる変数名。 |
stringS = |
付加する文字列が入った変数名。 |
|
・通常の文字変数への代入は、ダブルクォーテーションマーク[ " ]を含むことができません。
(S = "Test" の様に、ダブルクォーテーションマーク[ " ]が、文字列を指定する記号の
ため)
・QUOTE命令により、ダブルクォーテーションマーク[ " ]で囲われた文字列に変換できます。
・S = Chr(&H22) + "Test" + Chr(&H22) と同じ動作です。
・HTMLウェブサーバーページで、Quote()機能を利用できます。
|
(例) |
|
Dim S As String * 10 , T As String * 10 |
' 使用する変数を宣言。 |
S = "Test" |
' テスト用の文字列を代入。 |
T = Quote(s) |
' ダブルクォーテーションマークを付加する。 |
Print T |
' 結果を出力。("Test" が出力されます) |
End |
' プログラムの終了。 |
|
|
INSERTCHAR |
一覧へ戻る |
文字列の任意の位置に、新たな1文字を挿入します。
書式 |
Insertchar string , pos , char |
注釈 |
string = |
文字を挿入する文字列。 |
pos = |
文字を挿入する位置。 (1を指定すると文字列の先頭) |
char = |
挿入する文字。 (バイトの文字 または 文字の定数) |
|
・文字を挿入する位置に1を指定すると、その文字は文字列の最初の文字になります。
・挿入する文字は、1バイトの文字 または 文字の定数を指定します。
・例えば、"A"を挿入する場合、"A"を使用するか、Aを示す値の65を指定します。
・文字列を使用する事もできますが、文字列の場合は最初の1文字だけが使用されます。
・INSERTCHARは$BIGSTRINGSをサポートしています。
|
(例) |
|
Dim S As String * 30 |
' 使用する変数を宣言。 |
S = "ABCDEFG" |
' テスト用の文字列を代入。 |
Insertchar S , 3 , "=" |
' 3文字目にイコールの記号を挿入する。 |
Print S |
' 結果を出力。 "AB=CDEFG" が出力されます) |
|
|
DELCHAR |
一覧へ戻る |
文字列内の指定した位置にある1文字を削除します。
書式 |
Delchar string , pos |
注釈 |
string = |
文字を削除する文字列。 |
pos = |
文字を削除する位置。 (1を指定すると文字列の先頭) |
|
・文字列から指定した位置にある1文字を削除します。
・文字を削除する位置に1を指定すると、文字列の最初の文字が削除されます。
・文字列内の指定した文字をすべて削除するDELCHARS命令と混同しないでください。
・DELCHARは、$BIGSTRINGSをサポートしています。
|
(例) |
|
Dim S As String * 10 |
' 使用する変数を宣言。 |
S = "ABCDEFG" |
' テスト用の文字列を代入。 |
Delchar S , 2 |
' 文字列の2文字目を削除する。 |
Print S |
' 結果を出力。 "ACDEFG" が出力されます) |
|
|
DELCHARS |
一覧へ戻る |
文字列から、指定された文字値に一致するすべての文字を削除します。
書式 |
Delchars string , value |
注釈 |
string = |
文字を削除する文字列。 |
value = |
文字列から削除する必要がある文字 または 文字の定数。 |
|
・文字列から指定した値に一致するすべての文字を削除します。
・大文字の"A"をすべて削除するには、"A"を指定します。
・また、ASCII値でAを示す65の値を指定すると、ASCII値65(A)を持つすべての
文字を削除することができます。
・位置を指定して1文字を削除するDELCHAR命令と混同しないでください。
・DELCHARSは、$BIGSTRINGSをサポートしています。
|
(例) |
|
Dim S As String * 10 |
' 使用する変数を宣言。 |
S = "AB3CD3EFG3" |
' テスト用の文字列を代入。 |
Delchars S , "3" |
' 文字列の中から文字"3"を全て削除する。 |
Print S |
' 結果を出力。 "ABCDEFG" が出力されます) |
|
|
REPLACECHARS |
一覧へ戻る |
文字列内の指定した文字を、すべて別の文字に置き換えます。
書式 |
Replacechars string , oldchar , newchar |
注釈 |
string = |
置き換えを行う文字列変数。 |
oldchar = |
置き換えるために検索をする文字。
(1文字 または ASCII値の定数) |
newchar = |
置き換えをする新しい文字。
(1文字 または ASCII値の定数) |
|
・検索で見つかったすべての文字を置き換えます。
・REPLACECHARSは$BIGSTRINGSをサポートしています。
|
(例) |
' "a"を"A"に置き換える。 |
Dim Textout As String * 22 |
' 使用する変数を宣言。 |
Textout = "abcdefabdef" |
' テスト用の文字列を代入。 |
Replacechars Textout , "a" , "A" |
' 文字列の中の"a"を"A"に置き換える。 |
Print Textout |
' 結果を出力。
"AbcdefAbdef" が出力されます) |
|
|
STR2DIGITS |
一覧へ戻る |
数値表現の文字列を、桁ごとに数値配列へ分割します。
書式 |
Str2digits string , variable(1) |
注釈 |
string = |
数値表現の文字列。 |
variable = |
桁ごとに分割された数値が入るバイト型の配列変数。 |
|
・文字列を数値に変換するにはVAL()を、数値を文字列に変換するにはSTR()を使用
します。
・場合によっては、文字列の全ての桁を分けて取り出す要望があります。
・MIDを使用してすべての桁を取り出すこともできますが、STR2DIGITSはそれを一括で
処理できます。
・最初の配列番号 variable(1) には、分割した際の桁数が入ります。
・次の配列番号 variable(2) には、文字列の一番右の桁(最下位の桁)の数値が
入ります。
・以降、順に上位桁への数値が入ります。
※ 値を入れる配列は、桁数の値とすべての桁の値を入れることができる大きさが必要です。
※ 数字以外の桁は正しく変換されません。
例えば、文字列"-0"の場合、ASCIIで48である"0"は0に変換されます。
"-"は45で、結果は45-48=-3となりバイト形式では253になります。
※ ドット"."は254に変換されます。
|
(例) |
|
Dim Char As String * 5 |
' 使用する変数を宣言。 |
D(6) As Byte , B As Byte |
' 使用する変数を宣言。 |
Char = "12389" |
' テスト用の文字列を代入。 |
Str2digits Char , D(1) |
' 文字列を、桁ごとに数値配列へ分割。 |
For B = 1 To 6 |
' 結果を出力。 |
Print D(b); |
' "598321" が出力されます。 |
Next B |
' |
|
|
|