Dictnext

提供:GizmoLabs - だいたい CAD LISP なサイト
2009年11月16日 (月) 12:57時点におけるGizmon (トーク | 投稿記録)による版
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
構文
(dictnext ename [rewind])


機能
ディクショナリ内の次の項目を検索する。
引数
  • ename 検索するディクショナリの名前。
  • rewind :この引数が指定され、値が nil でない場合は、ディクショナリの最初まで戻り、最初の項目を検索する。
戻り値
指定されたディクショナリ内の次の項目。ディクショナリの最後に達した場合は、nil。項目は、DXF 形式のコードと値のドット ペアのリストとして返す。 削除されたディクショナリ項目は、返さない。
dictsearch 関数は、取得する最初の項目を指定します。マスター ディクショナリ項目名を取得するには、namedobjdict 関数を使用する。
注: ディクショナリの項目を順番に検索する操作を開始した後で、別のディクショナリ名が dictnext 関数に渡されると、元のディクショナリでの現在の位置が分からなくなる。つまり、この関数は 1 つのグローバルな繰り返し子だけしか保持していない。


サンプル
dictadd 関数の例で示したように、ディクショナリと項目を作成する。次に、他の拡張レコード オブジェクトを作成する。
(setq xname (entmakex datalist))
<Entity name: 1b62d60>
この拡張レコード オブジェクトを、ディクショナリの 2 番目のレコードとして、ディクショナリに追加する。
(dictadd newdict "DATA_RECORD_2" xname)
<Entity name: 1b62d60>
ディクショナリ内の次の項目の図形名を取得する。
(cdr (car (dictnext newdict)))
<Entity name: 1bac958>
dictnext 関数は、ディクショナリに追加された最初の項目の名前を返す。
ディクショナリ内の次の項目の図形名を取得する。
(cdr (car (dictnext newdict)))
<Entity name: 1bac960>
dictnext 関数は、ディクショナリに追加された 2 番目の項目の名前を返す。
ディクショナリ内の次の項目の図形名を取得する。
(cdr (car (dictnext newdict)))
nil
ディクショナリには次の項目が存在しないので、dictnext 関数は nil を返す。
ディクショナリ内の最初の項目に戻り、その項目の図形名を取得する。
(cdr (car (dictnext newdict T)))
<Entity name: 1bac958>
省略可能な rewind 引数に T を指定したので、dictnext 関数は、ディクショナリ内の最初の項目を返す。



関連事項