Blueberry LISP v 2.40 最終更新日:2002/08/09 18:50)
Your access #
|
|
|
システム制限
LISP システムには次の二つの制限があります。
- スタック
内部的に使用されるスタックは (1024*16) の深さ
までです。通常これだげあれば問題はないと
思われますが、再帰呼び出しを行う関数を定義した場合
に、あまりも深く再帰呼び出しが行われるとスタックが溢れます。
- 同時にオープンできる。ファイルやハンドル
同時にオープンできる。ファイルやハンドルはそれぞれ 128 までです。
よって、開いたファイルやハンドルは必ず閉じるようにしてください。
この他の制限はありませんが、ディスク容量やメモリ容量に依存する事は
言うまでもありません。
|
ソースプログラムの文字コード
Lisp のソースプログラムは DBCS (日本語の場合は SHIFT_JIS)または UTF-8 で
作成する事ができます。
多言語に対応したプログラムを作成する場合は UTF-8 でのコーディングを
お勧めします。
|
コードページの設定と取得
set-codepage
get-codepage
- set-codepage
- 文法
(set-codepage cp)
cp : integer
- 説明
カレントスレッドのコードページを cp に設定します。0が指定された
場合は CP_ACP (ANSI code page)に設定されます。
- 戻り値
- 補
システムで設定された変数として、CP-ACP,CP-UTF8,CP-UTF7 が
定義されています。なおプログラム開始時のコードページ
は常に CP_ACP です。
- 例
- 関連項目
- get-codepage
- 文法
- 説明
- 戻り値
- 補
システムで設定された変数として、CP_UTF8,CP_UTF7 が
定義されています。なおプログラム開始時のコードページ
は常に CP_ACP です。
- 例
- 関連項目
|
ライブラリの読み込み
load
- load
- 文法
- 説明
lib で指定された lisp ライブラリを読み込みます。
- 戻り値
成功した場合は t 、失敗した場合は nil が戻されます。
- 例
- 補
プログラムファイルの名前がフルパスではない場合は、プログラムは
_pluginsディレクトリに在ると前提しています。
- 関連項目
|
定義されている型
Blueberry Lisp では次の型が定義されています。
- integer
32ビット符号付整数値です。
型は integerp で調べる事ができます。
(例)
(integerp 123)
t
定数の表現は 10進数,16進数、8進数が使用できます。
16進数は "#x" で始まる16進数、8進数は "#o" で始まる
8進数。
(例)
10進数 : 123456
16進数 : #xff00
8進数 : #o7130
- float
8バイトのサイズを持つ倍精度浮動少数値です。
型は floatp で調べる事ができます。
(例)
(floatp 123.456)
t
- character
一バイトの文字型です。
型は characterp で調べる事ができます。
(例)
(characterp #\a)
t
定数の表現は "#\"で始まる一文字です。
- wcharacter
ユニコードです。(UTF16LE)
型は wcharacterp で調べる事ができます。
(補)
ソースプログラムが DBCS でかかれている場合に文字がマルチバイト文字の場合は
CP_ACP で ユニコードに変換して格納されます。
(例)
(wcharacterp #ua)
t
定数の表現は "#u"で始まる一文字(ユニコード)です。
- string
可変長の長さを持つ文字列です。
型は stringp で調べる事ができます。
(補)
ソースプログラムが UTF-8 でかかれている場合に文字列がマルチバイト文字を含む場合は
そのまま UTF-8 で格納されます。
(例)
(stringp "hello")
t
定数表現は ダブルクオートで囲んで表現します。なお、文字列の
中には次のエスケープ文字が使用できます。また、下に含まれない
"\"に続く文字は、その文字そのものは意味します。("\\" -> "\")
- \n -> #x0a (LF)
- \r -> #x0d (CR)
- \t -> #x09 (TAB)
- wstring
可変長の長さを持つユニコード文字列です。
型は wstringp で調べる事ができます。
(補)
ソースプログラムが DBCS でかかれている場合に文字列がマルチバイト文字を含む場合は
CP_ACP で ユニコードに変換して格納されます。
(例)
(wstringp L"こんにちは")
t
定数表現は 文字 L に続けて、ダブルクオートで囲んで表現します。なお、文字列の
中には次のエスケープ文字が使用できます。また、下に含まれない
"\"に続く文字は、その文字そのものは意味します。("\\" -> "\")
- \n -> #x0a (LF)
- \r -> #x0d (CR)
- \t -> #x09 (TAB)
- file
ファイルデスクリプタです。
型は filep で調べる事ができます。
(例)
(filep fp)
t
- handle
イベントやミューテックスのハンドルです。
型は handlep で調べる事ができます。
(例)
(handlep h)
t
- socket
ソケットハンドルです。
型は socketp で調べる事ができます。
(例)
(socketp h)
t
- filetime
ファイル時間です。
型は filetimep で調べる事ができます。
(例)
(filetimep ft)
t
- systemtime
システム時間です。
型は systemtimep で調べる事ができます。
(例)
(systemtimep ft)
t
- ベクター
汎用の一次元配列で、配列の要素は任意のオブジェクトを
格納する事ができます。
型は vectorp で調べる事ができます。
定数は #(.....) で表現します。
(例)
(setq a #(1 "hello" 1.23))
- リスト
これは型ではないですが。リストです。
型は consp で調べる事ができます。
(例)
(consp ls)
t
|
型変換
char->integer
integer->char
integer->float
float->integer
- char->integer
- 文法
(char->integer ch)
ch : character
- 説明
- 戻り値
- 例
- 関連項目
- integer->char
- 文法
(integer->char n)
n : integer
- 説明
- 戻り値
- 例
- 関連項目
- integer->float
- 文法
(integer->float n)
n : integer
- 説明
- 戻り値
- 例
- 関連項目
- float->integer
- 文法
(float->integer f)
f : integer
- 説明
- 戻り値
- 例
- 関連項目
|
lisp の基本的なキーワード
defvar
setq
set
setf
car
cdr
first
rest
nth
rplaca
rplacd
cons
reverse
append
list
length
member
delete
assoc
rassoc
nth
atom
defun
defmacro
lambda
eval
apply
funcall
funcall
これらの関数に関して説明すると、この説明ページの数倍にはなりますので、
Common Lisp 等 Lips の書籍やインターネット上のサイトを参照してください。
|
数値演算
+
-
*
/
1+
1-
divide
logand
logor
logxor
ash
- +,-,*/
- 文法
(+ n1 n2 ...nn)
(- n1 n2 ...nn)
(* n1 n2 ...nn)
(/ n1n1 n2 ...nn)
n1 - nn : integer or float
- 説明
- 戻り値
- 例
- 関連項目
- 1+,1-
- 文法
(1+ n)
(1- n)
n : integer or float
- 説明
1+ は数値 n をひとつインクリメント、 1- はデクリメントします。
- 戻り値
- 例
- 関連項目
- divide
- 文法
(divide n1 n2)
n1 : integer
n2 : integer
- 説明
n1 を n2 で除算した時の商とあまりをドットリストで返します。
- 戻り値
- 例
- 関連項目
- logand,logor,logxor
- 文法
(logand n1 n2 ... nn)
(logor n1 n2 ... nn)
(logxor n1 n2 ... nn)
n1-nn : integer
- 説明
logand は整数値 n1 から nn までの論理積、logorは論理和、 logxor は
排他的論理和を求めます。
- 戻り値
- 例
- 関連項目
- ash
- 文法
(ash n1 n2)
n1 : integer
n2 : integer
- 説明
整数値 n1 を 整数値 n2 分左にビットシフトします。 n2 が負の値の
場合は右にシフトします。
- 戻り値
- 例
- 関連項目
|
比較と結果の OR , AND
eq
equal
=
/=
<
<=
>
>=
string=
string/=
stringi=
stringi/=
char=
char/=
char<
char<=
char>
char>=
chari=
chari/=
chari<
chari<=
chari>
chari>=
or
and
not
- eq
- 文法
- 説明
オブジェクト a とb がコンピュータのメモリ上、同じ場所
に在るかどうかを調べます。
- 戻り値
同じ場所にある場合は t 、そうでない場合は nil を返します。
- 例
- 関連項目
- equal
- 文法
(equal a b)
a , b : object
- 説明
オブジェクト a とb が型を含めて同じであるかどうかを調べます。
- 戻り値
同じ場合は t 、そうでない場合は nil を返します。
- 例
- 関連項目
- =,/=,<<=>>=
- 文法
(= n1 n2 ... nn)
(/= n1 n2 ... nn)
(< n1 n2 ... nn)
(<= n1 n2 ... nn)
(> n1 n2 ... nn)
(>= n1 n2 ... nn)
n1 - nn : integer or float
- 説明
- =
数値 n1 から nn まで全て同じ値かどうかを調べます。
- /=
数値 n1 から nn まで全て別の値かどうかを調べます。
- <
数値 n1 から nn までを順に比較して n の値が 次のより小さいか
どうかを調べます。
- <=
数値 n1 から nn までを順に比較して n の値が 次のより小さいか等しいか
どうかを調べます。
- >
数値 n1 から nn までを順に比較して n の値が 次のより大きいか
どうかを調べます。
- >=
数値 n1 から nn までを順に比較して n の値が 次のより大きいか等しいか
どうかを調べます。
- 戻り値
結果が真なら t 、そうでない場合は nil を返します。
- 例
- 関連項目
- string=,stringi=
- 文法
(string= s1 s2)
(stringi= s1 s2)
s1 : string or wstring
s2 : string or wstring
- 説明
文字列 s1 と s2 を比較して同じかどうかを調べます。 string= は大文字と小文字を
区別して比較しますが、stringi= の場合は区別しません。
- 補
string と wstring は比較できません。
- 戻り値
結果が真なら t 、そうでない場合は nil を返します。
- 例
- 関連項目
- string/=,stringi/=
- 文法
(string/= s1 s2)
(stringi/= s1 s2)
s1 : string or wstring
s2 : string or wstring
- 説明
文字列 s1 と s2 を比較して同じでは無い事を調べます。 string/= は大文字と小文字を
区別して比較しますが、stringi/= の場合は区別しません。
- 補
string と wstring は比較できません。
- 戻り値
結果が真なら t 、そうでない場合は nil を返します。
- 例
- 関連項目
-
char=,char/=,char<,chat<=,char>,char>=,
chari=,chari/=,chari<,chati<=,chari>,chari>=
- 文法
(char= n1 n2 ... nn)
(char/= n1 n2 ... nn)
(char< n1 n2 ... nn)
(char<= n1 n2 ... nn)
(char> n1 n2 ... nn)
(char>= n1 n2 ... nn)
(chari= n1 n2 ... nn)
(chari/= n1 n2 ... nn)
(chari< n1 n2 ... nn)
(chari<= n1 n2 ... nn)
(chari> n1 n2 ... nn)
(chari>= n1 n2 ... nn)
n1 - nn : character or wcharacter
- 説明
i の付く関数、例えば chari= は、大文字小文字の区別をしません。
- char=,chari=
文字 n1 から nn まで全て同じ値かどうかを調べます。
- char/=,chari/=
文字 n1 から nn まで全て別の値かどうかを調べます。
- char<,chari<
文字 n1 から nn までを順に比較して n の値が 次のより小さいか
どうかを調べます。
- char<=,chari<=
文字 n1 から nn までを順に比較して n の値が 次のより小さいか等しいか
どうかを調べます。
- char>,chari>
文字 n1 から nn までを順に比較して n の値が 次のより大きいか
どうかを調べます。
- char>=,chari>=
文字 n1 から nn までを順に比較して n の値が 次のより大きいか等しいか
どうかを調べます。
- 補
character と wcharacter は比較できません。
- 戻り値
結果が真なら t 、そうでない場合は nil を返します。
- 例
- 関連項目
- or , and
- 文法
(or s1 s2 ... sn)
(and s1 s2 ... sn)
(not s1)
s1 - sn : s式
- 説明
or は s 式 s1 から sn のいずれかか nil では無い事を調べます。
and は s 式 s1 から sn の全てが nil では無い事を調べます。
not は s 式 s1 が nit なら t それ以外なら t を返します。
- 戻り値
結果が真なら t 、そうでない場合は nil を返します。
- 例
- 関連項目
|
ロジック制御
if
cond
when
unless
progn
while
dotimes
dolist
do
return
try
super-try
throw
- if
- 文法
(if condition s1 [s2])
condition: s式
s1: s式
s2: s式
- 説明
条件式 condition が nil では無い場合は、式 s1 を、そうでない場合は
式 s2 を実行します。式 s2 は省略可能です。
- 戻り値
- 例
(if (> 0 a ) (print "yes") (print "no"))
- 関連項目
- while
- 文法
(while condition s1 s2 ... sn))
condition: s式
s1-sn: s式
- 説明
条件式 condition が nil では無い間、式 s1 から 式 sn までを
繰り返し実行します。
- 戻り値
- 例
(setq n 0)
(while (< 10 n ) (print n) (setq n (+ 1 n)))
- 関連項目
- cond
- 文法
(cond
(
condition1
s11 s12 ... s1n
)
(
condition2
s21 s22 ... s2n
)
.
.
.
(
conditionn
sn1 sn2 ... snn
)
)
- 説明
条件式 condition1 から conditionn までを順番に調べ、条件が nil では無い
条件に出会ったら、条件式に続くs式を実行します。実行が終わったら制御は
cond 式の外にでます。全ての条件が nil の場合はなにも実行されません。
- 戻り値
- 例
(cond
(
(numberp s)
(printf 0 "number: %n \n" s)
)
(
(stringp s)
(printf 0 "string %s\n" s)
)
(
t
(printf 0 "other\n")
(print s)
)
)
- 関連項目
- when
- 文法
(when condition s1 s2 ... sn)
- 説明
条件式 conditionが t の時 s 式 s1 - sn を実行します。
- 戻り値
- 例
- 関連項目
- unless
- 文法
(unless condition s1 s2 ... sn)
- 説明
条件式 conditionが nil の時 s 式 s1 - sn を実行します。
- 戻り値
- 例
- 関連項目
- progn
- 文法
(progn s1 s2 ... sn)
s1-sn: s式
- 説明
- 戻り値
- 例
- 関連項目
- dotimes
- 文法
(doitmes (v n [r]) s1 s2 ... sn)
v: symbol
n : s 式
r : s 式
s1-sn: s式
- 説明
変数 v の値を 0 に初期化して、これを 1 づつインクリメントしながら
n の値になるまで、s 式 s1 から sn までを繰り返し実行します。
そして最後に s式 r を実行します。 r は省略可能で、省略された場合
は nil が返されます。
- 戻り値
- 例
(dotimes (x 10) (print x))
- 関連項目
- dolist
- 文法
(dolist (v list [r]) s1 s2 ... sn)
v: symbol
list : consp
r : s 式
s1-sn: s式
- 説明
変数 v の値にリスト list の要素を順に代入しながら、リストが尽きるまで
s 式 s1 から sn までを繰り返し実行します。
そして最後に s式 r を実行します。 r は省略可能で、省略された場合
は nil が返されます。
- 戻り値
- 例
(dolist (x '(1 2 3 4 5 7 8 9 )) (print x))
- 関連項目
- do
- 文法
(do ((v1 [i1 [st1]]) ...(vn [n1 [stn]]) (test [result]) s1 s2 ... sn)
v1 - vn: symbol
i1-in : 初期値
st1 - stn ステップ式
test : 終了判定式
result : 結果式
s1 - sn : s式
- 説明
変数 v1 から vn を i1 から in で初期化し、test 式が真になるまで s 式 s1 -sn を繰り返します。
繰り返すたびに st1 - stn で v1 - vn を更新します。
- 戻り値
- 例
- 関連項目
- return
- 文法
- 説明
while,dotimes,dolist 等ループから抜ける時に使用します。これらのループの
外で使用された場合はプログラムを終了します。
- 戻り値
- 補
try 構文の中で使用された場合は、例外処理を実行をせずに
ループを抜けます。
- 例
- 関連項目
- try
- 文法
- 説明
通常は s1 から sn まで順番に実行されますが、例外が発生したり
発生させると(throw )
、実行を中断して、e1 から en まで実行します。throw 関数を実行
した結果例外が発生した場合を除き e1 から en までの式の評価
が終わった段階でプログラムの実行は終了されます。
- 戻り値
- 例
- 関連項目
- super-try
- 文法
- 説明
通常は s1 から sn まで順番に実行されますが、例外が発生したり
発生させると(throw )
、実行を中断して、e1 から en まで実行します。
ここまでは try と同じですが、
super-try の場合は例外発生の原因を問わずプログラムは終了
しません。
- 戻り値
- 例
- 関連項目
- throw
- 文法
- 説明
try 式の中で実行し、例外を発生させます。この関数を try 式の外で
実行した場合は、プログラムの実行が中断されます。
- 戻り値
- 例
- 関連項目
|
バインディング
- let,let*
- 文法
(let ((v1 i1) (v2 i2) ... (vn in))
s1 s2 ... sn
)
(let* ((v1 i1) (v2 i2) ... (vn in))
s1 s2 ... sn
)
- 説明
C でいうならばローカル変数の定義みたいなものです。
変数 v1 から vn を それぞれ 、s式 i1 から in で初期化して、s 式 s1 から sn を実行します。
変数 v1 から vn は let,let* の中(ここから呼出される関数の中を含む)でしか見えません。
let* は初期化式を左から順に評価しながら、変数を初期化していくが let の場合は、初期化式の
評価が終わってから、その値を編集に代入します。
- 戻り値
- 例
(let ((x 1) (y 2))
)
結果は 9 になります。
(let ((x 1) (y 2))
)
結果は 15 になります。
- 関連項目
|
コンソールへの出力
print
printf
terpri
rgb
- print
- 文法
(print obj)
obj: any type of objext
- 説明
- 戻り値
- 例
- 関連項目
- printf
- 文法
(printf color fmt obj ....)
color: integer
fmt: string or wstring
obj: any type of object
- 説明
コンソールへオブジェクトの内容を出力します。color は
rgb で作成された色、fmt は出力フォーマット、
(fmt は "C" の printf と互換) 、obj はひとつ以上のオブジェクトです。
fmt でフォーマットされて表示されます。
なお、color が nil の場合はコンソールへの出力ではなく文字列
を返します。
- 戻り値
- 補
先にも書いたように、color が nil の場合はコンソールへの出力ではなく文字列
を返しまが、fmt が wstring の場合は wstring 、string の場合は string を
返します。
- 例
- 関連項目
- terpri
- rgb
|
ファイルディレクトリ操作①
decode-file-spec
create-directory
remove-directory
clear-directory
create-temp-file
create-unique-file
copy-file
move-file
delete-file
get-file-attributes
以下の関数において引数が wstring で渡された場合は
CP_ACP で string に自動変換されて実行されます。
- decode-file-spec
- 文法
(decode-file-spec fname)
fname : string or wstring
- 説明
Blueberry LISP ではファイルのパスを表現するのに特別なエスケープ文字列が使える
ようになっています。これは LISP システムのインストール先が変更になっても
LISP プログラムを変更せずに済むようにする為です。
この関数はこれを解析して Windows 本来のパス表現に変換します。
利用できるエスケープ文字列と、その意味
- %windows%
- %system%
Windows の system ディレクトリを意味します。
- %windows-temp%
Windows の テンポラリディレクトリを意味します。
- %current%
- %module%
LISPシステムのインストールされているディレクトリを意味します。
- %temp%
テンポラリディレクトリを意味します。ただし、このディレクトリは
LISPシステムのテンポラリディレクトリで Windows のテンポラリ
ディレクトリではありません。
- %sys%
LISPシステムのシステムディレクトリを意味します。
- %plugins%
LISPシステムのプラグイン格納ディレクトリを意味します。
- %download%
LISPシステムのファイルダウンロード用のテンポラリな
ファイルを意味します。これはディレクトリではありません。
- 戻り値
デコード後のファイル名(string)を返します。
- 例
(decode-file-spec "%temp%/test.txt")
"c:/bbss/_temp/test.txt"
- 関連項目
- create-directory
- 文法
(create-directory dir)
dir : string or wstring
- 説明
- 戻り値
成功した場合は t 、失敗した場合は nil が戻されます。
- 例
- 補
- 関連項目
- remove-directory
- 文法
(remove-directory dir)
dir : string or wstring
- 説明
dir で指定された ディレクトリを削除します。ただし、ディレクトリ
が空ではない場合は失敗します。
- 戻り値
成功した場合は t 、失敗した場合は nil が戻されます。
- 例
- 補
- 関連項目
- clear-directory
- 文法
(clear-directory dir clear-subdir)
dir : string or wstring
clear-subdir : t or nil
- 説明
dir で指定された ディレクトリに含まれるファイルを削除します。また、clear-sub が
t の場合はサブディレクトリも含めてクリアします。
- 戻り値
成功した場合は t 、失敗した場合は nil が戻されます。
- 例
- 補
- 関連項目
- create-temp-file
- 文法
(create-temp-file prefix)
prefix : string or wstring
- 説明
テンポラリなファイルを %temp% ディレクトリに作成します。
prefix はテンポラリなファイり名のプレフィックスです。
3文字以上にしてください。
- 戻り値
成功した場合は 作成されたテンポラリファイルの
名前(string) が返されます。、失敗した場合は nil が戻されます。
- 例
- 補
このテンポラリなファイルはスレッドが終了した時点で自動的
に削除されます。ただし常駐するプログラムの場合はずいぶん
長い間削除されませんので、原則として不要になったら削除するように
心がけてください。
- 関連項目
- create-unique-file
- 文法
(create-unique-file dir extension)
dir : string or wstring
extension : string or wstring
- 説明
dir で指定されたディレクトリに、拡張子 extension を持つ
ユニークなファイルを作成します。
- 戻り値
成功した場合は 作成されたユニークなファイルの
名前(string) が返されます。、失敗した場合は nil が戻されます。
- 例
- 補
- 関連項目
- copy-file
- 文法
(copy-file soc dst)
soc : string or wstring
dst : string or wstring
- 説明
ファイル soc をファイル dstにコピーします。
- 戻り値
成功した場合は t、失敗した場合は nil が戻されます。
- 例
- 補
- 関連項目
- move-file
- 文法
(move-file soc dst)
soc : string or wstring
dst : string or wstring
- 説明
ファイル名 soc をファイル名 dstに変更します。
- 戻り値
成功した場合は t、失敗した場合は nil が戻されます。
- 例
- 補
ファイル dst が存在する場合は失敗します。この関数は
ディレクトリに対しても操作可能です。また、ディレクトリ
では無い場合は別のドライブやファイルシステムに対しても
操作可能です。
- 関連項目
- delete-file
- 文法
(delete-file file)
file : string or wstring
- 説明
- 戻り値
成功した場合は t、失敗した場合は nil が戻されます。
- 例
- 補
- 関連項目
- get-file-attributes
- 文法
(get-file-attributes file)
file : string or wstring
- 説明
- 戻り値
成功した場合は 属性(string)、失敗した場合は nil が戻されます。
- 例
(get-file-attributes "c:/temp/test.txt")
"-rwx"
(get-file-attributes "c:/temp")
"drwx"
属性は左から順に ディレクトリ、読み取り属性、書き込み属性、実行属性
で、Windows の場合、実行属性は常に x ,YES になります。
属性文字 "-"は NOを意味し、"drw"は
左から、ディレクトリ、読み取り属性、書き込み属性を意味します。
- 補
- 関連項目
|
ファイルディレクトリ操作②
open
close
end-of-file
read-line
read-char
write-line
write-char
rewind
read-file
conv-file-code
list-files
read-string
write-string
fseek
ftell
以下の関数において引数が wstring で渡された場合は
CP_ACP で string に自動変換されて実行されます。
- open
- 文法
(open file-name mode)
file-name : string or wstring
mode : string or wstring
- 説明
file-name で指定されたファイルを開きます。modeはアクセスモードを指定します。
- "r"
- "w"
書き込みモードで空のファイルを開きます。
指定されたファイルが既にあると、そのファイルの内容が破壊されます。
- "a"
- "r+"
読み出しと書き込みの両方のモードで開きます (対象は既存ファイル)。
- "w+"
読み出しと書き込みの両方のモードで空のファイルを開きます。
指定されたファイルが既にあると、そのファイルの内容が破壊されます。
- "a+"
- "t"
テキストモードで開きます。
なお、これは、上のモードのいずれかと組み合わせで使います。
テキスト モードでは、CR-LF (キャリッジリターンとライン フィード)
シーケンスは入力時に 1 個のライン フィード (LF) に変換されます。
出力時には、LF 文字は CR-LF シーケンスに変換されます。
- "b"
バイナリモードで開きます。
なお、これは、上のモードのいずれかと組み合わせで使います。
CR-LF の変換は行われません。
- 戻り値
成功した場合はファイルハンドラ(filep) を戻します。失敗した
場合は nil が戻ります。
- 例
- 関連項目
- close
- 文法
(close file)
file : filep
- 説明
fileで指定されたファイルを閉じます。file は 関数 open の戻した値です。
- 戻り値
成功した場合は t 、失敗した場合は nil が戻ります。
- 補
- 例
- 関連項目
- end-of-file
- 文法
(end-of-file file)
file : filep
- 説明
fileで指定されたファイルの終わりに到達したかどうかを調べます
- 戻り値
ファイルの終わりの場合は t 、そうでない場合は nil が戻ります。
- 例
(if (not (read-line file))
)
- 関連項目
- read-line
- 文法
(read-line file)
file : filep
- 説明
fileで指定されたファイルから、改行文字(CR-LF)に出会うか、内部バッファサイズ
(1024*8 バイト) -1 文字まで読み込みます。
従って、読み込まれた結果が "\n" で終わっていない場合は、
内部バッファを越えるサイズの行がある事を意味します。
- 戻り値
読み込んだ文字列(string)を返します。失敗した場合は nil が戻されます。
- 補
read-line はファイルから文字列を読み込むだけではなくソケットから
文字列を受信する場合も使用されます。
この場合 上記の file はソケットを渡します。
ソケットから文字列を受信する場合は(CR-LF) が取り除かれた文字列
が返されます。
ソケット関数
- 例
- 関連項目
- read-string
- 文法
(read-string file buff length)
file : filep
buff : string
length : integer
- 説明
fileで指定されたファイルから、length で指定されたバイト数を読み込みます
length は 、関数string-lengthの返すサイズの範囲
です。文字列 buff は破壊的修正を受けます。
- 戻り値
成功した場合は t 失敗した場合は nil を返します。
- 補
read-string はファイルから文字列を読み込むだけではなくソケットから
文字列を受信する場合も使用されます。
この場合 上記の file はソケットを渡します。
ソケットから文字列を受信する場合は length で指定されたバイト数を
受信するまで制御は戻りません。
ソケット関数
- 例
- 関連項目
- read-char
- 文法
(read-char file)
file : filep
- 説明
fileで指定されたファイルから一文字読み込みます。(半角単位)
- 戻り値
読み込んだ文字(character)を返します。失敗した場合は nil が戻されます。
- 例
- 関連項目
- write-line
- 文法
(write-line file text)
file : filep
test : string
- 説明
fileで指定されたファイルに、text に格納されている文字列を書き込みます。
- 戻り値
成功した場合は t 、失敗した場合は nil が戻されます。
- 補
write-line はファイルに文字列を書き込むだけではなくソケットへ
文字列を送信する場合も使用されます。
この場合 上記の file はソケットを渡します。
ソケットへ文字列を送信する場合は(CR-LF) の変換は行われません。また、
(CR-LF) が自動的に附加される事もありません。
ソケット関数
- 例
- 関連項目
- write-string
- 文法
(write-string file buff length)
file : filep
buff : string
length : integer
- 説明
fileで指定されたファイルへ、length で指定されたバイト数を書き込みます。
length は 関数string-lengthの返すサイズの範囲
です。
- 戻り値
成功した場合は t 失敗した場合は nil を返します。
- 補
write-string はファイルに文字列を書き込むだけではなくソケットへ
文字列を送信する場合も使用されます。
この場合 上記の file はソケットを渡します。
ソケットへ文字列を送信する場合は length で指定されたバイト数を
送信するまで制御は戻りません。
ソケット関数
- 例
- 関連項目
- write-char
- 文法
(write-char file char)
file : filep
char : caharacter
- 説明
fileで指定されたファイルへ char を一文字書き込みます(半角単位)
- 戻り値
書き込みに成功した場合は t 、失敗した場合は nil が戻されます。
- 例
- 関連項目
- rewind
- 文法
(rewind file)
file : filep
- 説明
fileで指定されたファイルのファイルポインタをファイルの
先頭に戻します。
- 戻り値
成功した場合は t 、失敗した場合は nil が戻されます。
- 例
- 関連項目
- fseek
- 文法
(fseek file offset origin)
file : filep
offset : integer
origin : integer
- 説明
fileで指定されたファイルのファイルポインタをoffset で指定された位置に
移動します。origin が 0の場合はファイルの先頭から、1の場合は現在の
位置から、2の場合はファイルの最後からの移動になります。
- 戻り値
成功した場合は t 、失敗した場合は nil が戻されます。
- 例
- 関連項目
- ftell
- 文法
(ftell file)
file : filep
- 説明
fileで指定されたファイルのファイルポインタを返します。
- 戻り値
ファイルポインタの位置を整数値でかえします。、失敗した場合は nil が戻されます。
- 例
- 関連項目
- read-file
- 文法
(read-file file-name)
file-name : string or wstring
- 説明
file-name で指定された名前を持つファイル全体を読み込みます。
- 戻り値
成功した場合はファイル全体が格納された文字列(string)が返されます。
失敗した場合は nil が戻されます。
- 補
この関数の対象はテキストファイルであり、バイナリファイル
に対して実行した場合の結果は保証されていません。
- 例
- 関連項目
- conv-file-code
- 文法
(conv-file-code file-name soc-code dst-code)
file-name : string or wstring
soc-code: string or wstring
dst-code: string or wstring
- 説明
file-name で指定された名前を持つファイルの文字コードを、
soc-code で指定された文字コードから dst-code で指定された
文字コードに変換します。(ファイル自体が書き換えられます)
soc-code , dst_code
- "auto"
ファイルの文字コードは自動判定されます。
これは dst_code に使用する事はできません。
- "euc"
- "jis"
- "shift_jis"
- "utf-8"
- 戻り値
成功した場合は t 、
失敗した場合は nil が戻されます。
- 補
utf-8 に変換される場合のコードページは コンピュータの
デフォルトのコードページが使用されます。
- 例
- 関連項目
- list-files
- 文法
(list-files file-spec)
file-spec : string or wstring
- 説明
file-spec で指定されたファイルをリストします。ワイルドカードが
使用できます。
- 戻り値
成功した場合はファイルをリストで返します。
失敗した場合は nil が戻されます。
ファイルリストは次のリストのリストです。
(ファイル属性( ファイルサイズ(LOW) ファイルサイズ(HIGH) ファイル時間 ファイル名)
- ファイル属性(string)
- ファイルサイズLOW(integer)
- ファイルサイズHIGH(integer)
- ファイル時間(filetime)
- ファイル名前(string)
- 例
(list-files "%windows%/*.dll")
(("-rwx" 49288 0 #filetime:2002/06/01 05/10/04 "appversions.dll")
("-rwx" 40056 0 #filetime:2002/05/05 01/13/17 "sdkhelpmsi.dll")
("-rwx" 301176 0 #filetime:2002/06/01 05/10/04 "sdkinst.dll")
("-rwx" 20240 0 #filetime:1999/12/17 12/00/00 "vmmreg32.dll")
)
- 関連項目
|
プロパティファイルの読み書き
get-profile-int
get-profile-str
put-profile-int
put-profile-str
flush-profile
以下の関数において引数が wstring で渡された場合は
CP_ACP で string に自動変換されて実行されます。
- get-profile-int
- 文法
(get-profile-int sec key defualt path)
sec: string or wstring
key: string or wstring
default: integer
path: string or wstring
- 説明
プロパティファイルから整数値を取得します。
- sec : セクション名
- key : キー
- default : デフォルト値
- path : プロファイルの名前
- 戻り値
- 例
- 関連項目
- get-profile-str
- 文法
(get-profile-str sec key defualt path)
sec: string or wstring
key: string or wstring
default: string or wstring
path: string or wstring
- 説明
プロパティファイルから文字列を取得します。
- sec : セクション名
- key : キー
- default : デフォルト値
- path : プロファイルの名前
- 戻り値
- 補
デフォルト値が wstringで与えられた場合
は返される文字列も wstring になります。
- 例
- 関連項目
- put-profile-int
- 文法
(put-profile-int sec key defualt path)
sec: string or wstring
key: string or wstring
val: integer
path: string or wstring
- 説明
プロパティファイルに整数値を設定します。
- sec : セクション名
- key : キー
- val : 値
- path : プロファイルの名前
- 戻り値
- 例
- 関連項目
- put-profile-str
- 文法
(put-profile-str sec key defualt path)
sec: string or wstring
key: string or wstring
val: string or wstring
path: string or wstring
- 説明
プロパティファイルに文字列を設定します。
- sec : セクション名
- key : キー
- val : 値
- path : プロファイルの名前
- 戻り値
- 例
- 関連項目
- flush-profile
- 文法
(flush-profile path)
path: string or wstring
- 説明
- 戻り値
- 例
- 関連項目
|
ソケット関数
open-socket
bind-logfile
recv
send
set-timeout
enable-log
is-ip-address
- open-socket
- 文法
(open-socket host port timeout family type option)
host : string
port : integer
timeout : integer
family : integer
type : integer
option : integer
- 説明
host で指定されたサーバの port(ポート番号) に接続されたソケットを作成します。
- timeout は接続時のタイムアウト時間で単位はミリ秒、
- faimily
- 0 : IPV4,IPV6 のいずれか相手のサポートしているバージョンで接続
- 4 : IPV4で接続
- 6 : IPV6で接続
- type : 0 の場合はストリーム、1 の場合はデータグラムソケットを作成
- option : 現在未使用です。
- 戻り値
接続に成功した場合はソケット(socket)を返し、失敗した場合は nil が
戻ります。
- 補
- 例
- 関連項目
- bind-logfile
- 文法
(bind-logfile sock proto)
sock : socket
proto : string
- 説明
ソケット sock にログファイルを割り当てます。
proto はログファイルの名前の一部に使われますので、
出来るだけユニークになるように設定してください。
- 戻り値
バインドできた場合は t 、出来なかった場合は nil に
なります。
- 例
- 関連項目
- recv
- 文法
(recv sock buff length mode)
sock : soket
buff : string
length : integer
mode : t or nil
- 説明
ソケット sock から length バイトを buff に読み込みます。
mode が t の場合はlength バイト読み込むか、タイムアウトに
なるまで制御が戻りません。 nil の場合は一文字以上、length
バイトまで可能な限り受信して制御を戻します。
- 戻り値
接続に成功した場合は受信できたバイト数を戻します。
失敗した場合は nil が戻ります。
- 補
指定されたバイト数がバッファ buff のサイズを超える場合は
buff のサイズだけ受信されます。
- 例
- 関連項目
- send
- 文法
(send sock buff length)
sock : soket
buff : string
length : integer
- 説明
ソケット sock にから length バイトを buff から送信します。
length バイトを送信するかタイムアウトになるまで制御は
戻りません。
- 戻り値
接続に成功した場合は送信したバイト数を戻します。
失敗した場合は nil が戻ります。
- 補
指定されたバイト数がバッファ buff のサイズを超える場合は
buff のサイズだけ送信されます。
- 例
- 関連項目
- set-timeout
- 文法
(set-timeout sock timeout)
sock : sock
timeout : integer
- 説明
sock で指定されたソケットの通信タイムアウト時間をミリ秒単位で指定します。
timeout が設定時間です。
- 戻り値
成功した場合は設定されたタイムアウト時間、失敗した場合は nil が
戻ります。
- 例
- 関連項目
- enable-log
- 文法
(enable-log sock stat)
sock : sock
stat : t or nil
- 説明
sock で指定されたソケットの通信ログの書き出しを許可または禁止します。
stat が t の場合は許可、nil の場合は禁止です。
- 戻り値
- 例
- 関連項目
- is-ip-address
- 文法
(is-ip-address domain)
domain : string
- 説明
domain が IP アドレスで表現されているかどうかを調べます。
- 戻り値
IP アドレスの場合は t 、そうでない場合は nilを戻します。
- 例
(is-ip-address "127.0.0.1")
t
(is-ip-address "hotmail.com")
nil
- 関連項目
|
DNS 関数
dns-query
- dns-query
- 文法
(dna-query disable-udp dns-server type domain)
disable-udp : t or nil
dns-server : string or nil
type : string
domain : string
- 説明
dns サーバから domain を探します。
- disable-udp : t の場合は UDP での検索を禁止します。
- dns-server : DNS サーバノ名前です。 nil の場合じは自動でサーバを探します。
- type : 検索するドメインのタイプです。
現在つぎの3っつのタイプがサポートされています。
- "mx" : MXを検索
- "a" : Aを検索
- "aaaa" : AAAAを検索
- domain : 検索対象です。
- 戻り値
成功した場合は検索結果をリストで返します。検索できなかった場合は nil が
戻されます
リストは次のようなリストで構成されいます。
(type ttl ttl-start preference name)
- type : "mx" "a" "aaa" のいずれかです。
- ttl : 検索結果の有効期限で、単位は秒です。
- ttl-start : 検索された時間で 1970/01/01 からの経過秒数です。
- preference : "mx" の検索時に有効です。
- name : 検索されたサーバの名前またはIPアドレスです。
- 例
(dns-query t nil "mx" "hotmail.com")
- 関連項目
|
FTP 関数
ftp
ftp-list-files
ftp-get-cur-dir
ftp-get-local-cur-dir
これらの関数は Roxas version 6.01 以降で使用可能です。Blueberry Server Server では
使用できません。
- ftp
- 文法
(ftp command)
command: string
- 説明
コンソールコマンド、command を実行します。
- 戻り値
成功した場合は t、失敗した場合は nil が返されます。
- 例
(ftp (strcat "open" host))
- 関連項目
- ftp-list-files
- 文法
(ftp-list-files file-spec)
file-spec : string
- 説明
file-spec で指定されたリモートファイルをリストします。ワイルドカードが
使用できます。
- 戻り値
成功した場合はファイルをリストで返します。
失敗した場合は nil が戻されます。
ファイルリストは次のリストのリストです。
(ファイル属性( ファイルサイズ(LOW) ファイルサイズ(HIGH) ファイル時間 ファイル名)
- ファイル属性(string)
- ファイルサイズLOW(integer)
- ファイルサイズHIGH(integer)
- ファイル時間(filetime)
- ファイル名前(string)
- 例
(ftp-list-files "*.*")
(("-rw-r-----" 19719 0 #filetime:2002/07/09 23/31/00 "cons.jpg")
("-rwxr-xr-x" 1405 0 #filetime:2002/07/09 23/31/00 "echo.cgi")
("-rw-r-----" 22939 0 #filetime:2002/07/09 23/31/00 "image1.jpg")
("-rw-r-----" 8977 0 #filetime:2002/07/12 01/57/00 "lisp.txt")
)
- 関連項目
- ftp-get-cur-dir
- 文法
- 説明
- 戻り値
成功した場合はディレクトリが戻されます、失敗した場合は nil が返されます。
- 例
- 関連項目
- ftp-get-local-cur-dir
- 文法
- 説明
- 戻り値
成功した場合はディレクトリが戻されます、失敗した場合は nil が返されます。
- 例
- 関連項目
|
時間関数
sleep
time
get-system-time
get-local-time
set-system-time
set-local-time
system-time->string
system-time->list
list->system-time
get-time-zone
file-time->system-time
system-time->file-time
file-time->local-file-time
compare-file-time
get-file-time
set-file-time
get-days-after
ctime
time->localtime
time->gmtime
time->list
time->system-time
system-time->time
get-tickcount
- sleep
- 文法
(sleep timeout)
timeout: integer
- 説明
timeout (単位ミリ秒)で指定された時間、プログラムの実行を
停止します。
- 戻り値
- 例
- 関連項目
- time
- get-system-time
- set-system-time
- 文法
(set-system-time stime)
stime : systemtime
- 説明
- 戻り値
t を戻します。失敗した場合は nil を戻します。
- 例
- 関連項目
- get-local-time
- set-local-time
- 文法
(set-local-time stime)
stime : systemtime
- 説明
- 戻り値
t を戻します。失敗した場合は nil を戻します。
- 例
- 関連項目
- system-time->string
- 文法
(system-time->string stime mode)
stime : systemtime
mode : t or nil
- 説明
システム時間 stime を文字列に変換します。
文字列は次のフォートになっています。
mode が t の場合は
"Tue, 30 Jul 2002 05:46:04"
mode が nil の場合は
"Tue, 30 7 2002 05:46:33"
つまり、月を数字で表現するか、英語で表現するかの
違いだけです。
- 戻り値
文字列に変換されたシステム時間(string)を戻します。
- 例
- 関連項目
- system-time->list
- 文法
(system-time->list stime)
stime : systemtime
- 説明
システム時間 stime を、年、月、日、曜日、時間、分、秒、ミリ秒に
分解してリストにして戻します。
- 戻り値
- 例
(system-time->list (get-system-time))
(2002 7 30 2 5 57 51 580)
- 関連項目
- list->system-time
- 文法
(list->system-time list)
list : consp
- 説明
年、月、日、曜日、時間、分、秒、ミリ秒で構成されたリストを
合成してシステム時間に変換します。
- 戻り値
- 例
(list->system-time '(2002 7 30 2 5 57 51 580))
#systemtime:2002/07/30 05/57/51 580
- 関連項目
- get-time-zone
- system-time->file-time
- 文法
(system-time->file-time stime)
stime : systemtime
- 説明
システムタイム stime をファイル時間に変換します。
- 戻り値
- 例
- 関連項目
- file-time->system-time
- 文法
(file-time->system-time ftime)
ftime : filetime
- 説明
ファイル時間 ftime をシステム時間に変換します。
- 戻り値
- 例
- 関連項目
- file-time->local-file-time
- 文法
(file-time->local-file-time ftime)
ftime : filetime
- 説明
ファイル時間 ftime をローカルファイル時間に変換します。
- 戻り値
- 例
- 関連項目
- compare-file-time
- 文法
(compare-file-time ftimea ftimeb)
ftimea : filetime
ftimeb : filetime
- 説明
- 戻り値
ファイル時間 ftimea が ftime b よりも最新の場合は 1 、古い場合は -1 、
同じ場合は 0 を戻します。
- 例
- 関連項目
- get-file-time
- 文法
(get-file-time file-name)
file-name : string
- 説明
file-name で指定されたファイルのファイル時間を取得します。
- 戻り値
ファイル時間(systemtime) を戻します。
- 例
- 関連項目
- set-file-time
- 文法
(set-file-time file-name ftime)
file-name : string
ftime: filetime
- 説明
file-name で指定されたファイルのファイル時間を ftime で指定された
ファイル時間に設定します。
- 戻り値
成功した場合は t 、失敗した場合は nil を返します。
- 例
- 関連項目
- get-days-after
- 文法
(get-days-after stime ndays)
stime : systemtime
ndays : integer
- 説明
システム時間 stime に ndays の値(正の日数)を足した
日付を計算します。
- 戻り値
システム時間(systemtime) を戻します。
- 例
- 関連項目
- ctime
- 文法
- 説明
時間 tm を文字列に変換します。時間 tm は 関数
time が戻すような、1970年 1月 1 日からの
経過秒数を指定します。
- 戻り値
- 例
- 関連項目
- time->localtime
- 文法
(time->localtime tm)
tm : integer
- 説明
時間 tm をローカル時間に変換します。時間 tm は 関数
time が戻すような、1970年 1月 1 日からの
経過秒数を指定します。
- 戻り値
変換後の時間を1970年 1月 1 日からの
経過秒数で返します。
- 例
- 関連項目
- time->gmtime
- 文法
(time->gmtime tm)
tm : integer
- 説明
時間 tm を世界標準時間に変換します。時間 tm は 関数
time が戻すような、1970年 1月 1 日からの
経過秒数を指定します。
- 戻り値
変換後の時間を1970年 1月 1 日からの
経過秒数で返します。
- 例
- 関連項目
- time->list
- 文法
(time->list tm)
tm : integer
- 説明
時間 tm を、年、月、日、曜日、時間、分、秒、ミリ秒に
分解してリストにして戻します。(ミリ秒は常にぜロになっています。)
時間 tm は 関数
time が戻すような、1970年 1月 1 日からの
経過秒数を指定します。
- 戻り値
- 例
- 関連項目
- time->system-time
- 文法
(time->system-time tm)
tm : integer
- 説明
時間 tm を、システムタイムに変換します。
時間 tm は 関数
time が戻すような、1970年 1月 1 日からの
経過秒数を指定します。
- 戻り値
- 例
- 関連項目
- system-time->time
- 文法
(system-time->time stime)
stime : systemtime
- 説明
システムタイムを 1970/01/01 からの経過秒数に変換します。
- 戻り値
- 例
- 関連項目
- get-tickcount
- 文法
- 説明
ウインドウズが起動してから現在までの時間をミリ秒で戻します。
- 戻り値
- 例
- 関連項目
|
スレッドの起動
run,
is-alive
create-process
shell-execute
- run
- 文法
(run script entry)
script : string
entry : string
- 説明
script で指定されたプログラムをスレッドとして起動し、最初に
entry で指定された命令を実行します。
- 戻り値
スレッドの作成に成功した場合はスレッド識別子(integer)、失敗した場合は
nil が返されます。
- 例
(run "test.lsp" "(main)")
test.lspをスレッドとして起動し最初に関数 main を実行します。
- 補-1
プログラムファイルの名前がフルパスではない場合は、プログラムは
_pluginsディレクトリに在ると前提しています。
- 補-2
起動されたスレッドには呼出し側とは別のメモリ空間が割り当てられますので、
お互いの関数や変数は見えません。
- 関連項目
- is-alive
- 文法
- 説明
スレッド識別子 id で指定されたスレッドが稼動中かどうかを調べます。
- 戻り値
スレッドが稼動中の場合は t、終了している場合は nil が帰ります。
- 例
- 関連項目
- create-process
- 文法
(create-process prog wait show)
prog : string
wait : t or nil
show : t or nil
- 説明
prog で指定されたプロセスを作成します。wait が t の場合は プロセスの
終了を待って制御を戻します。 また、show が t の場合はプロセスのウインドウ
を表示しますが、 nil の場合はウインドウを表示しません。
- 戻り値
プロセスの起動に成功した場合は t 、失敗した場合は nil を返します。
- 例
- 関連項目
- shell-execute
- 文法
(shell-execute f param dir show)
f : string
param : string or nil
dir : string or nil
show : t or nil
- 説明
f で指定されたファイルを関連付けで開(実行)きます。param は渡すパラメータです。
param が nil の場合は NULL が渡されます。dir は作業ディレクトリです。 nil の場合
はカレントディレクトリになります。 また、show が t の場合はプロセスのウインドウ
を表示しますが、 nil の場合はウインドウを表示しません。
- 戻り値
起動に成功した場合は t 、失敗した場合は nil を返します。
- 例
- 関連項目
|
スレッド間の同期
open-event
wait-event
set-event
reset-event
open-mutex
get-mutex
release-mutex
is-aborted
- open-event
- 文法
(open-event name manual-reset)
name : string or wstring
manual-reset : t or nil
- 説明
name で指令されたイベントを作成します。manual-reset が t の場合は
イベントステータスは reset-event でリセットするまでシグナル状態
を続けます。
- 戻り値
イベントハンドル(handle)を返します。このハンドルは不要になった
段階で閉じなくてはいけません。ハンドルは close 関数を使って
閉じます。
- 例
(setq h (open-event "test" t))
.
.
.
(close h)
イベント test を作成して、最後に close でこの
ハンドルを閉じています。
- 関連項目
- wait-event
- 文法
(wait-event hevent timeout)
hevent : handle
timeout : integer
- 説明
hevent で指定されたイベントがシグナル状態になるのを待ちます。
timeout は待っている時間で、単位はミリ秒です。なお、timeout
が t の場合はずっと待ちつづけます。また、0 の場合はすぐに
結果を返します。
- 戻り値
シグナル状態の場合は t 、そうでない場合は nil が戻されます。
- 例
- 関連項目
- set-event
- 文法
(set-event hevent)
hevent : handle
- 説明
hevent で指定されたイベントをシグナル状態にします。
- 戻り値
処理に成功した場合は t 、失敗した場合は nil が
返されます。
- 例
- 関連項目
- reset-event
- 文法
(reset-event hevent)
hevent : handle
- 説明
hevent で指定されたイベントを非シグナル状態にします。
- 戻り値
処理に成功した場合は t 、失敗した場合は nil が
返されます。
- 例
- 関連項目
- open-mutex
- 文法
(open-mutex name)
name : string or wstring
- 説明
name で指令されたミューテックスを作成します。
- 戻り値
ミューテックスハンドル(handle)を返します。このハンドルは不要になった
段階で閉じなくてはいけません。ハンドルは close 関数を使って
閉じます。
- 例
(setq h (open-mutex "test"))
.
.
.
(close h)
ミューテックス test を作成して、最後に close でこの
ハンドルを閉じています。
- 関連項目
- get-mutex
- 文法
(get-mutex hmutex timeout)
hmutex : handle
timeout : integer
- 説明
hmutex で指定されたミューテックスがシグナル状態になるのを待ちます。
timeout は待っている時間で、単位はミリ秒です。なお、timeout
が t の場合はずっと待ちつづけます。また、0 の場合はすぐに
結果を返します。
- 戻り値
シグナル状態の場合は t 、そうでない場合は nil を返します。
- 例
- 関連項目
- release-mutex
- 文法
(release-mutex hmutex)
hmutex : handle
- 説明
hmutex で指定されりミューテックスを開放します。なお、これに先立って、
get-mutex でミューテックスが獲得されていなくてはいけません。
また、この関数は hmutex を閉じる事はしませんので、close 関数で最後に必ず閉じて
ください。
- 戻り値
成功した場合は t 、そうでない場合は nil を返します。
- 例
- 関連項目
- is-aborted
- 文法
- 説明
システム自体は終了しようとしているかどうかを調べます
- 戻り値
- 例
- 関連項目
|
ベクターの操作
- make-vector
- 文法
(make-vector length &optional fill)
length:integer
fill:object
- 説明
length サイズのベクターを作成します。fill が指定されている場合は
この値で初期化します。なお、初期化された場合の値は eq で等しい
状態になっている事に注意してください。
- 戻り値
作成されたベクターを返します。作成されたベクターのサイズは lengthで
調べる事ができます。
- 例
- 関連項目
- vector
- 文法
(vector s1 s2 ... sn)
s1 - sn : s 式
- 説明
s1 から sn からなる ベクターを作成します。
- 戻り値
作成されたベクターを返します。作成されたベクターのサイズは lengthで
調べる事ができます。
- 例
(vector 1 2 3 4 5)
#(1 2 3 4 5)
- 関連項目
- vector-ref
- 文法
(vector-ref vec index)
vec:vector
index:integer
- 説明
ベクター vec の index 番目のオブジェクトを返します。
- 戻り値
- 例
- 関連項目
- vector-set
- 文法
(vector-set vec index v)
vec:vector
index:integer
v : object
- 説明
ベクター vec の index 番目に オブジェクト v を格納します。
- 戻り値
- 例
- 関連項目
- vector->list
- list->vector
- 文法
(vector->list vec)
(list->vector list)
- 説明
vector->listはベクターをリストにして返します。
list->vectorはリストをベクターにして返します。
- 戻り値
- 例
- 関連項目
|
文字列の操作
make-string
make-wstring
fill-string
string-length
chomp
trim-spaces
strlen
strdup
strcmp
strcmpi
strncmp
strnicmp
strcat
strstr
strstrex
strchr
strchrex
strrchr
strrchrex
strlwr
strupr
char-at
set-char
substr
repstr
strtok
atoi
itoa
itowa
toupper
tolower
ismbblead
ismbbtrail
isalpha
isdigit
integer->char
char->integer
integer->wchar
wchar->integer
string->wstring
wstring->string
cast->wstring
cast->string
文字列はアドレスで管理されています。よって
(setq a "12345")
(setq b a)
を実行した場合は、シンボル a とb は同じ文字列を共有している
ことになり a に対する変更は b にも反映されます。
この結果が不本意の場合は strdup を使って
コピーします。
(setq a "12345")
(setq b (strdup a))
ただし、定数は例外で
(setq a "12345")
(setq b "12345")
とした場合は a と b は別のアドレスを指しています。また、a や b に変更を
加えても、もともとの文字列 "12345" が変更される事はありません。
(setq a "12345")
(setq b "12345")
はそれぞれ
(setq a (strdup "12345"))
(setq b (strdup "12345"))
と同じです。
★以下の文字列操作関数は特に説明が無い限り、 character,wcharacter,string,wstring いず
れでも使用できます。ただし、 (strcmp a b) などの場合、 a b の型は同じでなくては
いけません。また、長さや位置を取り扱う関数の場合 wstring が対象の場合はバイト位置では
無く文字単数です。
★ 以降の説明において、「破壊的修正を加える」という説明が無い限り、
関数を実行した結果、処理の対象となった文字列自体に変更が加えられる事はありません。
逆説的に言えば、「破壊的修正を加える」関数の使用に関しては充分に注意を払って
ください。
- make-string
- 文法
(make-string length fil)
length: integer
fil: character or nil
- 説明
長さ length の文字列を作成します。この文字列は fil が nil
では無い場合は、この文字で初期化されます。nil の場合はゼロで
初期化されています。
- 戻り値
- 例
- 関連項目
- make-wstring
- 文法
(make-wstring length)
length: integer
- 説明
長さ length のユニコード文字列を作成します
NULL 文字で初期化されています。
- 戻り値
- 例
- 関連項目
- fill-string
- 文法
(fill-string text offset length ch)
text: string
offset: integer
length: integer
fil: character or nil
- 説明
文字列 text のオフセット offet から、長さ length を もじ ch で初期化します。
ch が nil の場合はゼロで初期化されます。
- 戻り値
- 例
- 補
この関数は wstring に対しては使用できません。
- 関連項目
- string-length
- 文法
(string-length s)
s: string
- 説明
文字列 s の為に確保されているメモリサイズを返します。実際には、返された
サイズ+1 バイト確保されていますが、これは文字列ターミネータ(null)で、参照する
事も変更する事もできません。なお、この関数は、
関数strlen とは違う事に注意してください。
- 戻り値
- 例
- 関連項目
- chomp
- 文法
- 説明
文字列 s のお尻の改行文字 (CR,LF) を取り去ります。文字列はASCIIZとみなします。
よって、文字列 s の長さは 文字列の先頭から null 文字までです。
- 戻り値
- 補
この関数は、文字列に対して破壊的修正を加えます。例えば (chomp a) を
実行した場合 シンボル a の内容そのものが変更されます。
- 例
- 関連項目
- trim-spaces
- 文法
(trim-spaces s)
s: string
- 説明
文字列 s の行頭、行末の空白文字 (" ",TAB) を全て取り除きます
この関数は、文字列をASCIIZとみなします。
よって、文字列 s の長さは 文字列の先頭から null 文字までです。
- 戻り値
- 補
この関数は、文字列に対して破壊的修正を加えます。例えば (trim-spaces a) を
実行した場合 シンボル a の内容そのものが変更されます。
- 例
- 関連項目
- strlen
- 文法
- 説明
文字列 s の null 文字までの長さを返します。
- 戻り値
- 例
- 関連項目
- strdup
- 文法
- 説明
文字列 s の コピーを返します。コピーは 文字列 s の 全体で null 文字まででは
ありません。
- 戻り値
- 例
- 関連項目
- strcmp,strcmpi
- 文法
(strcmp sa sb)
(strcmpi sa sb)
sa: string
sb: string
- 説明
文字列 sa と sb を比較します。 strcmpi は大文字小文字の区別をせずに
比較します。
この関数は、文字列をASCIIZとみなします。
よって、文字列の長さは 文字列の先頭から null 文字までです。
- 戻り値
- sa>sb の場合は 1 を返します。
- sa<sb の場合は -1 を返します
- sa とsb が同じ場合は 0 を返します
- 例
- 関連項目
- strncmp,strnicmp
- 文法
(strncmp sa sb length)
(strnicmp sa sb length)
sa: string
sb: string
length: integer
- 説明
文字列 sa と sb を長さ length 分比較します。 strnicmp は大文字小文字の区別をせずに
比較します。
この関数は、文字列をASCIIZとみなします。
よって、文字列の長さは 文字列の先頭から null 文字までです。
- 戻り値
- sa>sb の場合は 1 を返します。
- sa<sb の場合は -1 を返します
- sa とsb が同じ場合は 0 を返します
- 例
- 関連項目
- strcat
- 文法
(strcat s1 s2 ... sn)
s1: string
s2: string
sn: string
- 説明
文字列 s1 から sn までを結合した文字列を作成します。
- 戻り値
- 例
- 関連項目
- strstr,strstrex
- 文法
(strstr s1 s2)
(strstrex s1 offset s2)
s1: string
s2: string
offset : integr
- 説明
文字列 s1 の部分文字列 s2 を探します。 strstrex の場合は offset で
指定された位置から探します。
- 戻り値
見つかった場合は s1 の文字列の先頭からのオフセットを返します。
- 例
- 関連項目
- strchr,strchrex
- 文法
(strchr s ch)
(strchr s offset ch)
s2: string
offset : integr
ch : character
- 説明
文字列 s の構成文字 ch を文字列の先頭から探します。 strchrex の場合は offset で
指定された位置から探します。
- 戻り値
見つかった場合は文字列 s の先頭からのオフセットを返します。
- 例
- 関連項目
- strrchr,strrchrex
- 文法
(strrchr s ch)
(strrchr s offset ch)
s2: string
offset : integr
ch : character
- 説明
文字列 s の構成文字 ch を文字列の最後から探します。 strrchrex の場合は offset で
指定された位置から探します。
- 戻り値
見つかった場合は文字列 s の先頭からのオフセットを返します。
- 例
- 関連項目
- strupr,strlwr
- 文法
(strupr s)
(strlwr s)
s: string
- 説明
strupr は 文字列 s を大文字に 、strlwr 文字列 s を
を小文字に変換します。
- 戻り値
- 例
- 関連項目
- char-at,set-char
- 文法
(char-at s offset)
(set-char s offset ch)
s: string
offset: integer
ch: character
- 説明
char-at は文字列 s の先頭からの offset 位置に 文字を取得します。
set-char は文字列 s の先頭からの offset 位置に 文字を設定しまし。
- 戻り値
char-at は 取得した文字、set-char は文字列 s を
返します。
- 補
set-char は文字列に対して破壊的修正を加えます。
- 例
- 関連項目
- substr
- 文法
(substr s offset lengtht)
s: string
offset: integer
- 説明
文字列 s の先頭からのオフセット offset から length 分の
文字列を取得します。offset+length は
string-length
で返される範囲です、
- 戻り値
- 例
- 関連項目
- repstr
- 文法
(repstr s sa sb offset lengtht)
sa: string
sb: string
offset: integer
length: integer
- 説明
文字列 sa の先頭からのオフセット offset から length 分を
文字列 sb で置き換えます。
- 戻り値
- 例
- 関連項目
- strtok
- 文法
(strtok sa sb)
sa: string or nil
sb: string
- 説明
文字列 sa からデリミタの集合 sb に含まれるいずれかの文字で
区切られたトークンを取り出します。
また、sa が nil の場合は、前回取得されたトークンの次の位置から検索します。
- 戻り値
- 補
この関数はデリミタをnull文字で置き換える為に、検索対象となった文字列に
対して破壊的修正を加えます。
- 例
- 関連項目
- atoi,itoa
- 文法
(atoi s)
(itoa n)
s: string
n: number
- 説明
atoi は 文字列 s を 整数値に変換、itoa は 整数値 n を
文字列に変換します。
- 戻り値
- atoi : 変換後の整数値返します。
- itoa : 変換後の文字列を返します。
- 例
- 関連項目
- itowa
- toupper,tolower
- 文法
(toupper ch)
(tolower ch)
ch: character
- 説明
toupper は 文字 ch を大文字に、tolower は 文字 ch を小文字
に変換します。
- 戻り値
- 例
- 関連項目
- ismbblead,ismbbtrail
- 文法
(ismbblead ch)
(ismbbtrail ch)
ch: character
- 説明
ismbblead は 文字 ch がマルチバイト文字の第一バイトか、
ismbbtrail は 文字 ch がマルチバイト文字の第2バイトかを
調べます
- 補
この関数は wcharacter に対しては使用できません。
- 戻り値
結果が YES の場合は t 、そうでない場合は nil を返します。
- 例
- 関連項目
- isalpha,isdigit
- 文法
(isalpha ch)
(isdigit ch)
ch: character
- 説明
isalpha は 文字 ch が 'a' - 'z' , 'A' - 'Z' の範囲にあるかどうかを、
isdigit は 文字 ch が '0' - '9' の範囲にあるかどうかを調べます。
- 戻り値
結果が YES の場合は t 、そうでない場合は nil を返します。
- 例
- 関連項目
- integer->char,char->integer
- 文法
(integer->char n)
(char->integer ch)
n: integer
ch: character
- 説明
integer->char は 整数値 n を 文字に、
char->integer は 文字 ch を整数値に変換します。
- 戻り値
- integer->char は文字を返します。
- char->integer は整数値を返します。
- 例
- 関連項目
- integer->wchar,wchar->integer
- 文法
(integer->wchar n)
(wchar->integer ch)
n: integer
ch: wcharacter
- 説明
integer->wchar は 整数値 n を ユニコードに、
wchar->integer は ユニコードch を整数値に変換します。
- 戻り値
- integer->wchar はユニコードを返します。
- wchar->integer は整数値を返します。
- 例
- 関連項目
- string->wstring,wstring->string
- 文法
(string->wstring s)
(wstring->string ws)
s: string
ws: wstring
- 説明
string->wstring は DBCS文字列 をユニコード文字列に
wstring->string は ユニコード文字列をDBCS文字列に変換します。
この時使用されるコードページはget-codepage
で戻されるコードページです。
- 戻り値
- 例
(set-codepage CP_UTF8)
(wstring->string L"こんにちは")
この例ではユニコード文字列 "こんにちは" をUTF-8文字列に変換します。
(set-codepage 0)
(string->wstring "こんにちは")
この例では DBCS 文字列 "こんにちは" をユニコード文字列に変換します。
- 関連項目
- cast->wstring,cast->string
- 文法
(cast->wstring s)
(cast->string ws)
s: string
ws: wstring
- 説明
cast->wstring は s の型を wstring に変換したものを返します。
cast->string は ws の型を string に変換したものを返します。
s 及び ws 自体の型は変化しないが、メモリ的には同じ場所を指して
います。
- 戻り値
- 例
- 関連項目
|
文字コード変換と調査
euc->dbcs
jis->dbcs
utf8->dbcs
dbcs->euc
dbcs->jis
dbcs->utf8
detect-string-code
- euc->dbcs,jis->dbcs,utf8->dbcs
- 文法
(euc->dbcs s)
(jis->dbcs s)
(utf8->dbcs s)
- 説明
euc->dbcs は euc 文字列を DBCS 文字列変換します。
jis->dbcs は jis 文字列を DBCS 文字列変換します。
utf->dbcs は utf-8 文字列を DBCS 文字列変換します。
- 補
DBCSをUTF8に変換する場合はget-codepage
で戻されるコードページを使用します。
euc や jis や utf-8 だって DBCS の一種ですが(^^;)
- 戻り値
- 例
- 関連項目
- dbcs->euc,dbcs->jis,dbcs->utf8
- 文法
(dbcs->euc s)
(dbcs->jis s flag)
(dbcs->utf8 s)
- 説明
dbcs->euc は DBCS 文字列を euc 文字列変換します。
dbcs->jis は DBCS 文字列を jis 文字列変換します。
dbcs->utf8 はDBCS 文字列を utf-8文字列変換します。
なお、jis->dbcs の場合 flag が t の場合は 半角カタカナを
全角のカタカナに変換します。
- 補
- 戻り値
- 例
- 関連項目
- detect-string-code
- 文法
(detect-string-code s)
s : string
- 説明
- 戻り値
結果は文字列で戻されます。
- "euc" : euc
- "jis" : jis
- "utf8" : utf-8
- "dbcs" : dbcs
- "ascii" : ascii
- 例
- 関連項目
|
正規表現を使った検索
- reg-search
- 文法
(reg-search code-page s pat offset range ignore-case)
code-poage : integer
pat : string
offset : integer
range : integer
ignore-case : t or nil
- 説明
正規表現 pat を使って、文字列 s を検索します。
- code-page は文字列 s と pat のコードページです。
コードページは CP_ACP と CP_UTF8 だけです。
コードページが 0 の場合は CP_ACP とみなします。
- pat :検索パターんです。
- offset は文字列 s の先頭からのオフセットです。
- range は検索範囲です。
- ignore-case が t の場合は大文字小文字の区別をせずに検索が行われます。
- 戻り値
みつからなかった場合は nil、見つかった場合は 文字列 s の先頭からのオフセットと
長さをリストで返します。
- 例
- 関連項目
|
ソート
- sort
- 文法
(sort list key method)
list : consp
key : integer
method integer
- 説明
リストを並び替えます。list がリストのリストの場合は key は
リストのリストの key 番目の要素で、リストではない場合は、ゼロに
設定します。method が負の値の場合は降順、正に値の場合は昇順に
並び替えます。
- 戻り値
並び替えたリストを返します。元のリストに変更は加えられません。
- 補
- 例
(sort '(1 4 3 2 5) 0 1)
(1 2 3 4 5)
(sort (list-files "%windows%/*.dll") 4 1)
(("-rwx" 49288 0 #filetime:2002/06/01 05/10/04 "appversions.dll")
("-rwx" 40056 0 #filetime:2002/05/05 01/13/17 "sdkhelpmsi.dll")
("-rwx" 301176 0 #filetime:2002/06/01 05/10/04 "sdkinst.dll")
("-rwx" 94832 0 #filetime:1999/12/17 12/00/00 "twain.dll")
("-rwx" 45328 0 #filetime:1999/12/17 12/00/00 "twain_32.dll")
("-rwx" 20240 0 #filetime:1999/12/17 12/00/00 "vmmreg32.dll")
)
- 関連項目
|
BASE64
b64-encode
b64-decode
- b64-encode
- 文法
(b64-encode s length)
s : string
length : integer
- 説明
文字列 s の先頭から length バイトを base64 でエンコード
します。length は string-length
で返される範囲です、
- 戻り値
- 例
- 関連項目
- b64-decode
- 文法
(b64-decode s length)
s : string
length : integer
- 説明
文字列 s の先頭から length バイトを base64 でデコードします。
します。length は strlen
で返される範囲です、
- 戻り値
- 例
- 関連項目
|
MD5
md5-string
md5-digest
- md5-string
- 文法
(md5-string s)
s : string
- 説明
- 戻り値
- 例
- 関連項目
- md5-digest
- 文法
(md5-string data dlen key klen)
data : string
dlen : integer
key : string
klen : integer
- 説明
文字列 data を 文字列 key を 使って MD5 でエンコードします。
dlen , klen はそれぞれの長さです。
- 戻り値
- 例
- 関連項目
|
メールアドレスを分解
- parse-address
- 文法
(parse-address s)
s : string
- 説明
文字列 s で示されたメールアドレスを、名前、メールボックス、ホストに
分解します。
- 戻り値
分解された、名前、メールボックス、ホストをリストで返します。
- 例
(parse-address "ayanoakira <aa@be.to>")
("ayanoakira " "aa" "be.to")
- 関連項目
|
Blueberry Server Server 用の特別な関数
- search-account
- 文法
(search-account plugin id)
plugin : string
id : string
- 説明
Blueberry Server Server のユーザー管理で登録された。アカウントを探します。
plugin は プラグインの名前、id はユーザーIDです。
- 戻り値
見つかった場合はアカウント情報をリストで戻します。みつからなかった場合は
nil が戻されます。リストは (ユーザーID,パスワード、コメント) になっています。
- 補
この関数は内部的にスレッド間の排他制御が行われてますので、
アプリケーションが排他制御を行う必要はありません。
- 例
(search-account "smtp server" "khf07113")
("khf07113" "khf1234" "none")
- 関連項目
- get-setting
- 文法
(get-setting prop)
prop : string
- 説明
- 戻り値
- "domain"
- "co-domains"
- "ipv6"
- "log"
- 補
この関数は内部的にスレッド間の排他制御が行われてますので、
アプリケーションが排他制御を行う必要はありません。
- 例
- 関連項目
|
連絡先
ayano-akira@vailet.pala.or.jp
khf07113@mnet.ne.jp
aa@be.to
このホームページは 綾の明 がメンテナンスしています。
|