crc32

【Tera Term マクロ言語】コマンドリファレンス

crc32 機能

[その他のコマンド]

CRC-32 を計算します。

コマンドライン

crc32 <intvar> <string>

機能説明

引数の文字列から CRC (Cyclic Redundancy Checking) を計算します。
多項式(右回り)は以下のとおりです。
100000100110000010001110110110111
([[tex:x^{32}+x^{26}+x^{23}+x^{22}+x^{16}+x^{12}+x^{11}+x^{10}+x^{8}+x^{7}+x^{5}+x^{4}+x^{2}+x^{1}+x^{0}]])
計算結果は <intvar> に数値として格納されます。

CRC アルゴリズムの実装(C言語)を以下に示します。
このアルゴリズムは、Ethernet の FCS (Frame Check Sequence) に適用されています。
#define CRCPOLY2 0xEDB88320UL  /* 左右逆転 */

static unsigned long crc2(int n, unsigned char c[])
{
	int i, j;
	unsigned long r;

	r = 0xFFFFFFFFUL;
	for (i = 0; i < n; i++) {
		r ^= c[i];
		for (j = 0; j < CHAR_BIT; j++)
			if (r & 1) r = (r >> 1) ^ CRCPOLY2;
			else       r >>= 1;
	}
	return r ^ 0xFFFFFFFFUL;
}

パラメータの説明

指定するパラメータは以下の通りです。
パラメータパラメータ説明
<intvar>文字列計算結果を格納する変数を指定します。
<string>整数対象文字列を指定します。

続きを読む

crc16file

【Tera Term マクロ言語】コマンドリファレンス

crc16file 機能

[その他のコマンド]

CRC-16-IBM を計算します。

コマンドライン

crc16 <intvar> <file name>

機能説明

引数のファイルから CRC (Cyclic Redundancy Checking) を計算します。
多項式(右回り)は以下のとおりです。

0xA001 (x^{16}+x^{15}+x^{2}+x0)

計算結果は <intvar> に数値として格納されます。
crc16file でファイルが開けなかった場合は、システム変数 <result> に -1 が格納されます。

CRC アルゴリズムの実装(C言語)を以下に示します。
static unsigned int crc16(int n, unsigned char c[])
{
#define CRC16POLY2  0x8408U  /* 左右逆転 */

	int i, j;
	unsigned long r;

	r = 0xFFFFU;
	for (i = 0; i < n; i++) {
		r ^= c[i];
		for (j = 0; j < CHAR_BIT; j++)
			if (r & 1) r = (r >> 1) ^ CRC16POLY2;
			else       r >>= 1;
	}
	return r ^ 0xFFFFU;
}

パラメータの説明

指定するパラメータは以下の通りです。
パラメータパラメータ説明
<intvar>文字列計算結果を格納する変数を指定します。
<file name>整数対象ファイルを指定します。

続きを読む

crc16

【Tera Term マクロ言語】コマンドリファレンス

crc16 機能

[その他のコマンド]

CRC-16-IBM を計算します。

コマンドライン

crc16 <intvar> <string>

機能説明

引数の文字列から CRC (Cyclic Redundancy Checking) を計算します。
多項式(右回り)は以下のとおりです。

0xA001 (x^{16}+x^{15}+x^{2}+x0)

計算結果は <intvar> に数値として格納されます。

CRC アルゴリズムの実装(C言語)を以下に示します。
static unsigned int crc16(int n, unsigned char c[])
{
#define CRC16POLY2  0x8408U  /* 左右逆転 */

	int i, j;
	unsigned long r;

	r = 0xFFFFU;
	for (i = 0; i < n; i++) {
		r ^= c[i];
		for (j = 0; j < CHAR_BIT; j++)
			if (r & 1) r = (r >> 1) ^ CRC16POLY2;
			else       r >>= 1;
	}
	return r ^ 0xFFFFU;
}

パラメータの説明

指定するパラメータは以下の通りです。
パラメータパラメータ説明
<intvar>文字列計算結果を格納する変数を指定します。
<string>整数対象文字列を指定します。

続きを読む

clipb2var

【Tera Term マクロ言語】コマンドリファレンス

clipb2var 機能

[その他のコマンド]

クリップボードのテキストデータをコピーします。

コマンドライン

clipb2var <strvar> [<offset>]

機能説明

クリップボードのテキストデータを <strvar> へ代入します。
<strvar>
文字列を格納する変数名を指定します。
文字列変数の最大長の制限を受けるため、クリップボードのテキストデータが長すぎた場合は 512 バイト目以降が切り捨てられます。
[<offset>]
<offset> を指定すると、offset*511+1 文字目以降の内容が代入されます。
<offset> に 0 以外を指定するためには、事前に <offset> 無し、または <offset> に 0 を指定してclipb2varを実行する必要があります。
<offset> に 0 以外を指定した時に得られるクリップボードの内容は現在のものではなく、最後に <offset> 無し、または <offset> に 0 を指定して clipb2var を実行した時点でのクリップボードの内容となります。
<result>意味
0クリップボードを開けませんでした。
またはテキストデータではありませんでした。
または offset の値が適切ではありませんでした。
1<strvar> への代入に成功しました。
2<strvar> への代入は行われたが、入りきらなかった部分は切り捨てられました。
offset の値を増やして再度 clipb2var コマンドを実行する事で、切り捨てられた部分にアクセスできます。
3クリップボードの内容を記憶しておくためのメモリの確保に失敗しました。
この場合でも先頭から最大 511 バイトは変数に代入されますが、offset を増やして再度 clipb2var コマンドを実行しても切り捨てられた部分にはアクセスできません。

パラメータの説明

指定するパラメータは以下の通りです。
パラメータパラメータ説明
<strvar>文字列クリップボードのテキストデータを格納する変数を指定します。
<offset>整数オフセット量を指定します。

続きを読む

closesbox

【Tera Term マクロ言語】コマンドリファレンス

closesbox 機能

[その他のコマンド]

statusbox コマンドによって開かれたステータスダイアログボックスを閉じます。

コマンドライン

closesbox

機能説明

statusbox コマンドによって開かれたステータスダイアログボックスを閉じます。

パラメータの説明

指定するパラメータはありません。

続きを読む