HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2009
0830
レノス配列variantの要素が取り出せない2解決


レノス

リンク

2009/8/30(Sun) 22:44:11|NO.27461

辞書オブジェクト Scripting.Dictionary の Keys メソッドで、
登録されているすべてのキー (文字列) の配列を取得することができるのですが、
それの要素を取り出すことができずに、困っています。

キーの配列 keylist で keylist("value", 添字) とすると、
「変数型の変換に失敗しました」(err 37)が発生してしまい、代入もできません。

キーを取り出すにはどうすればよいのでしょうか。よろしければご教授お願いいたします。


newcom dic, "Scripting.Dictionary" if ( varuse(dic) == 0 ) { dialog "Scripting.Dictionary の初期化に失敗" : end } // 要素を追加 dic->"Add" "hoge", "piyo" dic->"Add" "foo", "bar" // 要素が追加されていることを確認 mes "hoge : "+ dic("Item", "hoge") mes "foo : "+ dic("Item", "foo") // キーの配列を得る keylist = dic("Keys") // 配列になっていることを確認 mes keylist("isarray") ; mes keylist("arraycount") ; mes keylist("arraylbound") ; mes keylist("arrayubound") // キーを取得 key = keylist("value", 0) // ! ダメ「変数型の変換に失敗」 mes key("value") stop



この記事に返信する


pizza

リンク

2009/8/31(Mon) 03:53:26|NO.27465

ヘルプみるとsarrayconvで出来そうだけどエラーばかり出ますね・・・。


#uselib "oleaut32.dll" #func SafeArrayGetElement "SafeArrayGetElement" int, int, int newcom dic, "Scripting.Dictionary" if ( varuse(dic) == 0 ) { dialog "Scripting.Dictionary の初期化に失敗" : end } // 要素を追加 dic->"Add" "hoge", "piyo" dic->"Add" "foo", "bar" // キーの配列を得る keylist = dic("Keys") // アイテムの配列 itemlist = dic("Items") // キーを取得 dimtype v, vartype("variant"), 1 // 取得用variant repeat keylist("arraycount") index = cnt SafeArrayGetElement keylist("arrayptr"), varptr(index), varptr(v) s = ""+index+":"+v("value") SafeArrayGetElement itemlist("arrayptr"), varptr(index), varptr(v) s += " = " + v("value") mes s loop stop



レノス

リンク

2009/8/31(Mon) 20:03:37|NO.27476

ありがとうございます。



ONION software Copyright 1997-2023(c) All rights reserved.