|
数値計算をするのに色々な数学関数があるのは既に述べましたが、関数にはその他に、文字列を操作する関数や命令もあります。
◆ASC
コンピュータは「電子計算機」つまり数値を操作する訳ですが、文字も数値として扱います。この数値ならこの文字、例えば、「A」という文字は「65」という数値、という対応表をASCIIキャラクタコード表といい、これはコンピュータの世界ではおおよそ決まっています。
ASC関数は、指定した文字のASCIIキャラクタコードを取得します。(文字列の最初の文字の値です)
A=ASC("BASIC") | "B"のASCIIキャラクタコード値「66」が変数Aに入ります。 |
◆CHR$
ASC関数の逆で、CHR$はASCIIキャラクタコードを文字に変換します。数値は0〜255の範囲外の場合、エラーが発生します。
A$=CHR$(65) | 変数A$には"A"が入ります。 |
B$=CHR$(&H43) | キャラクタコードに16進数で入れたい場合には"&H"を付けて指定します。変数B$には"C"が入ります。 |
◆HEX$
10進数を16進数に変換します。指定出来る数値の範囲は-32768〜32767の整数値です。
A$=HEX$(65) | 変数A$には"41"が入ります |
B$=HEX$(-1) | 変数B$には"FFFF"が入ります |
C$=HEX$(-32768) | 変数C$には"8000"が入ります |
◆OCT$
10進数を8進数に変換します。指定出来る数値の範囲は-32768〜32767の整数値です。
A$=OCT$(65) | 変数A$には"101"が入ります |
B$=OCT$(-1) | 変数B$には"177777"が入ります |
C$=OCT$(-32768) | 変数C$には"100000"が入ります |
◆LEN
文字列の長さ(合計バイト数)を取得します。
A=LEN("ABCDEFG") | 変数Aには7が入ります |
B=LEN("あいう") |
全角文字は1文字2バイトです。
変数Bには6が入ります |
◆INSTR
文字列の中から、ある文字列を探して、その文字の位置を取得します。見つからない場合は0となります。
I=INSTR("ABCDEFG","C") | 変数Iには3が入ります |
J=INSTR("ABCDEFG","L") | 変数Jには0が入ります |
K=INSTR(3,"ABCABC","B") |
3個目の文字から検索を開始します。
変数Kには5が入ります |
◆STR$
数値を文字列に変換します。
A$=STR$(100) | 変数A$には"100"が入ります |
B$=STR$(1.2345) | 変数B$には"1.2345"が入ります |
◆VAL
文字列を数値に変換します。
A=VAL("100") | 変数Aには100が入ります |
B=VAL("ABC") | 数字を示す内容ではないので変数Bには0が入ります |
C=VAL("&H20") | 変数Cには32が入ります |
◆SPACE$
任意の長さの空白文字列を取得します。
A$=SPACE$(10) | 変数A$には10個の半角空白が入ります |
◆STRING$
任意の文字の、任意の長さの文字列を取得します。
A$=STRING$(10,"*") | 変数A$には10個の"*"、つまり、"**********"が入ります |
B$=STRING$(6,65) | 変数B$には6個のキャラクタコード65、つまり、"AAAAAA"が入ります |
◆LEFT$
文字列の左側から任意長さの文字列を抜き出します。
A$=LEFT$("ABCDE",3) | 変数A$には文字列"ABCDE"の左側から3文字、つまり、"CDE"が入ります |
◆RIGHT$
文字列の右側から任意長さの文字列を抜き出します。
A$=RIGHT$("ABCDE",3) | 変数A$には文字列"ABCDE"の右側から3文字、つまり、"ABC"が入ります |
◆MID$
文字列の中から任意長さの文字列を抜き出します。
A$=MID$("ABCDEF",3) | 変数A$には文字列"ABCDEF"の3個目以降の文字、つまり、"CDEF"が入ります |
B$=MID$("ABCDEF",3,2) | 変数B$には文字列"ABCDEF"の3個目から2個の文字、つまり、"CD"が入ります |
MID$にはもう1つの使い方があります。文字列の一部を他のものに置き換える機能です。日本語が入っている場合、位置を間違えると文字化けの原因になりますので扱いには注意して下さい。
A$="ABCDEFGHI"
MID$(A$,3)="XYZ" | A$の3個目以降の文字を"XYZ"に置き換え |
A$="ABCDEFGHI"
MID$(A$,3,2)="XY" | A$の3個目から2個の文字を"XY"に置き換え |
やはり扱い方が難しい場合が多いので、なるべく
A$=LEFT$(A$,10)+"***"+MID$(A$,16)
B$=LEFT$(B$,10)+"***"+RIGHT$(B$,20) |
のような書き方をするほうが無難でしょう。
N88BASIC(86)(MS-DOS版)には、上記以外に日本語文字列操作を行う関数があります。
◆AKCNV$
1バイト系の英数カナ文字を2バイト系の全角文字に変換します。
A$=AKCNV$("123ABC") | 変数A$には"123ABC"が入ります |
B$=AKCNV$("アイウあいう") | 変数B$には"アイウあいう"が入ります |
◆KACNV$
2バイト系の全角文字を1バイト系の英数カナ文字に変換します。対応する文字が無いものを指定するとエラーします。
A$=KACNV$("12AB") | 変数A$には"12AB"が入ります |
◆JIS$
2バイト系日本語文字のJIS漢字コード(16進数4桁)を取得します。
A$=JIS$("あ") | 変数A$には「あ」のJISコードの"2422"が入ります |
◆KNJ$
JIS漢字コードの16進数4桁の文字列を、2バイト系日本語文字1文字に変換します。
A$=KNJ$("2361") | 変数A$にはJISコード"2361"の"a"が入ります |
◆KEXT$
文字列の中から1バイト系文字だけ、又は、2バイト系文字だけ、のどちらかを抜き出します。
A$=KEXT$("123あい",0) | 変数A$には"123"が入ります |
B$=KEXT$("123あい",1) | 変数B$には"あい"が入ります |
◆KTYPE
文字列中の指定位置の文字のタイプを取得します。
S$="123あいう"
A=KTYPE(S$,1)
B=KTYPE(S$,5) |
変数Aには、S$の1つ目の文字"1"のタイプ、1バイト系文字なので「0」が入ります。
変数Bには、S$の5つ目の文字"い"のタイプ、2バイト系文字なので「1」が入ります。
2バイト系半角文字の場合は「2」が入ります。 |
◆KLEN
LEN関数の日本語対応版です。2バイト系文字1文字を1つの文字として考える事が出来ます。
文字列の長さ(合計文字数)を取得します。
A=KLEN("ABCDEFG") | 変数Aには7が入ります |
B=KLEN("あいう") | 変数Bには3が入ります |
◆KINSTR
INSTR関数の日本語対応版です。2バイト系文字1文字を1つの文字として考える事が出来ます。
文字列の中から、ある文字列を探して、その文字の位置を取得します。見つからない場合は0となります。
I=KINSTR("ABCDEF","C") | 変数Iには3が入ります |
J=KINSTR("ABCDEF","L") | 変数Jには0が入ります |
K=KINSTR(3,"ABCABC","B") | 3個目の文字から検索を開始します。変数Kには5が入ります |
◆KMID$
MID$関数の日本語対応版です。2バイト系文字1文字を1つの文字として考える事が出来ます。
文字列の中から任意長さの文字列を抜き出します。
A$=KMID$("ABCDEF",3) | 変数A$には文字列"ABCDEF"の3個目以降の文字、つまり、"CDEF"が入ります |
B$=KMID$("ABCDEF",3,2) | 変数B$には文字列"ABCDEF"の3個目から2個の文字、つまり、"CD"が入ります |
|
|
バッチファイル
BASIC
1 2 3 4 5
6 7 8 9 A
B C D E F
G H I J
C言語のお勉強
拡張子な話
DOSプログラム
Delphi
シェアウェア
Script!World
データベース
|