Sds buildlist
- 構文
- struct sds_resbuf *sds_buildlist (int rtype, ...);
- 機能
- アイテムのリンクリストを作成する。
- 引数
-
- rtype : ペアデータ。最初の値は、データタイプ(以下の表参照)。2番目の値は、データ。
- 戻り値
- リストのポインターを返す。それが有効でないばあいはNULLポインターを返す。
- 失敗は、不正なリストか、メモリーリークによることがありえる。
- DXFグループコードが使用されるときは、グループ0 は結果タイプコード RTDXF0 で表現さなければならない。そうでなければ、sds_buildlist はリストが終了されたものとみなす。
- ペアデータには4つの例外がある。
- -3のコードは拡張データ。
- rtlb (リスト開始)。
- rtle (リスト終了)。
- rtdote (ドット・ペア)。
- 各ペアはデータタイプ(例えば RTREAL や RTSTR)とアイテムの値(たとえば99.94 や「アインシュタイン」)が続く。
- 最後のドット・ペアは一組でなく、0(ゼロ)または RTNONE でなければならない。
- リストを使用している場合は、 sds_relrb で使っているリストを解除しなければならない。
データタイプ | |
---|---|
タイプ | 意味 |
RTNONE | 戻り値無し。 |
RTREAL | 実数。 |
RTPOINT | 2D点。(x,y 座標) |
RTSHORT | 短整数。 |
RTANG | 角度。 |
RTSTR | 文字列。 |
RTENAME | エンティティ名。 |
RTPICKS | 選択セット。 |
RTORINT | 角度。 |
RT3DPOINT | 3D点 (x,y,z 座標). |
RTLONG | 長整数。 |
RTVOID | ブランクシンボル。 |
RTNIL | Nil。 |
RTDXF0 | DXF code 0. |
RTT | T (true) アトム. |
RTRESBUF | リザルトバッファリスト。 |
以下のタイプはペアにされない。
データタイプ | |
---|---|
タイプ | 意味 |
RTLB | リスト開始。 |
RTLE | リスト終了。 |
RTDOTE | ドットペアリスト。 |
RTNONE | リスト終了。 |
- サンプル
struct sds_resbuf *listbuf = NULL; listbuf=sds_buildlist(RTREAL,3.57,RTSHORT,12,RTSTR,"My Cat",RTNONE); sds_retlist(listbuf); if(listbuf != NULL) sds_relrb(listbuf);
結果:
(3.57 12 "My Cat")
int RetSuccessToLisp(const CString &msg) { struct resbuf* buf = sds_buildlist(RTLB,RTT,RTDOTE,RTSTR,msg,RTLE,0); sds_retlist(buf); sds_relrb(buf); return 0; }
結果:
(T . "成功")
関連事項