目次
'Script-A'

必ずお読みください。

マクロの登録方法

特別な意味を持つマクロの名前

サンプルプログラム

制限事項

予約語

変数と配列

システム変数

定数

定義済み定数

演算子

関数

関数の呼び出し

制御文

関数の呼び出し

組み込み関数


必ず読んでください。

マクロプログラム の拡張子 は必ず、[.A] にしてください。そうでないと、実行しようと思っても、ただのテキストファイルとして開かれるだけです。

作成したプログラムは、メニュー、「アプリアイコンの登録」で、'akira32' に登録していただければ、他のアプリケーションと同じように実行できます。

なお、Script-A で、マクロを開発して、NiftyServe 等で公開される意志「つもりでも結構です」のある方は メール をいただければ、 'akira32' のパスワードを無償にて発行いたします。又、マクロプログラム開発において、どうしても機能が足りなかったり、必要な組み込み関数がある場合も、メールをいただければ、できうる限り対応いたします。

KHF07113 綾の明


マクロの登録方法

作成したマクロをちょっと実行してみたい場合はメニュー「その他」の「名前を指定して実行」で実行させる事ができます。マクロのデバッグやたまにしか利用しないマクロを実行する時に便利です。

頻繁に利用するマクロの場合は、メニュー「設定」の「その他の設定」「アプリアイコンの登録」を使って 'akira' に登録してください。登録されたマクロはメニュー「その他」の「アプリアイコンメニューの表示」で実行できます。

マクロをいったん上の方法で登録しておけば、マクロをメニューの中に組み込んで直接呼び出す事もできます。メニューの設定方法は 'akira' のへルプ「メニューのカスタマイズ」を参照してください。

（例）

マクロを「アプリアイコンの登録」で登録した場所が１番の場合は

MENUITEM "ＸＸＸマクロ"  @APPICON0

をメニューに追加します。登録した場所と ＠ で始まる機能名称の対応はメニュー「その他」の「メニューコマンドのリスト」を実行して確認してください。次のようになっているはずです。

@APPICON0->ｱﾌﾟﾘｱｲｺﾝ - 1

@APPICON1->ｱﾌﾟﾘｱｲｺﾝ - 2

@APPICON2->ｱﾌﾟﾘｱｲｺﾝ - 3

@APPICON3->ｱﾌﾟﾘｱｲｺﾝ - 4

@APPICON4->ｱﾌﾟﾘｱｲｺﾝ - 5

@APPICON5->ｱﾌﾟﾘｱｲｺﾝ - 6

@APPICON6->ｱﾌﾟﾘｱｲｺﾝ - 7

@APPICON7->ｱﾌﾟﾘｱｲｺﾝ - 8

@APPICON8->ｱﾌﾟﾘｱｲｺﾝ - 9

@APPICON9->ｱﾌﾟﾘｱｲｺﾝ -10

@APPICONA->ｱﾌﾟﾘｱｲｺﾝ -11

@APPICONB->ｱﾌﾟﾘｱｲｺﾝ -12

@APPICONC->ｱﾌﾟﾘｱｲｺﾝ -13

@APPICOND->ｱﾌﾟﾘｱｲｺﾝ -14

@APPICONE->ｱﾌﾟﾘｱｲｺﾝ -15

.

.


特別な意味を持つマクロの名前
特別意味を持つマクロの名前

AUTOEXEC.A

作成したマクロをこの名前で、'akira' と同じディレクトリに置いておくと 'akira' が立ち上がった時に無条件に実行されます。

ただ、このマクロプログラムにバグがあったりすると  'akira' 自体が立ち上がらなくなったりしまいますので、十分なデバッグを行った上でこの名前を使用して下さい。

ＡＵＴＯＡＬＢ．Ａ

作成したマクロをこの名前で、'akira' と同じディレクトリに置いておくと ＡＬＴキーを押しながらマウスの左ボタンをクリックした時に、このプログラムが実行されます。

ＡＵＴＯＡＲＢ．Ａ

作成したマクロをこの名前で、'akira' と同じディレクトリに置いておくと ＡＬＴキーを押しながらマウスの右ボタンをクリックした時に、このプログラムが実行されます。


サンプルプログラム

これは、開始点と終了点を指定して、テキストを選択するという、役に立たないプログラムですが、メニューの表示や、キー入力、カーソル移動などが含まれていますので、それらのサンプルととしてご覧ください。

//Sample program	//これはコメントです。

var #sx=0,#sy=0;	//var は変数の定義です。これは広域変数です。

var #ex=0,#ey=0;	//宣言時に初期値を与えることができます。

var #mode;	//初期値がない場合は変数の初期値は０になります。

var #xpos=#x;

#mode=ShowMenu();	//関数を呼び出しています。

if(#mode<=0 || #mode==3) stop;	//条件文です。

if(#mode==1) #mode=0;

else #mode=SEL_BOX;	//SEL_BOX はシステム変数です。

Message("開始点と終了点でリターンを押してください。");

MoveCursor(#mode,1);	//関数を呼び出しています、パラメータが渡せます。

MoveCursor(#mode,0);

SetSelRect(#sx,#sy,#ex,#ey,#mode);

DrawWindow(TRUE,FALSE);	//画面を更新しています。

stop;	//プログラムを終わらせます。

proc ShowMenu(){	//関数を定義しています。

var	  #mode;	//これはローカル変数です。

array $mstr[3];	//array は配列を定義します。

$mstr[0]="通常の選択";	//配列は宣言時に初期化できませんので、ここで初期化します。

$mstr[1]="箱型選択";

$mstr[2]="取り消し";

#mode=menu($mstr[0],3,0);	//メニュ－を表示する組み込み関数を呼び出します。

return #mode;	//値をかえします。文字列も返せます。

}

proc MoveCursor(#mode,#flag){	//パラメータ付きの関数が定義されています。

var	#n,#vkey;

while(TRUE){	//ループ文です。

#vkey=WaitKeyDown();	//キー入力待ち、仮想キーコードが戻ります。

if(#vkey==VK_RETURN) break;	//ループを抜けます。

if(#vkey==VK_DOWN){	//↓が押された場合です。

ForwLine(1);

if(#mode!=SEL_BOX){

#n=XtoPos(#xpos,#line);

SetEditPos(#n,#line);

}

} else if(#vkey==VK_UP){	//↑が押された場合です。

BackLine(1);

if(#mode!=SEL_BOX){

#n=XtoPos(#xpos,#line);

SetEditPos(#n,#line);

}

} else if(#vkey==VK_RIGHT){	//→が押された場合です。

if(#mode!=SEL_BOX)

{ForwChar(1);#xpos=PosToX(#pos,#line);}

else	CaretRight();

} else if(#vkey==VK_LEFT){	//←が押された場合です。

if(#mode!=SEL_BOX)

 {BackChar(1);#xpos=PosToX(#pos,#line);}

else	CaretLeft();

}

if(#mode!=SEL_BOX) DrawWindow(FALSE,0);

else 	DrawWindow(TRUE,0);

}

if(#flag==1){

if(#mode!=SEL_BOX){

#sx=#pos;#sy=#line;

} else {

#sx=#x;  #sy=#y;

}

} else {

if(#mode!=SEL_BOX){

#ex=#pos;#ey=#line;

} else {

#ex=#x;  #ey=#y;

}

}

}


制限事項
[制限事項]

（１）プログラムエリアは ６４Ｋバイト 用意してあります。

（２）変数、配列、データエリア は ６４Ｋバイト 用意してあります。

（３）スタックエリア は １０２４のレベルまでです。

[できないこと]

（１）変数の宣言に関して

変数の宣言はプログラム、又は、関数の先頭で行なってください。実行文中には記述できません。

（２）配列の宣言に関して

変数の宣言は、 var $a,$b,$c の様にコンマで区切って、連続して定義できますが、配列の場合は、、で区切って連続しては定義できません。又初期化もできません。

（３）代入式に検して

a=b=c=d=0; のような表現はできません、 a=0;b=0;c=0;d=0; と書いてください。又、 if((a=b)==0) ..の様に、条件式の中にも、代入文は記述できません。

（４）マクロの中からマクロは実行できません。


予約語

大文字小文字の区別をしません。

var

array

if else

while

break

continue

proc

return

stop


変数と配列

変数

構文 var （$|#)<変数名>[[=<初期値>],($|#)<変数名>[=<初期値>]]....;

説明

変数名は # 又は $ で始まり、これに続く、32 文字以内の英数字の組み合わせで表現されます。先頭の 1 文字は英文字である必要があります。大文字小文字の区別をしません。

# ではじまる変数は数値変数、$ で始まる変数は文字列変数です。

<初期値> は省略可能ですが、省略した場合の変数の初期値は０です。

変数管理エリアはグローバル変数、ローカル変数合わせて 1024 個、64K ですので、この範囲で計画的に使用してください。

変数は定義される場所によって、グローバル変数とローカル変数に分かれます。グローバル変数は関数の外で定義された変数で、ローカル変数は関数の中で定義された変数です。ローカル変数は関数が終了すると同時に開放されますが、グローバル変数はプログラムが終了するまでは開放されません。

（例-1）

var $a,#b,$c;//これらはグローバル変数です。

proc proc01()

   var $a,#b,$c;//これらはローカル変数です。

(例-2）

var #suuchi;	//これは数値変数です。

var $mojiretsu; //これは文字列変数です。

配列

構文 array （$|#)<配列名>[<要素数>][<要素数>]...;

説明

配列名は $ 又は # で始まり、これに続く、32 文字以内の英数字の組み合わせで表現されます。先頭の 1 文字は英文字である必要があります。

# ではじまる配列は、数値配列、$ で始まる配列は文字列配列です。

配列の次元数に制限はありませんが、大きく取りすぎると変数管理エリアが溢れてしまいます。変数管理エリアはグローバル変数、ローカル変数合わせて 1024 個、64K までです。

配列も、変数 と同じように、定義される場所によって、グローバル配列とローカル配列に分かれます。

（例-1）

Array $a[10],$b[20]; //これは正しくない例です。

Array $a[10];	//このように二つに分けて定義してください。

Array $b]10];

(例-2）

array #suuchi[10];	//これは数値配列です。

array $mojiretsu[10];	//これは文字列配列です。


定数

[ 10進定数]

10 桁以内の数値が使用できます。

（例） 12345,-12345

[ 16進定数]

0x 又は 0X で始まる、８桁以内の１６進数が使用できます。

(例）0x0101,0xffff

[文字定数]

半角又は全角一文字を ' と ' で挟んで表現します。

(例） 'a','漢'

特別な文字として

'\n'	:	0x0a

'\r'	:	0x0d

'\t'	:	0x09

'\0'	:	0x00

が使用できます。

[文字列定数]

255 文字以内の文字列を " と " で挟んで表現します。文字列のなかでは、 \n,\t,\n,\0 がエスケープ文字として使用できます。

（例） "strings","文字列"


定義済み定数

プログラム中に直接数値を書く代わりに、下の名前を使用する事ができます。又、これらの値は将来変更される可能性がありますので、プログラムの中では、直接、値を書かずにこれらの名前を使用するようにしてください。なお、名前は大文字小文字の区別をしません。

TRUE	1

FALSE	0

YES	6

NO	7

CANCEL	2

語の種類

IW_ALKANA	0x01

IW_JHIRA	0x13

IW_JIKATA	0x12

IW_JKANJI	0x14

IW_JALPHA	0x15

IW_JDIGIT	0x16

選択の状態

SEL_SEARCH	0x01

SEL_UNDO	0x02

SEL_KEY	0x04

SEL_BOX	0x08

ウインドウのサイズ

SW_MAXIMIZE	2

SW_MINIMIZE	0

SW_RESTORE	1

使用されている文字コードセット

CODE_SJIS	0

CODE_JIS	1

CODE_EUC	2

CODE_UNICODE	3

CODE_AUTO	9

ファイルフラグ

FLAG_EDIT

編集ファイルです。

FLAG_GREP

ＧＲＥＰの結果ファイルです。

FLAG_TAGJUMPED

タグジャンプされて開かれたファイルです。

FLAG_MAILFILE

送信、転送、返信、受信 メールファイルです。

FLAG_MAILSEND

送信メールです。

FLAG_MAILVIEW

メールビューワが開かれています。

FLAG_MAILREP

返信メールです。

FLAG_MAILFORW

転送メールです。ＲＦＣ８２２形式が使用されます。

FLAG_MAILFORWA

転送メールです。添付されて転送されます。

FLAG_MAILDRAFT

草稿メールです。

FLAG_MAILBOX

メールボックスが開かれています。

FLAG_PGP

ＰＧＰ形式のメールです。

FLAG_HTML

ＨＴＭＬメニューが開かれています。

仮想キーコード

VK_BACK	0x08

VK_TAB	0x09

VK_CLEAR	0x0C

VK_RETURN	0x0D

VK_SHIFT	0x10

VK_CONTROL	0x11

VK_MENU	0x12

VK_ESCAPE	0x1B

VK_SPACE	0x20

VK_PRIOR	0x21

VK_NEXT	0x22

VK_END	0x23

VK_HOME	0x24

VK_LEFT	0x25

VK_UP	0x26

VK_RIGHT	0x27

VK_DOWN	0x28

VK_INSERT	0x2D

VK_DELETE	0x2E

VK_HELP	0x2F

VK_F1	0x70

VK_F2	0x71

VK_F3	0x72

VK_F4	0x73

VK_F5	0x74

VK_F6	0x75

VK_F7	0x76

VK_F8	0x77

VK_F9	0x78

VK_F10	0x79

VK_F11	0x7A

VK_F12	0x7B

エラーコード

ERROR_FATAL	0x8000

ERROR_DENYED	0x0001

ERROR_NOMEM	0x0002

ERROR_RESOURCE	0x0003

ERROR_OUTOFRANGE	0x0004

ERROR_CLIPBOARDNOT_AVAILABLE	0x0005

ERROR_CLIPBOARD_EMPTY	0x0006

ERROR_CHARCODE_CONVERT	0x0007

ERROR_FILE_OPEN	0x0008

ERROR_FILE_READ	0x0009

ERROR_FILE_WRITE	0x000a

ERROR_FILE_CLOSE	0x000b

ERROR_FILE_BACKUP	0x000c

ERROR_FILE_FULL	0x000d

ERROR_DIALOG	0x000e

ERROR_CANCELED	0x000f

ERROR_USERABORT	0x0010

ERROR_CREATEWINDOW	0x0011

ERROR_REGULARPAT	0x0012

ERROR_UNKNOWN	0x7fff


システム変数

グローバル変数として、Script-A が定義している変数があります。これらは通常の変数と同じように扱う事ができますが、++.-- 演算子は使用できません。また書き込み禁止の変数もありますので、注意してください。READ は読み込み可能、WRITE は書き込みも可能を示しています。名前は大文字小文字の区別はしません。

#Version	:	READ

'akira32Ⅱ' のバージョン番号です。

#InsMode	:	READWRITE

挿入モード、１の時のオン、０の時はオフです。

#AppendMode	:	READWRITE

クリップボードへの追加書、１の時オン、０の時オフです。

#DandDMode	:	READWRITE

ドラグ＆ドロップ編集モード、１の時にオン、０の時にオフです。

#NewFile	:	READ

新規ファイルなら１、そうでなければ０になります。

#ReadOnly	:	READ

現在アクティブなドキュメントウインドウが リードオンリーで開かれている場合は１、そうでない場合は０になります。

#FileFlag	:	READ

現在アクティブなドキュメントウインドウが開かれた時のフラグを示し、下の値を取ります。

０は通常のファイル、FLAG_GREP は GREP の結果ファイル、FLAG_TAGJUMPED はタグジャンプによって開かれたファイルです。

#CharSet	:	READWRITE

現在アクティブなドキュメントウインドウの文字コードセットを示し、下の値を取ります。

CODE_SJIS はシフトジスコード、CODE_JIS は JISコード、CODE_EUC は EUC コード,CODE_UNICODE はユニコードです。

#LfEol	:	READWRITE

現在アクティブなドキュメントウインドウの元のファイルの行末が LF(0x0A)で終わっていた場合は １ CRLF(0x0D0x0A) で終わっていた場合は ０です。

#EofEof	:	READWRITE

現在アクティブなドキュメントウインドウの元のファイルが EOF(0x1A) で終わっていた場合は１、そうでなかった場合は０を取ります。

#Modified	:	READ

現在アクティブなウインドウのテキストが変更された場合は非０、変更されていない場合は０になります。

#FixedPitch	：	READ

現在のフォントが「固定幅フォント」の場合は 非ゼロ、「プロポーショナルフ」ォントの場合は０を返します。

#Pos	:	READ

現在の編集位置、行頭を０とたバイト位置です。

#Line	:	READ

現在の編集行です。ファイルの先頭を０として、画面上の１行を１行として計算されます。

#X	:	READWRITE

画面上のカラムです、行頭を０として数えます。下の #ColumsLine より大きくなることはありません。

#Y	:	READWRITE

画面上の行です、画面の一番上を０として数えます。下の #LinesPage より大きくなることはありません。なお、この変数への書き込みは、使用されているフォントが「固定幅フォント」の場合に限ってください。プロポーショナルフォントを使用されている場合は、この変数を直接書き換えずに、CaretRight(),

CaretLeft() 関数を使用して移動させてください。

#Code	：	READ

現在の編集位置も文字コードです。漢字の場合は漢字コードを表しています。

#LineLength	：	READ

現在の編集位置のある行の長さです。

#LinesPage	:	READ

１ページの行数です。

#ColumsPage	:	READ

１画面のカラム数です。

#lColumsLine	:	READWRITE

ローカル環境の「１行の長さ」に対応しています。（折り返しカラム数と考えてください。）１から５１２の値を取ります。

#PageTopLine	:	READ

画面の一番上の行です、これは、ファイルの先頭を０として、画面上の１行を１行として計算した行番号です。

#PageTopColum	:	READ

画面の左端のカラムです。行頭を０として数えます。

#EofLine	:	READ

ファイルの最終行です、これは、ファイルの先頭を０として、画面上の１行を１行として計算した行番号です。

#InSelection	:	READ

テキストが選択状態にある場合は１になります。

#SelStatus	:	READ

テキストの選択状態を現し、次の値を取ります。

SEL_SEARCH	=	検索によって選択された。

SEL_UNDO	=	UNDO によって選択された。

SEL_KEY	=	キーボードから選択された。

SEL_BOX	=	箱型選択されている。

#SelBox	:	READWRITE

箱型選択モードの場合は１、そうでない場合は０です。

#SelLength

選択されているテキストのサイズです。

#SelSx	:	READ

#SelSy	:	READ

#SelEx	:	READ

#SelEy	:	READ

#SelSx、#SelSyは選択開始カラムと行、#SelEx,#SelEy は選択終了カラムの直後のカラムと行です。

箱型選択の場合は #SelSx,#SelEx は画面上のカラム位置、そうでない場合は行頭を０とした、バイト位置を現しています。又、#SelSy,#SelEy はいずれの場合も、画面上の１行を１行として計算されています。

[組み込み関数が実行された直後に値が設定される変数]

#rBoxData	:	READ

組み込み関数 GetClipboardData によって値がセットされます。

クリップボードから取り出したデータが箱型選択されたものかどうかを示しています。クリップボードからデータを取り出した直後のみ有効な値を示し、１の場合は箱型データ、０の場合は通常のテキストです。

#rWindowWidth	:	READ

#rWindowHeight	:	READ

組み込み関数 GetWindowSize によって値がセットされます。#rWindowWidth はウインドウの幅、#rWindowHeight はウインドウの高さです。

#rWindowLeft	:	READ

#rWindowTop	:	READ

組み込み関数 GetWindowPos によって値がセットされます。#rWindowLeft はウインドウの左上隅の横軸の位置、#rWindowTop は縦軸の位置です。

#rConverted	:	READ

組み込み関数 FileOpen が実行された直後にセットされます。読み込んだファイルの途中に EOF(0x1A) コードがあった場合、漢字第１バイトに続く第２バイト目が漢字コードの２バイトと目ではない場合に１がセットされます。なおこれらのコードは半角スペースに置き換えられています。

[広域環境変数]

広域環境変数はすべて、読み込み、書き込み可能です。

#gRestoreDesktop

「広域動作環境」の「起動時にデスクトップの状態を復元する」に対応しています。

#gRestoreCaret

「広域動作環境」の「起動時にキャレットの位置を自動復元する」に対応しています。

#gMultiOpenDialog

「広域動作環境」の「開くときに複数のファイルの選択を許す」に対応しています。

#gFileMustExist

「広域動作環境」の「開くときにファイルの潜在をチェックする」に対応しています。

#gOpenNewOnPrompt

「広域動作環境」の「開くときに新規ファイルなら確認メーッセージを表示する」に対応しています。

#gMaskLatestExt

「広域動作環境」の「開くときのフィルタは最後に開かれたファイルの拡張子」に対応しています。

#gOpenMaximize

「広域動作環境」の「開くときにドキュメントウインドウを最大化する」に対応しています。

#gShowNameOnly

「広域動作環境」の「ファイル名の表示にパスを含めない」に対応しています。

#gLatestDirectory

「広域動作環境」の「カレントファイルのパスをカレントディレクトリにする」に対応しています。

#gShowKeyMenu

「広域動作環境」の「第二キーがタイムアウトしたらメニューを表示する」に対応しています。

#gEnableCtrl

「広域動作環境」の「第二キーでも Ctrl をちゃんと認識する」に対応しています。

#gScrollHalfPage

「広域動作環境」の「ページスクロールは半画面ずつ」に対応しています。

#ggBoxShapedCaret

「広域動作環境」の「キャレットの形は箱型」に対応しています。この変数が変更されたら、その後でかならず, ChangeGlobalEnv を実行しなくてはいけません。

#ggDrawUnderline

「広域動作環境」の「編集行にアンダーラインを引く」に対応しています。この変数が変更されたら、その後でかならず, ChangeGlobalEnv を実行しなくてはいけません。

[ローカル環境変数］

ここから説明する変数は、解説の都合上、上での説明と二重に説明してある変数もあります。

これらの変数はすべて、読み込み、書き込み可能です。

#llColorSyntax

「ローカル環境設定」の「基本設定」の「カラー構文モード」に対応しています。

#lFreeCaret

「ローカル環境設定」の「基本設定」の「キャレットの動きはセミフリー」に対応しています。

#lImeOnLine

「ローカル環境設定」の「基本設定」の「漢字変換は編集行で行う」に対応しています。

#lOpenIme

「ローカル環境設定」の「基本設定」の「ファイルを開かれたら漢字変換を立ち上げる」に対応しています。

#lkillSpaces

「ローカル環境設定」の「基本設定」の「空白だけの行は改行時に空白を取り除く」に対応しています。

#llCountCr

「ローカル環境設定」の「基本設定」の「行の数え方は改行コードに基ずく」に対応しています。この変数を変更した場合は、 その後に、 ChangeLocalEnv を必ず呼び出してください。

#llLineSpacing

「ローカル環境設定」の「基本設定」の「行間をあける」に対応しています。この変数を変更した場合は、 その後に、 ChangeLocalEnv を必ず呼び出してください。

#lKillEof

「ローカル環境設定」の「基本設定」の「保存するときに EOF コードを付けない」に対応しています。

#lKillCr

「ローカル環境設定」の「基本設定」の「改行コードは UNIX 風にする」に対応しています。

#llColumsLine

「ローカル環境設定」の「基本設定」の「一行のカラム数」に対応しています。範囲は １０ から ５１２ です。この変数を変更した場合は、 その後に、 ChangeLocalEnv を必ず呼び出してください。

#llTabSize

「ローカル環境設定」の「タブ」の「タブのカラム数」に対応しています。範囲は １ から ９ です。この変数を変更した場合は、 その後に、 ChangeLocalEnv を必ず呼び出してください。

#lTabConversion

「ローカル環境設定」の「タブ」の「ファイルを保存するときのタブの変換」に対応しています。０ の場合はなにもしません、１の場合は、タブをスペースに変換します、２の場合はスペースをタブに変換します。

#lAutoIndent

「ローカル環境設定」の「表示」の「自動インデントする」に対応しています。

#lIndentJSpace

「ローカル環境設定」の「表示」の「漢字スペースもインデントする」に対応しています。

#llShowLnum

「ローカル環境設定」の「表示」の「行番号を表示する」に対応しています。この変数を変更した場合は、 その後に、 ChangeLocalEnv を必ず呼び出してください。

#llShowTab

「ローカル環境設定」の「表示」の「タブを表示する」に対応しています。この変数を変更した場合は、 その後に、 ChangeLocalEnv を必ず呼び出してください。

#llShowCr

「ローカル環境設定」の「表示」の「改行コードを表示する」に対応しています。この変数を変更した場合は、 その後に、 ChangeLocalEnv を必ず呼び出してください。

#llShowJspace

「ローカル環境設定」の「表示」の「漢字スペースも表示する」に対応しています。この変数を変更した場合は、 その後に、 ChangeLocalEnv を必ず呼び出してください。

#lCreateBackup

「ローカル環境設定」の「バックアップ」の「バックアップファイルを作る」に対応しています。

#lEnableKinsoku

「ローカル環境設定」の「整形処理の設定」の「禁則処理を有効にする」に対応しています。

#lKinsokuMethod

「ローカル環境設定」の「整形処理の設定」の「禁則処理の方法に対応しています」に対応しています。０ の場合は、「追い出し」、１の場合は「ぶら下げ」、２の場合は「追い出しとぶら下げ」です。

#lJFWordBreak

「ローカル環境設定」の「整形処理の設定」の「ワードブレークする」に対応しています。

#lJFKillSpaces

「ローカル環境設定」の「整形処理の設定」の「スペースとタブを取る」に対応しています。

#lJFKillJSpaces

「ローカル環境設定」の「整形処理の設定」の「漢字スペースもとる」に対応しています。

#lJFKillCr

「ローカル環境設定」の「整形処理の設定」の「改行コードを付け替える」に対応しています。

#lJFTabToSpaces

「ローカル環境設定」の「整形処理の設定」の「タブをスペースに変換する」に対応しています。


演算子

構文

- <数値>

式 + 式

式 - 式

式 << 式

式 >> 式

式 * 式

式 / 式

式 % 式

<数値変数>++         (後置インクリメント)

++ <数値変数>        (前置インクリメント)

<数値変数>--         (後置デクリメント)

-- <数値変数>        (前置デクリメント)

式 & 式

式 ^ 式

式 | 式

式 && 式

式 || 式

! 式

式 ==式

式 != 式

式 < 式

式 > 式

式 <= 式

式 >= 式

説明

文字列に対しては比較演算子と + 演算子が使用できます。

- は負の値を代入ます。

+ (加算)，- (減算)，* (乗算)，および / (除算)は基本的な代数演算を行います。なお、+ 演算子が文字列定数や文字列変数に使用された場合は、文字列を結合します。

% (剰余演算子)は整数の割り算の余りを返します。

<< は数値を上位ビットへシフト、>>は下位ビットへシフトします。

++  (インクリメント)は式の値に１を加算します。後置インクリメントは式を評価した後に１を加算します。前置インクリメントは式を評価する前に１を加算します。

-- (デクリメント)は式の値から１を減算します。後置デクリメントは式を評価した後に１を減算します。前置デクリメントは式を評価する前に１を減算します。

& はビットごとの ANDを取ります。

^ はビットごとの XORを取ります。

| はビットごとの ORを取ります。

&& どちらの式も真(非ゼロ)と評価される場合には真(1)を返し，そうでなければ偽(0)を返します。

|| どちらかの式が(真)非ゼロと評価される場合には真(1)を返し，そうでなければ偽(0)を返します。

!  式全体が真(非ゼロ)と評価された場合には真(1)を返し，そうでなければ偽(0)を返します。

== 等しい

!= 等しくない

> より大きい

< より小さい

>= より大きいあるいは等しい

<= より小さいあるいは等しい

[演算子の優先度]

（1） が一番優先度が高く、 （6） が一番低くなります。

1. -,++,--,!

2. *,/,%

3. +,-

4. <<,>>

5. <,>,<=,>=,==,!=

6. &,|

7. &&,||


関数

構文  proc <関数名>(<パラメータ1>,<パラメータ2>,...<パラメータn>)

{

<文1>;

<文2>

.

.

.

<文n>

}

説明

関数名は 32 文字以内の英数字の組み合わせで表現されますが、先頭の 1 文字は英文字である必要があります。

関数の中で宣言された変数は、「ローカル変数」になり、又、関数は、文字列や数値を呼び出し元に返す事ができます。

(例）

proc max(#a,#b){

if(#a>#b) return #a;

return #b;

}

参照

return;

関数の呼び出し


関数の呼び出し

構文  <関数名>([<パラメータ1>,<パラメータ2>,.....<パラメータn>]);

説明

パラメータの数に制限はなく、数値、文字列 いずれでも渡す事ができます。文字列パラメータはユーザーの関数呼び出し、組み込み関数の呼び出しの場合も、「参照渡し」になります。

「参照渡し」ですから、仮引数、実引数は同じメモリを共有しており、一方の変更は他方への変更になります。

（例）この例では、$a は、"sample" から "[sample]" に変更されます。

var $a="sample";

proc01($a);

stop;

proc proc01($para)

{

  $para="["+$para+"]";

}


制御文

制御文は 下の７つと「関数の呼び出し」しかありません、しかし、これだけあればプログラムのロジックはすべて記述できます。

if

構文

if ( <条件> ) <文>;

if ( <条件> ) <文1>;  else  <文2>;

説明

条件付きの文を実現するには，if を使います。<条件>が真（ゼロ以外）の場合，<文1>が実行されます。<条件>が偽（ゼロ）の場合，<文2>が実行されます。

else 以下は省略可能です。

while

構文

while ( <条件> ) { <文> }

説明

while はループを実現するときに使用します。<文>は，<条件>の値が真(非ゼロ)の間、繰り返し実行されます。条件が評価されてから<文>が実行されます。したがって，初回で<条件>がゼロであると，ループは実行されないことになります。

ループさせる <文> は必ず { と } でくくってください。次のような文はエラーとなります。

while(#a>0) --#a;

これは、必ず次の様に記述してください。

while(#a>0) { --#a;}

continue

構文

continue ;

説明

while 内で continue 文を使うと，最も内側の中カッコの終りに制御を移すことができます。ここに制御が渡された時点で while ループ継続の条件が再評価されます。

continue は while ループの外では使用できません。

break

構文

break ;

説明

while ループを抜けて、最も内側にある中カッコの直後の文に制御を渡せます。

break は while ループの外で使用してはいけません。

goto

構文

goto <飛び先ラベル> ;

説明

制御を <飛び先ラベル> で指定したに移します。飛び先のラベルは必ずコロンで終わります。

goto で下のジャンプを行ってはいけません。

関数の中から外の飛び出す。

関数の中に飛び込む。

while 文の中に飛び込む

if 文 や else 文 の中に飛び込む。

return

構文

return [<式>] ;

説明

現在の関数を終了し，呼び出し側のルーチンに戻ります。このときに値を戻すこともできます。

戻される値は数値でも、文字列でもかまいませんが、この値を受け取る変数と型が一致している必要があります。

stop

構文

stop

説明

プログラムを終わります。


組み込み関数

組み込み関数名前は大文字小文字の区別がされません。

ファイル関数

カーソル移動

選択

カット＆ペースト

編集関数

検索関数

ウインドウ関数

文字列操作

ディスクＩ／Ｏ関数

電子メール関数

その外の関数


カーソル移動

SetEditPos

XToPos

PosToX

CaretRight

CaretLeft

ForwChar

BackChar

ForwLine

BackLine

ForwPage

BackPage

ForwWord

BackWord

TopOfFile

EndOfFile

TopOfLine

EndOfLine

TopOfWord

EndOfWord


SetEditPos

構文	#result=SetEditPos(#pos,#line);

説明

編集位置を #line 行 の #pos に移動させます。

#line が 負の値の場合は ０、#line が EOF 行よりも大きい場合は EOF 行に移動します。

#pos  が 負の値の場合は ０、#pos がその行の最後よりも大きい場合は行末にセットされます。また、#pos の位置が漢字の２バイト目の場合は、漢字の１バイト目にセットされます。

この時、行は画面上の１行として計算されています。

戻り値

成功した場合は、#result に １,失敗した場合は ０が返されます。


XToPos

構文	#result=XToPos(#colum,#lnum);

説明

画面上のカラム #colum を、#lnum 行のバイト位置に変換します。

#colum が 行末を越えている場合は行末を返します。又 #colum が漢字２バイト目の上にある場合は漢字１バイト目のバイト位置に変換されます。

#lnum は、ファイルの先頭を０とし、画面上の １行を基準に計算された行番号です。

戻り値

#result には変換された値が返されます。


PosToX

構文	#result=PosToX(#byPos,#lnum);

説明

#lnum 行の バイト位置 #byPos を画面上のカラム位置に変換します。#bypos が行末を越えている場合は行末の位置を変換します。又、#byPos が漢字２バイト目の場合は,次の文字のバイト位置を変換します。

#lnum は、ファイルの先頭を ０ とし、画面上の１行を基準に計算された行番号です。

戻り値

#result には変換された値が返されます。


CaretRight

構文	#result=CaretRight();

説明

キャレットの位置を右へ １カラム移動させます。キャレットが移動するだけで編集位置は移動しません。キャレット位置と編集位置を一致させるには関数  XtoPos を使用します。

戻り値

成功した場合は １、失敗した場合は０を戻します。


CaretLeft

構文	#result=CaretLeft();

説明

キャレットの位置を左へ １カラム移動させます。キャレットが移動するだけで編集位置は移動しません。キャレット位置と編集位置を一致させるには関数  XtoPos を使用します。

戻り値

成功した場合は １、失敗した場合は０を戻します。


ForwChar

構文	#result=ForwChar(#n);

説明

編集位置を #n 字分、先に進めます。進んだ先が漢字コードの 2 バイト目の場合はさらに 1 バイト先に進みます。

戻り値

#result に進んだ文字数が返されます。#result が ０ の場合は １文字も進めなかった事を意味しています。これはファイルの最後に現在の編集位置がある事を意味しています。


BackChar

構文	#result=BackChar(#n);

説明

編集位置を #n 文字分戻します。戻った先が漢字コードの 2 バイト目の場合はさらに 1 バイト戻ります。

戻り値

#result に戻った文字数が返されます。#result が ０ の場合は 一文字も戻れなかった事を意味しています。これはファイルの先頭に現在の編集位置がある事を意味しています。


ForwLine

構文	#result=ForwLine(#n);

説明

編集位置を #n 行先の行頭に進めます。１行は画面上の１行です。

戻り値

#result に進んだ行数が返されます。#result が ０ の場合は １行も進めなかった事を意味しています。これはファイルの最後の行に編集位置がある事を意味しています。


BackLine

構文	#result=BackLine(#n);

説明

編集位置を #n 行戻った行の先頭に移動します。１行は画面上の１行です。

戻り値

#result に戻った行数が返されます。#result が ０ の場合は １行も戻れなかった事を意味しています。これはファイルの先頭行に編集位置がある事を意味しています。


ForwPage

構文	#result=ForwPage(#mode);

説明

編集位置を 、次のページの行頭に進めます。１行は画面上の１行です。

#mode が 0 の場合は画面上の １ページ文、又、#mode が １の場合は半ページ進みます。

戻り値

#result に進んだ行数をかえします。0 の場合は進めなかった事を意味しています。これはファイルの最後のページに編集位置がある事を意味しています。


BackPage

構文	#result=BackPage(#mode);

説明

編集位置を 前のページの行頭に戻します。１行は画面上の１行です。

#mode が 0 の場合は画面上の 1ページ文、又、#mode が １の場合は半ページ戻ります。

戻り値

#result に戻った行数を返します、0 の場合は戻れなかった事を意味しています。これはファイルの先頭のページに編集位置がある事を意味しています。


ForwWord

構文	#result=ForwWord(#n);

説明

編集位置を #n 語先に進めます。

戻り値

#result に進んだ語数が返されます。#result が 0 の場合は 一語も進めなかった事を意味しています。これはファイルの最後の語に現在の編集位置がある事を意味しています。


BackWord

構文	#result=BackWord(#n);

説明

編集位置を #n 語分戻します。

戻り値

#result に戻った語数が返されます。#result が 0 の場合は一語も戻れなかった事を意味しています。これはファイルの先頭の語に現在の編集位置がある事を意味しています。


TopOfFile

構文	#result=TopOfFile();

説明

編集位置をファイルの先頭に移動させます。

戻り値

成功した場合は、#result に １ が返されます。0 が返された場合はファイルの先頭に編集位置がある事を意味しています。


EndOfFile

構文	#result=EndOfFile();

説明

編集位置を ファイルの最後に移動させます。

戻り値

成功した場合は、#result に １ が返されます。０ が返された場合はファイルの最後に編集位置がある事を意味しています。


TopOfLine

構文	#result=TopOfLine();

説明

編集位置を 行頭に移動させます。１行の考え方はローカル環境の設定に依存します。

戻り値

成功した場合は、#result に １ が返されます。0 が返された場合は、行頭に編集位置がある事を意味しています。


EndOfLine

構文	#result=EndOfLine();

説明

編集位置を 行末に移動させます。１行の考え方はローカル環境の設定に依存します。

戻り値

成功した場合は、#result に １ が返されます。0 が返された場合は、行末に編集位置がある事を意味しています。


TopOfWord

構文	#result=TopOfWord();

説明

編集位置を語頭に移動させます。

戻り値

成功した場合は、#result に １ が返されます。0 が返された場合は、編集位置が語の中にないか又は、語頭にある事を意味しています。


EndOfWord

構文	#result=EndOfWord();

説明

編集位置を語末に移動させます。

戻り値

成功した場合は、#result に １ が返されます。0 が返された場合は、編集位置が語の中にないか又は、語末ある事を意味しています。


編集関数

InsertStr

DeleteStr

OverWriteStr

ReplaceStr

InsertChar

DeleteChar

OverWriteChar

BackSpace

MakeLine

Justify

SelToLower

SelToUpper

InsertdateTime


InsertStr

構文	#result=InsertStr($text,#forw);

説明

$text に格納されている文字列を現在の編集位置に挿入します。$text は文字列定数でもかまいません。

#forw が １ の場合は、挿入されたテキスト分編集位置を先に進めます。

戻り値

成功した場合は、#result に １、失敗した場合は 0 が返されます。

失敗した場合は GetLastError() で原因を得て適切な処理を行ってください。


DeleteStr

構文	#result=DeleteStr(#length);

説明

現在の編集位置から #length 分のテキストを削除します。

戻り値

成功した場合は、#result に １、失敗した場合は 0 が返されます。

失敗した場合は GetLastError() で原因を得て適切な処理を行ってください。


OverWriteStr

構文	#result=OverWriteStr($text、#forw);

説明

$text に格納されている文字列を現在の編集位置から上書きします。$text は文字列定数でもかまいません。

#forw が １ の場合は上書きされたテキスト分編集位置を先に進めます。

戻り値

成功した場合は、#result に １、失敗した場合は 0 が返されます。

失敗した場合は GetLastError() で原因を得て適切な処理を行ってください。


ReplaceStr

構文	#result=ReplaceStr($text、#length,#forw);

説明

現在の編集位置から #lenth 文字を $text に格納されている文字列で置き換えます。

#forw が １ の場合は置き換えたテキスト分編集位置を先に進めます。

戻り値

成功した場合は、#result に １、失敗した場合は 0 が返されます。

失敗した場合は GetLastError() で原因を得て適切な処理を行ってください。


InsertChar

構文	#result=InsertChar(#char,#forw);

説明

#$char を現在の編集位置に挿入します。

#forw が １ の場合は一文字分編集位置を先に進めます。

なお、挿入された文字が改行コード (0x0d) の場合は、ローカル環境の設定に従って自動インデントや空白行の行頭のスペースの除去が行われます。

戻り値

成功した場合は、#result に １、失敗した場合は 0 が返されます。

失敗した場合は GetLastError() で原因を得て適切な処理を行ってください。


DeleteChar

構文	#result=DeleteChar();

説明

現在の編集位置の一文字を削除します。

戻り値

成功した場合は、#result に １、失敗した場合は 0 が返されます。

失敗した場合は GetLastError() で原因を得て適切な処理を行ってください。


BackSpace

構文	#result=BackSpace();

説明

現在の編集位置の直前の一文字を削除します。

戻り値

成功した場合は、#result に １、失敗した場合は 0 が返されます。

失敗した場合は GetLastError() で原因を得て適切な処理を行ってください。


OverWriteChar

構文	#result=OverWriteChar(#char,#forw);

説明

#char を現在の編集位置に上書きします。

#forw が １ の場合は一文字分編集位置を先に進めます。

戻り値

成功した場合は、#result に １、失敗した場合は 0 が返されます。

失敗した場合は GetLastError() で原因を得て適切な処理を行ってください。


MakeLine

構文	#result=MakeLine(#indent);

説明

空白行を現在の編集行の直前に挿入します。

#indent が １ の場合はインデントが行われます。

戻り値

成功した場合は、#result に １、失敗した場合は 0 が返されます。

失敗した場合は GetLastError() で原因を得て適切な処理を行ってください。


Jistify
Justify

構文	Justify(#indent,#colums,#resetcr);

説明

選択されている範囲内で行頭に #indent 量のインデントをして、#colums のカラム位置に改行コードを挿入しながらテキストを整形します。

#resetcr が非ゼロの場合は元の改行コードを無視します。

戻り値

成功した場合は １、失敗した場合は 0 を返します。失敗した場合は GetLastError でエラーの原因を調査し適切な処理を行ってください。


SelToLower

構文	#reslut=SelToLwer();

説明

選択されているテキストを小文字に変換します。

戻り値

成功したら １、失敗したら 0 を戻します。失敗した場合は、 GetLastError で原因を調査して適切な処理を行ってください。


SelToUpper

構文	#reslut=SelToUpper();

説明

選択されているテキストを大文字に変換します。

戻り値

成功したら １、失敗したら 0 を戻します。失敗した場合は、 GetLastError で原因を調査して適切な処理を行ってください。


InsertDateTime

構文	#reslut=InsertDateTime($format);

説明

現在の編集位置に日付と時間を挿入します。編集位置は挿入された文字列の長さだけ進みます。

$format で日付と時間のフォーマットを定義します。

$format の最初の文字が 0 の場合は、 AK32.ini の  DATEFORM=．．． 以下の文字列をデフォルトのフォーマットととして使用します。

デフォルトの状態では　YY/MM/DD(Ｗ曜日) HH:NN:SS となります。

YY は年　MM は月　DD は日、そして　HH は時間　NN は分　SS は秒を意味しています。

この順番はどんな風に変更されても結構です。又、それ以外の文字列はそのままテキストの中に書きこまれます。

Ｗ（全角）は漢字の曜日です。Ｗ のかわりに WWW（半角）を指定すると英文字の曜日になります。

（例）

InsertDateTime("MM/DD/YY (WWW) HH:NN");

戻り値

成功したら １、失敗したら 0 を戻します。失敗した場合は、 GetLastError で原因を調査して適切な処理を行ってください。


選択

ResetSel

SetSelRect

SelRight

SelLeft

SelUp

SelDown

SelWord

SelLine

SelForwChar

SelForwWord

SelBackWord

SelForwPage

SelBackPage

SelTopOfWord

SelEndOfWord

SelTopOfLine

SelEndOfLine

SelTopOfFile

SelEndOfFile


ResetSel

構文	#result=ResetSel();

説明

選択状態を解除します。

戻り値

常に １ を返します。


SelRight

構文	#result=SelRight(#n);

説明

箱型選択の場合は画面の右側に向かって #n カラム選択します。折り返しのカラム数以上には進めません

通常の選択の場合は、次の #n 文字を選択します。

戻り値

成功した場合は、#result に １、失敗した場合は０が返されます。


SelLeft

構文	#result=SelLeft(#n);

説明

箱型選択の場合は画面の左側に向かって #n カラム選択します。行の先頭では動作しません。

通常の選択の場合は次の #n 文字分、戻って選択します。

戻り値

成功した場合は、#result に １、失敗した場合は 0 が返されます。


SelUp

構文	#result=SelUp(#n);

説明

箱型選択の場合は画面の上側に向かって #n 行選択します。キャレットのカラム位置は変更されません。

通常の選択の場合は、#n 行ファイルの先頭に向かって選択します。

行の中の選択位置は直前のキャレットのカラム位置を、現在の編集行の中での位置に変換した位置となります。

行は画面上の一行を基準に計算します。

戻り値

成功した場合は、#result に １、失敗した場合は 0 が返されます。


SelDown

構文	#result=SelDown(#n);

説明

箱型選択の場合は画面の下側に向かって #n 行選択します。キャレットのカラム位置は変更されません。

通常の選択の場合は次の #n 行、ファイルの末尾に向かって選択します。

行の中の選択位置は直前のキャレットのカラム位置を、現在の編集行の中での位置に変換した位置となります。

行は画面上の一行を基準と計算します。

戻り値

成功した場合は、#result に １、失敗した場合は 0 が返されます。


SelWord

構文	#result=SelWord();

説明

選択される前に箱型選択モードを解除し、 もし選択状態であれば、これも解除した後に一語選択します。

編集位置は移動しません。

戻り値

成功した場合は、#result に １、失敗した場合は 0 が返されます。


SelLine

構文	#result=SelLine();

説明

選択される前に箱型選択モードを解除し、もし選択状態であれば、これも解除した後に一行選択します。一行の考え方はローカル環境設定に依存しています。

編集位置は移動しません。

戻り値

成功した場合は、#result に １、失敗した場合は 0 が返されます。


SelForwChar

構文	#result=SelForwChar(#n);

説明

選択される前に箱型選択モードを解除し、もし選択状態であれば、これも解除した後に #n 文字、ファイルの末尾に向かって選択します。

編集位置は移動しません。

戻り値

成功した場合は、#result に １、失敗した場合は 0 が返されます。


SelForwWord

構文	#result=SelForwWord(#n);

説明

ファイルの末尾に向かって次の #n 語選択します。

編集位置は選択の終点になります。

戻り値

成功した場合は、#result に １、失敗した場合は 0 が返されます。


SelBackWord
SelBackwWord

構文	#result=SelBackwWord(#n);

説明

ファイルの先頭に向かって 次の #n 語選択します。

編集位置は選択の終点になります。

戻り値

成功した場合は、#result に １、失敗した場合は 0 が返されます。


SelForwPage

構文	#result=SelForwPage(#n,#mode);

説明

箱型選択の場合はファイルの末尾に向かって次の #n ページ選択します。キャレットのカラム位置は変更されません。

通常の選択の場合は次の #n ページ、ファイルの末尾に向かって選択します。行の中の選択位置は直前のキャレットのカラム位置を、現在行の中での位置に変換した位置となります。

#mode が １の場合は半ページ、０の場合は １ページずつ進みます。

戻り値

成功した場合は、#result に １、失敗した場合は 0 が返されます。


SelBackPage

構文	#result=SelBackPage(#n,#mode);

説明

箱型選択の場合はファイルの先頭に向かって 次の #n ページ選択します。キャレットのカラム位置は変更されません。

通常の選択の場合は前の #n ページ、ファイルの先頭に向かって選択します。行の中の選択位置は直前のキャレットのカラム位置を、現在行の中での位置に変換した位置となります。

#mode が 1 の場合は半ページ、0 の場合は １ページずつ進みます。

戻り値

成功した場合は、#result に 1、失敗した場合は 0 が返されます。


SelTopOfWord

構文	#result=SelTopOfWord();

説明

語の先頭まで選択します。

戻り値

成功した場合は、#result に １、失敗した場合は 0 が返されます。


SelEndOfWord

構文	#result=SelEndOfWord();

説明

語の末尾まで選択します。

戻り値

成功した場合は、#result に １、失敗した場合は 0 が返されます。


SelTopOfLine

構文	#result=SelTopOfLine();

説明

行の先頭まで選択します。行の考え方はローカル環境に依存します。

戻り値

成功した場合は、#result に １、失敗した場合は 0 が返されます。


SelEndOfLine

構文	#result=SelEndOfLine();

説明

行の末尾まで選択します。行の考え方はローカル環境に依存します。

戻り値

成功した場合は、#result に １、失敗した場合は 0 が返されます。


SelTopOfFile

構文	#result=SelTopOfFile();

説明

ファイルの先頭まで選択します。

戻り値

成功した場合は、#result に １、失敗した場合は 0 が返されます。


SelEndOfFile

構文	#result=SelEndOfFile();

説明

ファイルの末尾まで選択します。

戻り値

成功した場合は、#result に １、失敗した場合は 0 が返されます。


SetSelRect

構文	#result=SetSelRect(#sx,#sy,#ex,#ey,#mode)

説明

指定範囲を選択状態にします。箱型選択状態にしたい場合は、#mode に SEL_BOX を指定してください。

#sx,#sy は選択開始位置です。

#ex,#ey は選択終了位置です。

箱型選択の場合は #sx,#ex は画面上のカラム位置を指定します。

通常の選択の場合は行頭からのバイト位置を指定します。

戻り値

成功した場合は 1、失敗した場合は 0 が返されます。


カット＆ペースト

GetSelStr

CanPaste

GetClipboardData

SetClipboarddata

EmptyClipboard

ConvertCrLfToCr

ConvertCrToCrLf

InsertQuatationMark

Delete

Cut

Copy

Paste


GetSelStr

構文	$result=GetSelStr(#mode);

説明

選択されたテキストを取り込みます。

#mode が 1 の場合は、改行コード（'akira32' 内部では CR(0x0D)になっています）を CRLF(0x0D,0x0A) に変換しながら取り出します。このデータをクリップボードに書き込みたい場合などは １ にしてください。

戻り値

$result に取り出したテキストが戻されます。取り出しに失敗した場合は $result の長さが 0 になっていますので、GetLastError() で原因を調べて適切な処理を行ってください。


CanPaste

構文	#result=CanPaste();

説明

クリップボードにテキストデータがあるかどうかをテストします。

戻り値

データがある場合、#result に １、ない場合は 0 が返されます。


GetClipboardData

構文	$result=GetClipboardData(#mode1,#mode2);

説明

クリップボードのデータを取り出します。

#mode1

1 の場合は追加書きされた単位にとりだし、0 の場合はすべて取り出します。

#mode2

1 の場合はデータを取り出した後にクリップボードをクリアします。

戻り値

$result に取り出したテキストが戻されます。取り出しに失敗した場合は $result の長さが 0 になっていますので、 GetLastError() で原因を調べて適切な処理を行ってください。

さらに、取り出されたテキストが箱型選択されて転送されたものだった場合は、システム変数 BoxData が 1 になります。通常のテキストデータの場合は 0 になります。

又、取り出されたテキストは改行がほとんどの場合 CR+LF になっているはずですので、このデータをファイルに挿入する場合は、ConvertCrLfToCr でデータを変換してから挿入してください。

引用符付きで挿入したい場合は、InsertQuatationMark を使用してさらにテキストを変換してください。


SetClipboardData

構文	#result=SetClipboardData($data,#mode1,#mode2);

説明

$data をクリップボードに書き込みます。

#mode1

1 の場合は追加書き、0 の場合はクリップボードをクリアして書き込まれます。

#mode2

1 の場合は箱型データとして書き込まれます。0 の場合は通常のデータとして書き込まれます。

戻り値

書き込みに成功した場合 #result に 1、失敗した場合は 0 が戻されます。失敗した場合は GetLastError() で原因を調べて適切な処理を行ってください。

'akira32' 内部では改行は CR(0x0D)になっていますので書き込むデータはこれを ConvertCrToCrLf で CRLF(0x0D,0x0A)に自分で変換するか、又は、GetSelStr で選択されたテキストを変換付きで取り込んで書き込んでください。（改行を含む場合)


EmptyClipboard

構文	#result=EmptyClipboard();

説明

クリップボードを空にします。

戻り値

成功した場合は 1、失敗した場合は 0 が戻ります。


ConvertCrLfToCr

構文	#result=ConvertCrLfToCr($text);

説明

$text に格納されている文字列の改行コード CRLF(0x0D,0x0A)を CR(0x0D)に、そして LF(0X0A) と EOF(0x1A)も CR(0x0D) に変換します。'akira32'の改行は CR(0x0D) ですので、クリップボード等から取り出したテキストデータを InsertStr などで使用する場合に変換してください。

$text は必ず変数でなくてはいけません。変数以外の文字列が渡された場合はそれ以降の動作が不安定になる事もあります。

戻り値

成功した場合 #result に 1、失敗した場合は 0 が戻されます。


InsertQuatationMark

構文	#result=InsertQuatationMark($text);

説明

$text に格納されている文字列の各行頭に 引用符を挿入します。

クリップボード等から取り出したテキストデータを引用符付きで貼り付けたい場合に使用してください。引用符は「ローカル環境」で設定されている記号を使用します。

$text は必ず変数でなくてはいけません。変数以外の文字列が渡された場合はそれ以降の動作が不安定になる事もあります。

戻り値

成功した場合 #result に 1 、失敗した場合は 0 が戻されます。失敗した場合は GetLastError() で原因を調べて適切な処理を行ってください。


ConvertCrToCrLf

構文	#result=ConvertCrToCrLf($text);

説明

$text に格納されている文字列の改行コード CR(0x0D)を CRLF(0x0D,0xA)に変換します。

'akira32'の改行は CR(0x0D) ですので、クリップボードにテキストデータを書き込む場合は、この関数で改行コードを変換します。

$text は必ず変数でなくてはいけません。変数以外の文字列が渡された場合はそれ以降の動作が不安定になる事もあります。

戻り値

成功した場合 #result に 1、失敗した場合は 0 が戻されます。失敗した場合は GetLastError() で原因を調べて適切な処理を行ってください。


Delete

構文	#result=Delete();

説明

現在の編集位置が選択されたテキストの先頭に移動され、選択されたテキストが削除されます。

戻り値

成功した場合 #result に 1、失敗した場合は 0 が戻されます。失敗した場合は GetLastError() で原因を調べて適切な処理を行ってください。


Cut

構文	#result=Cut(#mode);

説明

現在の編集位置が選択されたテキストの先頭に移動され、選択されたテキストがカットされ、クリップボードに書き込まれます。

#mode が 1 の場合はクリップボードに追加書きされます。0 の場合はクリップボードがクリアされと後に書き込まれます。

戻り値

成功した場合 #result に 1 、失敗した場合は 0 が戻されます。失敗した場合は GetLastError() で原因を調べて適切な処理を行ってください。


Copy

構文	#result=Copy(#mode);

説明

選択されたテキストをクリップボードに書き込みます。編集位置は移動しません。

#mode が 1 の場合はクリップボードに追加書きされます。0 の場合はクリップボードがクリアされた後に書き込まれます。

戻り値

成功した場合 #result に 1、失敗した場合は 0 が戻されます。失敗した場合は GetLastError() で原因を調べて適切な処理を行ってください。


Paste

構文	#result=Paste(#mode1,#mode2,#mode3,#mode4,#mode5);

説明

クリップボードのテキストデータを貼り付けます。

#mode1

1 の場合は追加単位で貼り付けます。0 の場合はクリップボードのテキストデータをすべて貼り付けます。

#mode2

１ の場合は貼り付けられたテキストはクリップボードから削除されます。0 の場合はそのまま残されます。

#mode3

１ の場合は行頭に貼り付けます。0 の場合は現在の編集位置から貼り付けます。（行の考え方は、ローカル環境の設定に依存しています。）

#mode4

１ の場合は上書きして貼り付けます。0 の場合は挿入されます。

#mode5

１の場合は引用符を付けて貼り付けます。0 の場合は取り出さしたテキストだけを貼り付けます。

戻り値

成功した場合 #result に 1、失敗した場合は 0 が戻されます。失敗した場合は GetLastError() で原因を調べて適切な処理を行ってください。


検索関数

Search

Replace

Pairmatch

LineJump

Mark

MarkJump

TagJump

BacktagJump

Grep

Browse

GrepDialog

BrowseDialog


Search

構文	#result=Search(#First,$text,#next,#Regular,#flag);

説明

現在の編集位置から、検索を行います。

#First

連続検索する場合に、一回目の検索の場合は １、２回目以降は 0 をセットします。

$text

検索する文字列

#next

１ の場合ファイル末尾に向かって検索します。0 の場合はファイル先頭に向かって検索します。

#Regular

１の場合 $text は正規表現された文字列です。0 の場合は通常の検索文字列です。

#flag

通常の検索の場合このフラグが 1 なら、大文字小文字の区別をせずに検索します。

戻り値

検索に成功した場合は 1、見つからなかった場合は 0 を返します。検索された文字列は選択状態になり、システム変数の  #SelStatus に SEL_SEARCH フラグがたっています。

（例) 検索の例です。

var	#first=1;

var	#count=0;

ResetSel();

TopOfFile();

while(TRUE){

if(!Search(#first,"akira",TRUE,FALSE,FALSE)) break;

#first=0;

#count++;

}

ResetSel();

DrawWindow(FALSE,0);

Message(Itoa(#count)+"個の akira を見つけました。");


Replace

構文	#result=Replace($text,#Regular,#sel,#forw);

説明

検索された文字列を置き換えます。

$text

置き換える文字列です。

#Regular

1 の場合は正規表現検索された文字列を置き換えるとき、0 の場合は通常の検索で見つかった文字列です。

#sel

１の場合は置き換え後の文字列を選択状態にします。

#forw

１の場合は置き換えられた文字数分編集位置を先に進めます。

関数 Replace は検索された文字列が選択状態にあると前提していますので、置き換え前に検索された文字列を関数 ResetSel で解除してはいけません。

戻り値

置き換えに成功した場合は 1、失敗した場合は 0 を返します。失敗した場合は GetLastError() で原因を調べて適切な処理を行ってください。

（例-1) 通常の検索と置き換え

var	#count=0;

ResetSel();

TopOfFile();

while(TRUE){

if(!Search(1,"akira",TRUE,FALSE,FALSE)) break;

Replace("AKIRA",FALSE,FALSE,TRUE);

#count++;

}

ResetSel();

DrawWindow(FALSE,0);

Message(Itoa(#count)+"個の akira を AKIRA に置き換えました。");

（例-2）正規表現での検索と置き換え

var #count=0;

ResetSel();

TopOfFile();

while(TRUE){

if(!Search(1,"(青)い(空)",TRUE,TRUE,FALSE)) break;

Replace("\2は\1い",TRUE,FALSE,TRUE);

#count++;

}

ResetSel();

DrawWindow(FALSE,0);

Message(Itoa(#count)+"個の 青い空 を  空は青い に置き換えました。");


PairMatch

構文	#result=PairMatch();

説明

( と ) { と } のペアの検索を行います。

現在の編集位置の文字が ( ) { } 以外の場合は失敗します。

検索後の編集位置は見つかった場所に移動しています。見つからなかった場合は移動しません。

戻り値

見つかった場合は １、見つからなかった場合は 0 を返します。


LineJump

構文	#result=LineJump(#line,#mode);

説明

#line で指定された行の先頭に編集位置を移動させます。

#mode が １ の場合は改行コードを基準に行数を計算し、0 の場合は画面上の 一行基準に計算します。

戻り値

成功した場合は 1、失敗した場合は 0 を返します。


Mark

構文	#result=Mark(#no);

説明

マーク番号 #no に現在の編集位置を記録します。 #no は 0 から 7 です。

戻り値

成功した場合は １、失敗した場合は 0 を返します。

参照

MarkJump


MarkJump

構文	#result=MarkJump(#no);

説明

マーク番号 #no に記録された位置に編集位置を移動させます。移動先は他のウインドウでもかまいません。

戻り値

成功した場合は １、失敗した場合は 0 を返します。

参照

Mark


TagJump

構文	#result=TagJump();

説明

現在の編集行から「ファイルタグ」を見つけてそのファイルにジャンプします。そのファイルがまだ開かれていない場合は自動的にファイルを開きます。

戻り値

成功した場合は 1、失敗した場合は 0 を返します。

参照

BackTagJump


BackTagJump

構文	#result=BackTagJump();

説明

現在アクティブなウインドウがタグジャンプで開かれたファイルの場合は、呼び出し元のファイルに戻ります。

戻り値

成功した場合は １、失敗した場合は 0 を返します。

参照

TagJump


Grep

構文	#result=Grep($path,$outfile,$searchstr,#subdir,#append,#regular,#flag);

説明

Grep を実行します。実行する前に現在アクティブなウインドウに変更が加えられている場合はかならず再描画しておいてください。

$path

検索するファイルを指定します。ファイルとファイルはセミコロンで区切ります。最初のファイルにだけディレクトリのパスを付けてください。

（例）

"c:\\texts\\*.txt;*.doc"

$outfile

結果を出力するファイルの名前を、フルパスで指定します。

$searcshstr

検索する文字列を指定します。#regular が非ゼロの場合は正しい正規表現パターンでなくてはいけません。

#subdir

非ゼロの場合は、サブディレクトリの中も検索します。

#append

非ゼロの場合は前回の結果に検索結果を追加書します。この場合は $outfile は前回のファイル名と同じにしなくては意味がありません。

#Regular

非ゼロの場合 $searchstr は正規表現された文字列です。0 の場合は通常の検索文字列です。

#flag

通常の検索の場合、このフラグが非ゼロなら、大文字小文字の区別をせずに検索します。

戻り値

検索に成功した場合は １、失敗した場合は 0 を返します。失敗した場合は GetLastError でエラーの原因をしらべて適切な処理を行ってください。


Browse

構文	#result=Browse($path,$outfile,#mode,#subdir,#append);

説明

関数一覧表を作成します。実行する前に現在アクティブなウインドウに変更が加えられている場合はかならず再描画しておいてください。

$path

検索するファイルを指定します。ファイルとファイルはセミコロンで区切ります。最初のファイルにだけ、ディレクトリのパスを付けてください。

（例）

"c:\\texts\\*.txt;*.doc"

$outfile

結果を出力するファイルの名前をフルパスで指定します。

#mode

0 の場合は関数のみリストします。1 の場合はクラスのみリストします。 2 の場合は関数とクラスをリストします。

#subdir

非ゼロの場合は、サブディレクトリの中も検索します。

#append

非ゼロの場合は前回の結果に検索結果を追加書します。この場合は、$outfile は前回のファイル名と同じにしなくては意味がありません。

戻り値

検索に成功した場合は １、失敗した場合は 0 を返します。失敗した場合は GetLastError でエラーの原因をしらべて適切な処理を行ってください。


GrepDialog

構文	#result=GrepDialog();

説明

Grep のダイアログボックスを通じて Grep を実行します。

戻り値

検索に成功した場合は １、失敗した場合は 0 を返します。失敗した場合は GetLastError でエラーの原因をしらべて適切な処理を行ってください。


BrowseDialog

構文	#result=BrowseDialog();

説明

関数一覧表作成のダイアログボックスを通じて 関数一覧表を作成します。

戻り値

検索に成功した場合は １、失敗した場合は 0 を返します。失敗した場合は GetLastError でエラーの原因をしらべて適切な処理を行ってください。


ウインドウ関数

ShowAkira

ShowDoc

ShowAll

TileVert

TileHorz

Cascade

ArrageIcons

NextDoc

PrevDoc

IsIconic

IsZoomed

GetWindowSize

GetWindowPos

MoveWindow

FindWindow

CreatePopupWindow

DestroyWindow

IsWindow

SetWindowText


ShowAkira

構文	ShowAkira(#mode);

説明

'akira32' を #mode のサイズに変更します。

#mode は下の値を指定します。

SW_MAXIMIZE	:	最大化します。

SW_MINIMIZE	:	最小化します。

SW_RESTORE	:	元のサイズに戻します。

参照

定義済み定数


ShowDoc

構文	#result=ShowDoc(#mode);

説明

ドキュメントウインドウを #mode のサイズに変更します。

#mode は下の値を指定します。

SW_MAXIMIZE	:	最大化します。

SW_MINIMIZE	:	最小化します。

SW_RESTORE	:	元のサイズに戻します。

戻り値

ＭＤＩ子ウインドウが、一つも開かれていない場合は 0、それ以外は 1 を返します。

参照

定義済み定数


ShowAll

構文	#result=ShowAll(#mode1);

説明

開かれているすべてのドキュメントウインドウを #mode1 のサイズに変更します。

#mode1 は下の値を指定します。

SW_MAXIMIZE	:	最大化します。

SW_MINIMIZE	:	最小化します。

SW_RESTORE	:	元のサイズに戻します。

戻り値

ＭＤＩ子ウインドウが、一つも開かれていない場合は 0、それ以外は 1 を返します。

参照

定義済み定数


TileVert

構文	#result=TileVert();

説明

ドキュメントウインドウを 縦長にタイル表示します。

戻り値

ＭＤＩ子ウインドウが、一つも開かれていない場合は ０、それ以外は １を返します。

参照

定義済み定数


TileHorz

構文	#result=TileHorz();

説明

ドキュメントウインドウを 横長にタイル表示します。

戻り値

ＭＤＩ子ウインドウが、一つも開かれていない場合は ０、それ以外は １を返します。

参照

定義済み定数


Cascade

構文	#result=Cascade();

説明

ドキュメントウインドウを カスケード表示します。

戻り値

ＭＤＩ子ウインドウが、一つも開かれていない場合は ０、それ以外は １を返します。

参照

定義済み定数


ArrageIcons
ArrangeIcons

構文	#result=ArrageIcons();

説明

アイコン化されたドキュメントウインドウを並べ替えます。

戻り値

ＭＤＩ子ウインドウが、一つも開かれていない場合は ０、それ以外は １を返します。


NextDoc

構文	#result=NextDoc();

説明

次のドキュメントウインドウをアクティブ化します。

戻り値

ＭＤＩ子ウインドウが、一つも開かれていない場合、又は一つしか開かれていない場合は ０、それ以外は １を返します。


PrevDoc

構文	#result=PrevDoc();

説明

前のドキュメントウインドウをアクティブ化します。

戻り値

ＭＤＩ子ウインドウが、一つも開かれていない場合、又は一つしか開かれていない場合は ０、それ以外は １を返します。


IsIconic

構文	#result=IsIconic(#frame);

説明

#frame が １の場合は、'akira32' 自身、0 の場合は現在アクティブなドキュメントウインドウがアイコンかされているかどうかを調べます。

戻り値

アイコン化されている場合は １、そうでないばあいは 0 を返します。


IsZoomed

構文	#result=IsZoomed(#frame);

説明

#frame が １ の場合は、'akira32' 自身、0 の場合は現在アクティブなドキュメントウインドウが最大化されているかどうかを調べます。

戻り値

最大化されている場合は １、そうでないばあいは 0 を返します。


GetWindowSize

構文	#result=GetWindowSize(#mode,#handle);

説明

ウインドウのサイズを取得します。取得されたサイズは、幅がシステム変数の #rWindowWidth に、そして高さが #rWindowHeight にセットされます。

#handle

現在未使用です。０をセットしてください。

#mode

サイズ取得するウインドウを区別します。

#mode が 0x00 の場合

スクリーン(画面全体)のサイズです。

#mode が 0x10 の場合

'akira32'のフレームウインドウ('akira32'全体)のサイズを返します。

#mode が 0x11 の場合

'akira32' のフレームウインドウのクライアント領域('akira32'の MDI子ウインドウが表示される部分)のサイズを返します。

#mode が 0x20 の場合

ドキュメントウインドウ（MDI子ウインドウ全体)のサイズを返します。

#mode が 0x21 の場合

ドキュメントウインドウのクライアント領域(MDI子ウインドウのテキストが表示される部分)のサイズを返します。

戻り値

成功した場合は 非ゼロ,失敗した場合は 0 を返します。


GetWindowPos

構文	#result=GetWindowPos(#mode,#handle);

説明

ウインドウの左上隅の位置を取得します。取得された位置は、横軸の位置がシステム変数の #rWindowLefth に、そして縦軸の位置が #rWindowTop にセットされます。

#handle

現在未使用です。０をセットしてください。

#mode

サイズ取得するウインドウを区別します。

#mode が 0x10 の場合

'akira32'のフレームウインドウの位置を画面の左上隅を原点とした位置を返します。

#mode が 0x20 の場合

ドキュメントウインドウの位置を 'akira32 のフレームウインドウのクライアント領域の左上隅を原点とした位置を返します。

戻り値

成功した場合は 非ゼロ,失敗した場合は０を返します。


MoveWindow

構文	#result=MoveWindow(#mode,#handle,#left,#top,#width,#height);

説明

ウインドウを移動させます。ウインドウの左上隅の位置を #left,#top で指定します。ウインドウの幅を #width,高さを #height で指定します。#left,#top の原点は #mode によって考え方が変わります。

#handle

現在未使用です。０をセットしてください。

#mode

移動させるウインドウを区別します。

#mode が 0x10 の場合

画面の左上隅を原点として移動させます。

#mode が 0x20 の場合

'akira32' のフレームウインドウのクライアント領域の左上隅を原点として移動させます。

戻り値

成功した場合は 非ゼロ,失敗した場合は０を返します。


CreatePopupWindow

構文	#result=CreatePopupWindow($caption);

説明

この関数は ポップアップウインドウを作成します。$caption がウインドウのキャプションテキストになります。

戻り値

ウインドウの作成に成功した場合は ウインドウのハンドルを返します。それ以外の場合は NULL が戻ります。

参照

DestroyWindow,SetWindowText


DestroyWindow

構文	#result=DestroyWindow(#handle);

説明

この関数は ウインドウハンドル #handle で識別されるウインドウを破棄します。

戻り値

成功した場合は 1,失敗した場合は 0 を返します。

参照

CreatePopupWindow


SetWindowText

構文	#result=SetWindowText(#handle,#id,$text);

説明

この関数は ウインドウハンドル #handle で識別されるウインドウに、$test を表示させます。

#id が ０の場合は キャプションに、101 の場合は、ウインドウのクライアント領域に表示されます。

戻り値

成功した場合は 1,失敗した場合は 0 を返します。

参照

CreatePopupWindow


IsWindow

構文	#result=IsWindow(#handle);

説明

この関数は ウインドウハンドル #handle がウインドウなのかどうかを調べます。

戻り値

ウインドウの場合は 1,それ以外の場合は 0 を返します。

参照

CreatePopupWindow


FindWindow

構文	#result=FindWindow($classname,$windowtext);

説明

$classname で指定されたクラス名のウインドを探します。$windowtext はキャプションに表示されている文字列です。$windowstext の長さが０の場合は、$classname を持つすべてのウインドウに一致します。

戻り値

ウインドウが見つかったら、そのウインドウのハンドルを返します。見つからなかった場合は ０ を返します。


ファイル関数

CountDocs

GetFileName

SearchDoc

SearchPath

OpenFile

OpenNew

DupDoc

IsNoName

SaveFile

SaveFileAs

CloseDoc

CloseAkira

OpenDialog

SaveAsDialog

MergeFile

MergeDialog


CountDocs

構文	#result=CountDocs();

説明

開かれているドキュメントウインドウを数えます。ドキュメントウインドウとはテキストの表示されている ＭＤＩ 子ウインドウの事です。

戻り値

開かれている、ドキュメントウインドウの数を返します。


GetFileName

構文	$result=GetFileName(#n);

説明

#nで指定されたドキュメントウインドウのファイル名を得ます。#n==0,#n==1 の場合は現在アクティブなドキュメントウインドウのファイル名を返します。

戻り値

名前の取得に成功した場合は、$result にファイル名、失敗した場合は、$result に長さ０の文字列が返されます。


SearchDoc

構文	#result=SearchDoc($FileName,#mode);

説明

開かれているファイルの中から、$FileName のファイル名を持つドキュメントウインドウを探します。

#mode が １で、目的のファイルが見つかった場合は、そのウインドウがアクティブ化されます。０ の場合は見つかってもアクティブ化はされません。

戻り値

見つかった場合は １、見つからなかった場合は ０ が返されます。


SearchPath

構文	#result=SearchPath($FileName);

説明

ディスクの中から $FileName で指定されたファイルの存在をチェックします。

戻り値

見つかった場合は １、見つからなかった場合は ０ が返されます。


OpenFile

構文	#result=OpenFile(#Code,$FileName,#ReadOnlyMode,#New,#flag);

説明

ファイルを開きます。

#Code はファイルの文字コードで、下のいずれかを指定してください。

CODE_SJIS 	シフトジスコード

CODE_EUC  	EUC コード

CODE_UNICODE 	ユニコード

CODE_AUTO	自動判定します。

ファイルが開かれたら、このコードはファイル毎にシステム変数 #CharCode に保存されます。

$FileName

開くファイルの名前です。

#ReadOnlyMode

非ゼロの場合はリードオンリーモードで開きます。このフラグは、ファイル毎にシステム変数 #ReadOnly に保存されます。

#New

非ゼロの場合は、まだ存在しないファイルとして開かれます。このフラグはファイル毎にシステム変数 #NewFile に保存されます。

#flag

ファイルのオープンモードで、下のいずれかを指定します。

０ 	通常のオープンファイル 。

FLAG_GREP 	GREP の結果ファイル。

FLAG_TAGJUMPED 	タジャンプによって開かれたファイル。

このフラグはファイル毎にシステム変数 #FileFlag に保存されます。

戻り値

成功した場合 #result に １ 失敗した場合は ０ が戻されます。失敗した場合は GetLastError() で原因を調べて適切な処理を行ってください。

さらに、開いた結果として下のシステム変数にも値がセットされます。

#rConverted

読み込んだファイルの途中に EOF(0x1A) コードがあった場合、漢字第一バイトに続く第二バイト目が漢字コードの二バイトと目ではない場合に １ がセットされます。なおこれらのコードは半角スペースに置き換えられています。この値はファイル毎に保存されています。

#LfEol

読み込んだファイルの行末が LF(0x0A)で終わっていた場合は １ 、CRLF(0x0D0x0A) で終わっていた場合は ０ になります。この値はファイル毎に保存されています。

#EofEof

読み込んだファイルが EOF(0x1A) で終わっていた場合は １、そうでなかった場合は ０になります。この値はファイル毎に保存されています。


OpenNew

構文	#result=OpenNew();

説明

名前が「無題」のファイルを開きます。

戻り値

成功した場合 #result に １ 失敗した場合は ０ が戻されます。失敗した場合は GetLastError() で原因を調べて適切な処理を行ってください。


DupDoc

構文	#result=DupDoc();

説明

ファイルを二重化します。

戻り値

成功した場合 #result に １ 、失敗した場合は ０ が戻されます。失敗した場合は GetLastError() で原因を調べて適切な処理を行ってください。


IsNoName

構文	#result=IsNoName();

説明

現在アクティブなドキュメントウインドウが、「無題」かどうかを調べます。

戻り値

「無題」の場合は １、そうでない場合は ０ を返します。


SaveFile

構文	#result=SaveFile(#mode);

説明

現在アクティブなドキュメントウインドウをディスクに保存します。保存するだけでウインドウはクローズされません。又、テキストに変更が加えられていなくても必ず保存されますので、無変更の場合に保存したくない場合は、システム変数 #Modified を調べて対応してください。さらに保存されるファイルが「無題」なのかどうかは調べられませんので、 IsNoName で「無題」かどうかを調べて、「無題」の場合は SaveFileAs を使用してください。

この関数を実行する前に、もしテキストに変更が加えてある場合は、 DrawWindow で必ず画面を更新しておいてください。

#mode が非ゼロの場合はバックアップファイルを作成します。バックアップファイルの作成されるディレクトリ、バックアップファイルの拡張子、世代管理は「ローカル環境の設定」に依存します。

保存される時の文字コードは原則として読み込んだ時の文字コードと同じコードで保存されますが、システム変数の #CharSet を設定して、特定の文字コードで保存する事もできます。

保存される時の改行コードは原則として読み込んだ時の改行コードと同じコードで保存されますが、システム変数の #LfEol を設定して、0x0A にする事もできます。又、「ローカル環境」の「改行コードは UNIX 風にする」がチェックされている場合はかならず 0x0A で保存されます。

保存される時に EOFコード(0x1A) を付けるかどうかは、原則として読み込んだ時の状態に依存しますがシステム変数の #EofEof を設定して、付けるようにする事もできます。又、「ローカル環境」の「保存する時に EOF コードを付けない」がチェックされている場合は EOF コードは付けられません。

戻り値

成功した場合 #result に １ 、失敗した場合は ０ が戻されます。失敗した場合は GetLastError() で原因を調べて適切な処理を行ってください。


SaveFileAS

構文	#result=SaveFileAs($FileName,#mode);

説明

現在アクティブなドキュメントウインドウを $FileName に格納されている名前でディスクに保存します。保存するだけでウインドウはクローズされません。又、テキストに変更が加えられていなくても必ず保存されますので、無変更の場合に保存したくない場合は、システム変数 #Modified 調べて対応してください。

この関数を実行する前に、もしテキストに変更が加えてある場合は、 DrawWindow で必ず画面を更新しておいてください。

#mode が非ゼロの場合はバックアップファイルを作成します。バックアップファイルの作成されるディレクトリ、バックアップファイルの拡張子、世代管理は「ローカル環境の設定」に依存します。

保存される時の文字コードは原則として読み込んだ時の文字コードと同じコードで保存されますが、システム変数の #CharSet を設定して、特定の文字コードで保存する事もできます。

保存される時の改行コードは原則として読み込んだ時の改行コードと同じコードで保存されますが、システム変数の #LfEol を設定して、0x0A にする事もできます。又、「ローカル環境」の「改行コードはＵＮＩＸ風にする」がチェックされている場合はかならず 0x0A で保存されます。

保存される時に EOFコード(0x1A) を付けるかどうかは、原則として読み込んだ時の状態に依存しますがシステム変数の #EofEof を設定して、付けるようにする事もできます。又、「ローカル環境」の「保存する時に EOF コードを付けない」がチェックされている場合は EOF コードは付けられません。

戻り値

成功した場合 #result に １、失敗した場合は ０ が戻されます。失敗した場合は GetLastError() で原因を調べて適切な処理を行ってください。


CloseDoc

構文	CloseDoc();

説明

現在アクティブなドキュメントウインドウを閉じます。閉じる前にファイルが変更されていても自動的にディスクに保存することはしません。無条件に終了します。


CloseAkira

構文	CloseAkira();

説明

'akira32' 自身を終了させます。


SaveAsDialog

構文	#result=SaveAsDialog();

説明

名前を付けて保存するダイアログボックスが表示されます。ダイアログボックスの中で [OK] が押されてファイル名が有効であれば、その名前でディスクに保存されます。

この関数を実行する前に、テキストに変更を加え、まだ画面を再描画していない場合は、関数実行前に必ず再描画しておいてください。

戻り値

成功した場合 #result に １、失敗した場合は ０ が戻されます。失敗した場合は GetLastError() で原因を調べて適切な処理を行ってください。


OpenDialog

構文	#result=OpenDialog();

説明

ファイルオープンダイアログボックスからファイルを開きます。開くときの動作は「広域動作環境」の「開く時」関係の設定に依存します。

この関数を実行する前に、テキストに変更を加え、まだ画面を再描画していない場合は、関数実行前に必ず再描画しておいてください。

戻り値

成功した場合 #result に １、失敗した場合は ０ が戻されます。失敗した場合は GetLastError() で原因を調べて適切な処理を行ってください。

開いた結果として下のシステム変数に値がセットされます。

#rConverted

読み込んだファイルの途中に EOF(0x1A) コードがあった場合、漢字第一バイトに続く第二バイト目が漢字コードの二バイトと目ではない場合に １ がセットされます。なおこれらのコードは半角スペースに置き換えられています。この値はファイル毎に保存されています。

#LfEol

読み込んだファイルの行末が LF(0x0A)で終わっていた場合は １、 CRLF(0x0D0x0A) で終わっていた場合は ０ になります。この値はファイル毎に保存されています。

#EofEof

読み込んだファイルが EOF(0x1A) で終わっていた場合は １、そうでなかった場合は ０ を取ります。この値はファイル毎に保存されています。

#CharCode

ファイルの文字コードが、ファイル毎に保存されます。

#ReadOnly

リードオンリーで開かれた場合はこの値は １ になります。ファイル毎にセットされます。

#NewFile

まだ存在しないファイルが開かれた場合は この値は １ になります。ファイル毎に、セットされます。


MergeFile

構文	#result=MergeFile(#Code,$FileName);

説明

ファイル $FileName を読み込んで現在の編集位置に挿入します。

#Code はファイルの文字コードで、下のいずれかを指定してください。

CODE_SJIS 	シフトジスコード

CODE_EUC  	EUC コード

CODE_UNICODE 	ユニコード

CODE_AUTO	自動判定します。

戻り値

成功した場合 #result に １、失敗した場合は ０ が戻されます。失敗した場合は GetLastError() で原因を調べて適切な処理を行ってください。


MergeDialog

構文	#result=MergeDialog();

説明

ファイルオープンダイアログで指定されたファイルを読み込んで現在の編集位置に挿入します。

この関数を実行する前に、テキストに変更を加え、まだ画面を再描画していない場合は、関数実行前に必ず再描画しておいてください。

戻り値

成功した場合 #result に １、失敗した場合は ０ が戻されます。失敗した場合は GetLastError() で原因を調べて適切な処理を行ってください。


文字と文字列操作関数

atoi

itoa

HanToZen

ZenToHan

LeftStr

RightStr

MidStr

MidStrChr

ChrStr

Spaces

MemSet

jStrStr

jStrChr

jStrLwr

jStrUpr

ForwChrPos

BackChrPos

lstrlen

chop

chopex

lshiftstr


itoa

構文 $text=itoa(#n);

説明

#n を数字文字列に変換します。

戻り値

$text に変換結果の文字列が戻ります


atoi

構文 #n=atoi($text);

説明

$text を数値に変換します。

戻り値

#n に変換結果の数値が戻ります


ZenToHan

構文	#result=ZenToHan(#charcode);

説明

#charcode を 半角文字に変換します。

戻り値

変換できた場合は変換後の文字コードを返します。変換できなかった場合は元のコードをそのまま戻します。


HanToZen

構文	#result=HanToZen(#charcode);

説明

#charcode を 全角文字に変換します。

戻り値

変換できた場合は変換後の文字コードを返します。変換できなかった場合は元のコードをそのまま戻します。


LeftStr

構文	$result=LeftStr($text,#length);

説明

$text に格納されている文字列の左側（先頭から）の文字を #length 分返します。#length が $text の文字列の長さより大きい場合は $text の文字列と同じ文字列が戻されます。


RightStr

構文	$result=RightStr($text,#length);

説明

$text に格納されている文字列の右側（お尻から）の文字を #length 分返します。#length が $text の文字列の長さより大きい場合は $text の文字列と同じ文字列が戻されます。


MidStr

構文-1 $result=MidStr($text,#offset,#length);

構文-2 MidStr($text,#offset,#length)=$test2;

説明

構文-1 の場合は、$text に格納されている文字列の先頭を ０ として数えて #offset のバイト位置から #length 分のテキストを取り出します。#offset からのテキストの長さが、#length より短い場合は、$text の最後までが返されます。

構文-2 の場合は、$text に格納されている文字列の先頭を ０ として数えて #offset のバイト位置から #length 分のテキストを $text2 で置き換えます。#offset からのテキストの長さが、#length より短い場合や、$text2 の長さが #length より短い場合は、その分のテキストだけが置き換えられます。

戻り値

構文-1 の場合は $result に取り出した文字列、構文-2 の場合は成功した場合は １、失敗した場合は ０ が返されます。


MidStrChr

構文-1 #result=MidStrChr($text,#offset);

構文-2 MidStrChr($text,#offset)=#char;

説明

構文-1 の場合は、$text に格納されている文字列の先頭を ０ として数えて #offset のバイト位置の１バイトの文字コードを戻します。

構文-2 の場合は、$text に格納されている文字列の先頭を ０ として数えて #offset のバイト位置の１バイトをに、#char の文字コードで置き換えます。#char は３２ビットですから、#char の LOWORD の LOWBYTE がセットされます。

戻り値

構文-1 の場合は #result に取り出した文字コード、構文-2 の場合は成功した場合は １、失敗した場合は０が返されます。


ChrStr

構文 $result=ChrStr(#char);

説明

#char の文字コードを文字列に変換します。#char は漢字コードでもＯＫです。

(例）

例-1. $result=ChrStr(0x41);

例-2. $result=ChrStr(0x88BB);

例-1 の場合は $result は "A" になります。 例-2 の場合は "綾" になります。

戻り値

変換された文字列を戻します。


Spaces

構文 $result=Spaces(#length);

説明

#length 分の長さの半角空白文字列を作成します。

戻り値

作成された半角空白文字列を戻します。


MemSet

構文 MemSet($text,#char);

説明

$text を、そのサイズ分 #char でクリアします。


jStrStr

構文 #result=JStrStr($text1,#pos,$text2);

説明

$text1 に格納されている文字列の先頭を ０ として数えた位置 #pos から ,$text2 に格納されている文字列に一致する文字列を探します。見つかった場合は その位置が戻されます。

戻り値

見つかった場合は、文字列の先頭を 0 として数えた位置、みつからなかった場合は負の値が返されます。


jStrChr

構文 #result=JStrChr($text1,#pos,#char);

説明

$text1 に格納されている文字列の先頭を ０ として数えた位置 #pos から ,#char の文字を探します。見つかった場合は、その位置が戻されます。

戻り値

見つかった場合は、文字列の先頭を 0 として数えた位置、みつからなかった場合は負の値が返されます。


jStrLwr

構文 JStrLwr($text);

説明

文字列 $text に格納されている文字列の中の半角英大文字と全角英大文字をそれぞれ、小文字に変換します。


jStrUpr

構文 JStrUpr($text);

説明

文字列 $text に格納されている文字列の中の半角英小文字と全角英小文字をそれぞれ、大文字に変換します。


ForwChrPos

構文 #result=ForwChrPos($text,#offset);

説明

$text に格納されている文字列の先頭を ０ として数えた位置 #offset の次の文字の位置を返します。最後の文字に達している場合は文字列の長さを返します。

戻り値

位置を返します。


BackChrPos

構文 #result=BackChrPos($text,#offset);

説明

$text に格納されている文字列の先頭を ０ として数えた位置 #offset の一文字前の位置を返します。先頭に達している場合は０を返します。

戻り値

位置を返します。


lstrlen

構文	#result=lstrlen($string);

説明

$string の長さを戻します。この場合の長さは文字列の先頭から NULL の一文字前までの長さです。

戻り値

長さを戻します。


chop

構文	#result=chop($str)

説明

$str の最後の一文字を無条件に切り捨てます。

戻り値

成功した場合は１、失敗した場合は０を戻します。


chopex

構文	#result=chopex($str,#len)

説明

$str の 先頭から #len の文字列を残して、残りの文字列を切り捨てます。切り捨てる位置が漢字第二バイト目の場合は #len を －１ して切り捨てます。$str の 長さが ０ や #len より小さい場合は切り捨てはおこりません。

戻り値

成功した場合は１、失敗した場合は０を戻します。


lshiftstr

構文	#result=lshiftstr($str,#len)

説明

$str の 文字列を左に #len シフトします。$str の大きさはその分小さくされます。シフト開始位置が漢字第１バイト目の場合は #len を ＋１ してシフトします。$str の 長さが ０ や #len より小さい場合は $str のサイズは０になります。

戻り値

成功した場合は１、失敗した場合は０を戻します。


ディスクＩ／Ｏ関数

GetProfileInt

PutProfileInt

GetProfileStr

PutProfileStr

mkdir

rmdir

MoveFile

DeleteFile

CreateFile

CloseHandle

ReadFile

WriteFile

SetFilePointer

GetFileSize

GetFileAttr

GetFileTime

GetDiskFreeSpace

GetTempFileName


GetProfileInt

構文	#result=GetProfileInt($section,$key,#default,#filename);

説明

$section;	/* セクション名	*/

$key;	/* キー名	*/

#default;	/* キー名が見つからないときの戻り値	*/

$filename;	/* 初期化ファイル名	*/

指定された初期化ファイルの指定されたセクション内のキーに関連付けられた整数値を取得します。

戻り値

関数が正常に終了した場合は､ 指定された初期化ファイルに指定されたキー名に続く文字列と等しい整数値を返します。キーが見つからない場合は､ 指定されたデフォルトの値を返します。キーの値が負の場合は､ 0を返します。


PutProfileInt

構文	#result=PutProfileInt($section,$key,#value,#filename);

説明

$section;	/* セクション名	*/

$key;	/* キー名	*/

#value;	/* 設定する値	*/

$filename;	/* 初期化ファイル名	*/

指定された初期化ファイルの指定されたセクション内のキーに指定された整数値を設定します。

戻り値

関数が正常に終了した場合は､ １、失敗した場合は０を戻します。


GetProfileStr

構文	#result=GetProfileStr($section,$key,$default,$buffer,#filename);

説明

$section;	/* セクション名	*/

$key;	/* キー名	*/

$default;	/* キー名が見つからないときの戻り値	*/

$buffer;	/* 取得した文字列を返すバッファ	*/

$filename;	/* 初期化ファイル名	*/

関数は､ 指定された初期化ファイル内の指定されたセクションから文字列を取得します。

戻り値

指定されたバッファにコピーされた文字の数を示します。終端のNULL文字は含まれません。失敗した場合は負の値を戻します。


PutProfileStr

構文	#result=PutProfileStr($section,$key,$buffer,#filename);

説明

$section;	/* セクション名	*/

$key;	/* キー名	*/

$buffer;	/* 設定する文字列	*/

$filename;	/* 初期化ファイル名	*/

関数は､ 指定された初期化ファイル内の指定されたセクションの指定されたキーに文字列を設定します。

戻り値

関数が正常に終了した場合は､ １、失敗した場合は０を戻します。


mkdir

構文	#result=mkdir($dir);

説明

$dir;	/* 作成するディレクトリのパス	*/

新しいディレクトリを作成します。

戻り値

関数が正常に終了した場合は､ 1 を返します。それ以外の場合は､ 0を返します。


rmdir

構文	#result=rmdir($dir);

説明

$dir;	/* 除去するディレクトリ	*/

既存の空のディレクトリを削除します。

戻り値

関数が正常に終了した場合は､ 1 を返します。それ以外の場合は､ 0を返します。


MoveFile

構文	#result=MoveFile($oldname,$newname);

説明

$oldname;	/* 既存のファイルの名前	*/

$newname;	/* ファイルの新しい名前	*/

既存のファイルまたはディレクトリ (そのすべてのサブディレクトリも含む) の名前を変更します。

新しい名前には､ 既存の名前を指定することはできません。

備考

MoveFile関数は､ ファイルまたはディレクトリのいずれかを､ 同じディレクトリまたは異なるディレクトリにわたって移動 (名前を変更) します。ただし､ 移動先のディレクトリが異なるボリューム上にあるときには､ MoveFile関数はディレクトリの移動に失敗します。

戻り値

関数が正常に終了した場合は､ 1を返します。それ以外の場合は､ 0を返します。


DeleteFile

構文	#result=DeleteFile($filename);

説明

$filename	/* 削除するファイルの名前のアドレス	*/

既存のファイルを削除します。

戻り値

関数が正常に終了した場合は､ 1を返します。それ以外の場合は､ 0を返します。


CreateFile

構文	#result=CreateFile($filename,#accessmode,#createmode);

説明

$filename;	/* ファイルの名前	*/

#accessmode	/* アクセス (読み取りおよび書き込み) モード	*/

#createmode;	/* 作成方法	*/

ファイルを作成､ オープン､ または切り捨てをします。また､ この関数はディレクトリのハンドルをオープンし､ 返します。

#accessmode

ファイルへのアクセスの種類を指定します。読み取りアクセス,書き込みアクセス､ 読み書きアクセス､の組み合わせを指定してください。読み書きアクセスを取得するには､ GENERIC_READとGENERIC_WRITEの両方を指定しなければなりません。

GENERIC_READ

ファイルへの読み取りアクセスを指定します。ファイルからのデータの読み取りと､ ファイル ポインタの移動が可能です。

GENERIC_WRITE

ファイルへの書き込みアクセスを指定します。ファイルからのデータの読み書きと､ ファイル ポインタの移動が可能です。

#createmode

CREATE_NEW

新しいファイルを作成します。指定されたファイルがすでに存在する場合､ 関数は失敗します。

CREATE_ALWAYS

新しいファイルを作成します。ファイルがすでに存在する場合は､ 上書きされます。

OPEN_EXISTING

ファイルをオープンします。ファイルが存在しない場合､ 関数は失敗します。

OPEN_ALWAYS

ファイルが存在していれば､ そのファイルをオープンします。ファイルが存在しない場合､ CREATE_NEW を指定した場合と同様に､ ファイルを作成します。

TRUNCATE_EXISTING

ファイルをオープンします。いったんオープンすると､ ファイルのサイズが 0バイトに切り捨てられます。ファイルが存在しない場合､ 関数は失敗します。

戻り値

関数が正常に終了した場合は､ 指定されたファイルのオープン ハンドルを返します。失敗した場合は -1(0xffffffff)を返します。

補足

同時に開く事の出来るファイルの数は８ファイルまでです。又、プログラムが終了または中断された場合に閉じられていないファイルがある場合は自動的にクローズされます。


ReadFile

構文	#result=ReadFile(#hfile,$buffer,#size);

説明

#hfile;	/* 読み取るファイルのハンドル	*/

$buffer;	/* データを受け取るバッファ	*/

#size;	/* 読み取るバイト数	*/

ファイルからデータを読み取ります。読み取りが完了した後､ ファイル ポインタは､ 実際に読み取られたバイト数分進みます。

戻り値

関数が正常に終了した場合は､実際に読み込んだバイト数を返えします。それ以外の場合は -1 (0xffffffff) を返します。


WriteFile

構文	#result=WriteFile(#hfile,$buffer,#size);

説明

#hfile;	/* 書き込むファイルのハンドル	*/

$buffer;	/* 書き込むデータのバッファ	*/

#size;	/* 書き込むバイト数	*/

ファイルにデータを書き込みます。書き込みが完了した後､ ファイル ポインタは､ 実際に書き込まれたバイト数分進みます。

戻り値

関数が正常に終了した場合は､実際に書き込んだバイト数を返えします。それ以外の場合は -1 (0xffffffff) を返します。


CloseHandle

構文	#result=CloseHandle(#hnadle);

説明

#handle;	/* 閉じるファイルのハンドル	*/

CreateFile で取得したファイルハンドルをクローズします。

戻り値

関数が正常に終了した場合は 1 ､それ以外の場合は 0 を返します。


SetFilePointer

構文	#result=SetFilePointer(#hfile,#pos,#mode);

#hFile;	/* ファイルのハンドル	*/

#pos;	/* ファイル ポインタを移動させるバイト数	*/

#mode;	/* 移動方法	*/

説明

ファイル ポインタを移動させます。

#mode は ファイル ポインタの移動の始点を指定します。このパラメータには､ 次の値のいずれかを指定できます。

０ ： ファイルの先頭になります。

１ ： 現在のファイル ポインタの位置が始点になります。

２ ： ファイルの末尾が始点になります。

戻り値

関数が正常に終了した場合は､ 新しいファイル ポインタの位置を返します。それ以外の場合は -1 (0xffffffff) を返します。


GetFileSize

構文	#result=GetFileSize(#hfile);

#hFile;	/* ファイルのハンドル	*/

説明

指定されたファイルのサイズをバイト単位で取得します。

戻り値

関数が正常に終了した場合は､ ファイル サイズを返します。それ以外の場合は  -1 (0xffffffff) を戻します。


GetFileAttr

構文	#result=GetFileAttr($filename);

$filename;	/* ファイルの名前	*/

説明

指定されたファイルまたはディレクトリの属性を返します。

戻り値

関数が正常に終了した場合は､ 指定されたファイルまたはディレクトリの属性を返します。それ以外の場合は､  -1 (0xffffffff)を返します。

FILE_ATTRIBUTE_ARCHIVE

ファイルまたはディレクトリはアーカイブ ファイルまたはアーカイブ ディレクトリです。

FILE_ATTRIBUTE_DIRECTORY

「ファイルまたはディレクトリ」はディレクトリです。

FILE_ATTRIBUTE_HIDDEN

ファイルまたはディレクトリは隠し属性です。

FILE_ATTRIBUTE_NORMAL

ファイルまたはディレクトリには､ これ以外のほかの属性はありません。この属性は､ 単独で指定したときだけ有効です。

FILE_ATTRIBUTE_READONLY

ファイルまたはディレクトリは書き込み禁止属性です。アプリケーションは､ ファイルの読み取りはできますが､ 書き込みや削除はできません。ディレクトリの場合は､ 削除できません。

FILE_ATTRIBUTE_SYSTEM

ファイルまたはディレクトリはオペレーティング システムの一部です。または､ オペレーティング システム専用として使われます。

FILE_ATTRIBUTE_TEMPORARY

ファイルまたはディレクトリは一時的な記憶域として使われます。


GetDiskFreeSpace

構文	#result=GetDiskFreeSpace($root);

$root;	/* 調査するドライブのルートパス	*/

説明

指定されたドライブの空き容量を調べます

戻り値

関数が正常に終了した場合は､ 指定されたドライブの空き容量を返します。それ以外の場合は､  -1 (0xffffffff)を返します。


GetFileTime

構文	#result=GetFileTime(#handle,#mode);

#handle;	/* ファイルハンドル	*/

#mode;	/* 調べる時間の種類	*/

説明

ファイル時間を調べます。

#mode = 0 : ファイルが作成された時の時間

#mode = 1 : 最後にアクセスされた時間

#mode = 2 : 最終更新時間

戻り値

関数が正常に終了した場合は､ ファイル時間を返します。それ以外外の場合は､  ０ を返します。

ファイル時間は次の様に戻されます。

#result の LOW WORD に時間、HIGH WORD に日付 です。

日付はビット単位に

0～4	日 (1～31)

5～8	月 (1 = 1月､ 2 = 2月､ など)

9～15	1980年からの経過年数 (1980を加えると実際の年になります)

時間はビット単位に

0～4	2で割った秒数

5～10	分 (0～59)

11～15	時 (24時制の0～23)


GetTempFileName

構文	#result=GetTempFileName($path,$prefix,#unique,$tempname);

説明

この関数は $path のところに一時ファイル名を作成します。$prefix は一時ファイル名のプリフィックスとして使われます。#unique は一時ファイル名の作成に使用する数値を指定します。このパラメータが0以外の値のときは､ この数値が一時ファイル名に付加されます。0のときには､ 現在のシステム時間を使用してファイル名に付加する数を生成します。

作成された一時ファイル名は $tempname に格納されます。

戻り値

一時ファイル名の中で使われる一意な数値を返します。#uniqueが0以外の値の場合は､#uniqueパラメータの値をそのまま返します。関数が正常に終了しなかった場合は､ 0を返します。


その外の関数

GetLastError

SetLastError

message

xmessage

information

stopmsg

WaitYesNoCancel

question

Beep

Menu

InputStr

WaitKeyDown

GetAsyncKeyState

Run

LoWord

HiWord

LoByte

HiByte

SizeOf

IsKanji1

IsKanji2

GetMyPath

GetCurDir

SetCurDir

GetWinDir

GetSysDir

GetFileTitle

GetExtension

EnableCancelMacro

DrawWindow

ChangeGlobalEnv

ChangeLocalEnv

CanUndo

CanRedo

Undo

Redo

InWord

StopMark

GetLine

SetOutline

CreateProcess

WaiFontInptIdle

WaiFontSingleObject

FindWindow

SendMessage

PostMessage

ExecCommand

LoadLibrary

FreeLibaray

CallLibrary


GetLastError

構文 #code=GetLastError();

説明

最後に発生したエラーコードを戻します。

戻り値

下のエラーコードを返します

ERROR_FATAL	0x8000

このコードは他のエラーコードと組み合わせて返されます。これはメモリー不足などの致命的なエラーが発生した時に返されますので、直ちにマクロの実行を中断してください。

ERROR_DENYED	0x0001

これは、実行環境が整っていない場合に返されます。例えば、選択されたテキストをクリップボードにコピーする関数を実行する時に、テキストが選択されていない場合などです。

ERROR_NOMEM	0x0002

メモリー不足を意味します、ほとんどの場合、 ERROR_FATAL と組み合わされて返されます。

ERROR_RESOURCE	0x0003

リソースが見つからなかった場合にかえされます。

ERROR_OUTOFRANGE	0x0004

関数に渡す値などが、範囲外にある場合などに返されます。

ERROR_CLIPBOARDNOT_AVAILABLE	0x0005

クリップボードが使用できない場合に返されます。

ERROR_CLIPBOARD_EMPTY	0x0006

クリップボードが空の場合に返されます。

ERROR_CHARCODE_CONVERT	0x0007

文字コードセットのコンバートに失敗した場合に戻されます。

ERROR_FILE_OPEN	0x0008

ファイルのオープンに失敗した場合に返されます。

ERROR_FILE_READ	0x0009

ファイルの読み込みに失敗した場合に返されます。

ERROR_FILE_WRITE	0x000a

ファイルの書き込みに失敗した場合に返されます。

ERROR_FILE_CLOSE	0x000b

ファイルのクローズに失敗した場合に返されます。

ERROR_FILE_BACKUP	0x000c

バックアップファイルの作成に失敗した場合に返されます。

ERROR_FILE_FULL	0x000d

ドキュメントウインドウがこれ以上開けない場合に返されます。

ERROR_DIALOG	0x000e

ダイアログボックスの作成やダイアログボックス内部でエラーが発生した場合に返されます。

ERROR_CANCELED	0x000f

ダイアログボックスが開かれて、キャンセル された時に返されます。

ERROR_USERABORT	0x0010

実行が、ユーザーによって中断された場合に返されます。

ERROR_CREATEWINDOW	0x0011

ドキュメントウインドウの作成に失敗した場合に返されます。

ERROR_REGULARPAT	0x0012

正規表現のパターンにエラーがある時にかえされます。

ERROR_UNKNOWN	0x7fff

エラーの原因が特定できない場合に返されます。

エラーコードは変更される事も考えられますので、これらのエラーコードを取り扱う場合は即値ではなくて ERROR_XXXX と定義された名前を使用される事をおすすめします。


SetLastError

構文 SetLastError(#code);

説明

最後に発生したエラーコードを #code にセットします。基本的には、SetLastError(0) で、最新のエラーコードをクリアする目的で使用します。


message;xmessage
message,xmessage

構文 message($text);  xmessage($text)

説明

message($text) は $text に格納された文字列をメッセージボックスに表示します。

xmessage($text) は $text に格納された文字列をステータスバーに表示します。


question

構文  #result=question($text)

説明

質問文の $text をメッセージボックスに表示します。$text は文字列定数でもかまいません。

戻り値

#result に yes,no 又は cancel が戻されます


information

構文 information($text);

説明

$text に格納された文字列をメッセージボックスに表示します。

関数 message と違う点は、メッセージボックスに「情報アイコン」が表示されます。


WaitYesNoCancel

構文	#result=WaitYesNoCancel();

説明

'Y','N',ESC が押されるのを待ちます。

この関数を実行する前にテキストに変更を加え、まだ画面を再描画していない場合は関数実行前に必ず再描画しておいてください。

戻り値

定義済み定数の yes,no 又は cancel が戻されます。


stopmsg

構文 stopmsg($text);

説明

$text に格納された文字列をメッセージボックスに表示します。

関数 message と違う点は、メッセージボックスに「中止アイコン」が表示されます。


InWord

構文	#result=InWord(#iw);

説明

現在の編集位置が語の中かどうかをテストします。#iw は語種コードで、０ はすべての語に一致します。

語種コード

IW_ALKANA	=	半角英文字、半角数値、半角カタカナ

IW_JKANJI	=	漢字

IW_JKANA	=	全角かな

IW_JKATA	=	全角カタカナ

IW_JALPHA	=	全角英文字

IW_JDIGIT	=	全角数字

戻り値

現在の編集位置が上の語種コードで現したいずれかの「語」の中にある場合は語種コードを返します。「語」の中ではない場合は ０ が返されます。

（例）次の例は語尾に編集位置を移動させます。

Var #iwc=InWord(0);

if(#iwc){

while(InWord(#iwc)) {ForwChar(1);}

BackChar(1);

}


StopMark

構文	#result=StopMark(#OnOff);

説明

#OnOff が非ゼロなら、ストッパーを現在の編集行にセットします。０の場合は解除します。


DrawWindow

構文	DrawWindow(#freecaret,#mode);

説明

Script-A のほとんどの関数は、自動的には画面を更新しませんので、編集位置の移動や編集を行った後には、この関数で画面を更新する必要があります。

#freecaret

非ゼロの場合は現在の編集カラム位置にキャレットを合わせる事はしません。０ の場合は、キャレットの画面上での横の位置は現在の編集位置に一致します。

#mode

０ の場合は現在の編集行の位置に、キャレットの画面上での縦の位置を合わせます。

１ の場合はキャレットの画面上での縦の位置に現在の編集行を合わせます。

２ の場合は現在の編集行が画面上の中央あたりにくるようにキャレットの位置を調整します。

３ の場合は現在の編集行が画面上の１／３あたりにくるようにキャレットの位置を調整します。

（例－１)

編集位置とキャレットの位置を右に一文字分、移動させます。

ForChar(1);

DrawWindow(FALSE,0);

（例－２）

編集位置をファイルの末尾に向かって １行 進めます、縦のキャレット位置が、画面の一番下にある場合は１行スクロールし、そうでない場合は画面の下方に１行分移動しますが、横のキャレット位置はいずれの場合も移動しません。

ForwLine(1);

DrawWindow(TRUE,0);

（例ー３）

編集位置をファイルの末尾に向かって １行 進めます、キャレット位置は縦横ともに移動しませんが、画面が上に一行スクロールします。

ForwLine(1);

DrawWindow(TRUE,1);


LoWord

構文	#result=LoWord(#value);

説明

３２ビット値 #value の下位１６ビットの値を取り出します。

戻り値

取り出した１６ビット値を３２ビットに変換して戻します。


HiWord

構文	#result=HiWord(#value);

説明

３２ビット値 #value の上位１６ビットの値を取り出します。

戻り値

取り出した１６ビット値を３２ビットに変換して戻します。


LoByte

構文	#result=LoByte(#value);

説明

３２ビット値 #value の下位１６ビットの下位８ビット値を取り出します。

戻り値

取り出した８ビット値を３２ビットに変換して戻します。


HiByte

構文	#result=HiByte(#value);

説明

３２ビット値 #value の下位１６ビットの上位８ビット値を取り出します。

戻り値

取り出した８ビット値を３２ビットに変換して戻します。


SizeOf

構文	#result=SizeOf(<変数>);

説明

<変数> のサイズを戻します。<変数> が数値変数の場合は４、文字列変数の場合は文字列の長さを返します。

戻り値

サイズを戻します。


IsKanji1

構文	#result=IsKanji1(#value);

説明

#value の下位ワードの下位バイトが、漢字コードの第一バイト目かどうかを調べます。

戻り値

漢字コードの第一バイト目なら１、そうでなければ０を返します。


IsKanji2

構文	#result=IsKanji2(#value);

説明

#value の下位ワードの下位バイトが、漢字コードの第２バイト目かどうかを調べます。

戻り値

漢字コードの第２バイト目なら１、そうでなければ０を返します。


ChangeGlobalEnv

構文	ChangeGlobalEnv();

説明

広域動作環境変数の  #ggBoxShapedcaret,#ggDrawUnderline のいずれか又は両方を変更する場合は、まず、現在アクティブなドキュメントウインドウがあれば、画面を再描画し、その後で、これらの変数を変更してください。そして変更後には必ずこの関数で画面を再度描画します。


ChangeLocalEnv

構文	ChangeLocalEnv(#flag);

説明

下のローカル環境変数を変更する場合は、まず、現在アクティブなドキュメントウインドウがあれば、画面を再描画し、その後で、これらの変数を変更してください。そして、変更後には、必ずこの関数で画面を再度、描画します。

#llColorSyntax",

#lImeOnLine",

#llCountCr",

#llLineSpacing",

#llColumsLine",

#llTabSize",

#lIndentJSpace",

#llShowLnum",

#llShowTab",

#llShowCr",

#llShowJspace",

さらに、#llColorSyntax ,を変更した場合は、#flag に CLE_COLORTSYNTAX

#llCountCr を変更した場合は、#flag に CLE_COUNTCR

#llColumsLine を変更した場合は #flag に CLE_COLUMSLINE

#llTabSize を変更した場合は CLE_TABSIZE をセットしてください。

他のローカル環境変数は「システム変数」を参照してください。


EnableCancelMacro

構文	EnableCancelMacro(#mode);

説明

マクロ実行中にエスケープキーが押されるとマクロの実行が中断されますが、これを、この関数で制御できます。

#mode が非ゼロならマクロの中断を可能にし、０ なら禁止します。


CanUndo

構文	CanUndo();

説明

「やり直し」ができるかどうかを調べます。

戻り値

可能なら １、できないなら ０を戻します。


CanRedo

構文	CanRedo();

説明

「やり直しのやり直し」ができるかどうかを調べます。

戻り値

可能なら １、できないなら０を戻します。


Undo

構文	Undo();

説明

「やり直し」を実行します。

戻り値

成功したら １、失敗したら０を戻します。失敗した場合は、 GetLastError で原因を調査して適切な処理を行ってください。


Redo

構文	Redo();

説明

「やり直しのやり直し」を実行します。

戻り値

成功したら １、失敗したら ０を戻します。失敗した場合は、 GetLastError で原因を調査して適切な処理を行ってください。


GetMyPath

構文	$result=GetMyPath();

説明

'akira32' の起動パスを取得します。取り出したパスの最後は \ で終わっています。

戻り値

取り出したパスをもどします。


GetCurDir

構文	$result=GetCurDir();

説明

カレントディレクトリを取得します。取得パスの最後は \ では終わっていません。

戻り値

取得したパスを戻します。


GetWinDir

構文	$result=GetWinDir();

説明

ウインドウズのインストールされているディレクトリを取得します。取得パスの最後は \ では終わっていません。

戻り値

取得したパスを戻します。


GetSysDir

構文	$result=GetSysDir();

説明

システムディレクトリを取得します。取得パスの最後は \ では終わっていません。

戻り値

取得したパスを戻します。


SetCurDir

構文	#result=SetCurDir($path);

説明

カレントディレクトリを $path に設定します。

戻り値

成功した場合は １、失敗した場合は０を返します。


GetFileTitle

構文	$result=GetFileTitle($fullpath);

説明

$fullpath のファイルタイトル（パスを含まないファイル名）を戻します。

戻り値

取り出したファイルタイトルを返します。


GetExtension

構文	$result=GetExtension($fullpath);

説明

$fullpath のファイル名の拡張子を戻します。拡張子の '.' を含みます。

戻り値

取り出した拡張子を返します。


Beep

構文	Beep();

説明

ビープを鳴らせます。


InputStr

構文	#result=InputStr($prompt,$inputbuff);

説明

$prompt を入力プロンプトとして $inputbuff に文字列を入力します。入力できるのは２５５文字まです。

戻り値

入力ダイアログボックスで 「OK」が押されたら、 定義済み定数の OK キャンセルされたら 定義済み定数の Cancel,エラーが発生した場合は ０ 又は負の値を返します。


WaitKeyDown

構文	#result=WaitkeyDown();

説明

キーが押されるのを待ちます。

戻り値

キーが押されたら、'A' から 'Z','0'-'9'と下の仮想キーコードを戻します。

VK_BACK	BackSpaceキー

VK_TAB	Tabキー

VK_CLAER	Clearキー

VK_RETURN	Enterキー

VK_SHIFT	Shiftキー

VK_CONTROL	Ctrlキー

VK_MENU	Altキー

VK_ESCAPE	Escキー

VK_SPACE	Spaceキー

VK_PRIOR	Page Upキー

VK_NEXT	Page Downキー

VK_END	Endキー

VK_HOME	Homeキー

VK_LEFT	←キー

VK_UP	↑キー

VK_RIGHT	→キー

VK_DOWN	↓キー

VK_INSERT	Insキー

VK_DELETE	Delキー

VK_HELP	Helpキー

VK_F1	F1キー

VK_F2	F2キー

VK_F3	F3キー

VK_F4	F4キー

VK_F5	F5キー

VK_F6	F6キー

VK_F7	F7キー

VK_F8	F8キー

VK_F9	F9キー

VK_F10	F10キー

VK_F11	F11キー

VK_F12	F12キー


GetAsyncKeyState

構文	#result=GetAsyncKeyState(#vkey);

説明

#vkey 仮想キーコードです。

GetAsyncKeyState 関数は､ 関数呼び出し時にキーが押されているかどうか､ また､ 以前のGetAsyncKeyState 関数呼び出し以降キーが押されたかどうかを判定します。

戻り値

関数が正常に終了した場合は､ 現在キーが押されているかどうか､ および直前の GetAsyncKeyState 関数呼び出し以降キーが押されたかどうかを示す値を返します。最上位ビットがセットされたときは現在キーが押されていることを示し､ 最下位ビットがセットされたときは直前の GetAsyncKeyState 関数呼び出し以降にキーが押されたことを示します。


Run

構文	#result=Run($program);

説明

$program を実行します。$program はテキストファイルでもヘルプでも大丈夫です。ただしマクロは実行できません。

戻り値

成功したら １、失敗したら ０が戻されます。


GetLine

構文	$result=GetLine();

説明

現在の編集行のテキストを １行分戻します。この時の １行は、画面上の一行です。

戻り値

$result にテキストが戻ります。


Menu

構文	#result=Menu($menuarray[#i],#count,#mode);

説明

メニューを表示します。この関数を表示する前に、編集位置を移動させたり、テキストに変更を加えた場合は画面を再描画しておいてください。

メニューに表示する文字列は $menuarray の要素番号 #i（０から数えて） から #count 分 セットしてある必要があります。

#mode が 非ゼロの場合は、マウスカーソルの近くにメニューが表示され、０ の場合はキャレットの近くに表示されます。

戻り値

成功した場合は、メニューの最初を １ として数えた番号を戻します。失敗した場合は ０ を戻します。

（例）

var   #menuno;

Array $menuarray[3];

$menuarray[0]="はい";

$menuarray[1]="いいえ"

$menuarray[2]="取り消し"

#menuno=Menu($menuarray[0],3,0);


SetOutline

構文	#result=SetOutline(#level,$regular);

説明

$regular に格納されている 正規表現をアウトライン構築テーブルの #level にセットします。

#level は ０ から ７ まで、$regular には正しい正規表現が定義されていなくてはいけません。

戻り値

成功した場合は、非ぜロ、失敗した場合は０を戻します。


CreateProcess

構文	#result=CreateProcess($program);

説明

$program に格納されているプログラムを実行します。プログラムを起動する意味では Run と同じですがプロセスのハンドルを返すところが Run と違います。

戻り値

成功した場合は、#result にプロセスのハンドルを返します。失敗した場合は ０ を戻します。

参照

WaitForInputIdle


WaitForInputIdle
WaitForInputIdle,WaitForSingleObject

構文

#result=WaitForInputIdle(#process,#timeout);

#result=WaitForSingleObject(#process,#timeout);

説明

WaitforInputidle は #process で指定されたプロセスが未処理入力のない状態でユーザー入力を待っている状態になるまで､ または､ タイムアウト時間が経過するまで､ 待機します。

#process が -1 の場合前者、それ以外の場合は後者になります。

WaitForSingleObject は プロセスの終了を待ちます、#timeout は ミリセカンドで指定します。特に 0xffffffff(-1) を指定した場合は 完全に終了するまで待ちます。

戻り値

WaitForInputIdle は タイムアウト時間を返します。

WaitForSingleObject は プロセスが終了した場合は ０、タイムアウトなど、それ以外のは非ゼロの値を返します。

参照

CreateProcess


SendMessage

構文	#result=SendMessage(#hwnd,#command,#wparam,#lparam);

説明

#hwndで指定されたウインドウにメッセージを送ります。メーッセージが処理されるまで制御は戻りません。

#command,#wparam,#lparam は ウインドウズ SDK を参照してください。

戻り値

メッセージを送ったウインドウが返した値を戻します。


PostMessage

構文	#result=PostMessage(#hwnd,#command,#wparam,#lparam);

説明

#hwndで指定されたウインドウのメッセージキューにメッセージを送ります。制御はすぐに戻ります。

#command,#wparam,#lparam は ウインドウズ SDK を参照してください。

戻り値

関数が正常の終了した場合は １、失敗した場合は０が返ります。


LoadLibrary

構文	#result=LoadLibrary($module);

説明

この関数は #module で指定された、DLL モジュールをロードします。ロードされたモジュールは FreeLibarary で解放する必要があります。又、同時にロード出来るモジュールは一つだけです。

DLL がロードされた後、 Script-A が終了するまで,FreeLibarary が呼び出されなかった場合には,Script-A 終了の段階で自動的に解放されます。

戻り値

成功した場合は モジュールのインスタンスも返します。失敗した場合は 0 を返します。

参照

FreeLibrary


FreeLibrary

構文	#result=FreeLibrary(#instance);

説明

この関数は LoadLibrary でロードされたモジュールを解放します。

#instance は LoadLibrary で返された、モジュールハンドルです。

戻り値

成功した場合は １、失敗した場合は 0 を返します。

参照

LoadLibrary


CallLibrary

構文	#result=CallLibrary(#instance,$name,#value,$str);

説明

この関数は LoadLibrary でロードされたモジュールに含まれる関数を呼び出します。

#instance は LoadLibrary で返された、モジュールハンドルです。

$name は 関数の名前です。

#value は関数に渡す、数値パラメータです。

$str は関数に渡す、文字列パラメータです。

この呼び出し方法から分かるように、呼び出される関数は DLL の中で、一つの数値引数と一つの文字列引数を取るように定義されている必要があります。

戻り値

関数呼び出しに失敗した場合は -1 を返します。それ以外の場合は呼び出した関数の戻した値を返します。

(例)

#instance = LoadLibrary("c:\ak32\ak32.dll");

#value1=CallLibrary(#instance,"sample_proc",0,"akira");

この場合、 ak32.dll の中では、sample_proc が次のように定義されているはずです。

INT	WINAPI	_export sample_proc(HWND hwnd,INT value,LPSTR str)

hwnd は現在フォーカスを持っているウインドウのハンドルです。

BC++ と VC++ では生成される関数名がチョット違うようですが､上の例の場合は BC++ で記述した場合です。


ExecCommand

構文	#result=ExecCommand($command,#val1,#val2);

説明

この関数はメニューコマンドを実行します。メニューコマンドについては 'akira'のヘルプの「機能名称一覧表」を参照してください。

$command : メニューコマンド文字列です。

#val1,#val2 は現在は使用されていません。０を指定して下さい。

戻り値

指定されたメニューコマンドが見つかった場合は１を戻します。実行の結果ではありません。それ以外の場合０が返されます。


電子メール関数

MSetSubject

MSetTo

MSetCc

MSetBcc

MOpenDraft


MSetSubject , MSetTo , MSetCc , MSetBcc

構文

#result=MSetSubject($subject);

#result=MSetTo($to,#mode);

#result=MSetCc($cc,#mode);

#result=MSetBcc($bcc,#mode);

説明

MSetSubject

$subject をメールの表題にセットします。

MSetTo

$to をメールの宛先にセットします。

#modeは通常 0 をセットしますが #modeが １ の場合はすでにセットされている宛先に追加されます。

MSetCc

$cc をメールの同報先にセットします。

#modeは通常 0 をセットしますが #modeが １ の場合はすでにセットされている同報先に追加されます。

MSetBcc

%bccをメールのＢＣＣにセットします。

#modeは通常 0 をセットしますが #modeが １ の場合はすでにセットされているＢＣＣに追加されます。

戻り値

成功した場合は、#result に １,失敗した場合は ０が返されます。

補足

これらの関数は送信メール、返信メール、転送メールの作成画面だけで有効です。


MOpenDraft

構文

#result=MOpenDraft($subject);

説明

この関数は $subject で指定された 「表題」を持つ「草稿メール」を開きます。

戻り値

成功した場合は、#result に １,失敗した場合は ０が返されます。