他のキーメソッドについては、REFERENCE「キーメソッド一覧」を参照してください。
%search() 特定のキーから指定した値を持つキーを検索するメソッドです。
引数:
(str)検索する値
[(int)孫キー以降を検索対象に含めない=false]
戻り値:
(key)検索されたキー
サンプルでは、事前に定義した.DataTableキーから以下の2種類のキーを検索しています。
①”太郎”の値をもつキーを検索
②100の値をもつキーを検索
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59  | 
						Kf(_Search){ 	Pe{ 		/*キーステーションが最初に実行するキーセット*/ 		N(_main); 	} } K(_main){ 	Se{ 		@s1{ 			~back{~color="#ff000000";} 			~font{~color="#ffffffff";~size="20";} 			~parag{~align="left";} 			~text{~align="top";} 		} 		@s2{ 			~back{~color="#ffeeeeee";} 			~font{~color="#ff400020";~size="20";} 			~parag{~align="left";} 			~text{~align="top";} 		} 	} 	De{ 		(key).DataTable{ 			(key).student{ 				(str).name="太郎"; 				(key).score{(int).japanese=30;(int).science=90;} 			} 			(key).student{ 				(str).name="花子"; 				(key).score{(int).japanese=100;(int).science=75;} 			} 		} 	} 	U{ 		R{ 			C(#left,@s1) 			C(#right,@s2) 		} 		Pe(#Init){ 			try{ 				#left?=.DataTable%str(true); 				(str)tmp="①太郎の値を持つキーを検索し、\n"; 				tmp+=" <<1でその親キーを参照\n"; 				tmp+=".DataTable%search('太郎')<<1\n"; 				tmp+="---------------------------------------\n"; 				tmp+=.DataTable%search('太郎')<<1%str(true); 				tmp+="\n"; 				tmp+="②100の値を持つキーを検索し、\n"; 				tmp+=" <<(2).nameで親キーにある.nameの値を参照\n"; 				tmp+=".DataTable%search(100)<<(2).name?\n"; 				tmp+="---------------------------------------\n"; 				tmp+=.DataTable%search(100)<<(2).name?; 				#right?=tmp; 			}catch((key)ex){ 				stop(ex.message?); 			} 		} 	} }  | 
					
実行結果