プロダクト: | MicroStation | ||
バージョン: | CE update13 | ||
環境: | N/A | ||
エリア: | Programming | ||
サブエリア: | MDL |
1. .rファイルに次のようなリソース定義します:
StringList STRINGLIST_GratingParam =
{
4,
{
{ {1900, 6400, 2, 31}, "WB" },
{ {1900, 3200, 2, 31}, "WF" },
{ {1500, 6400, 2, 39}, "WD" },
{ {1500, 3200, 2, 39}, "WDF" },
{ {1900, 6400, 2, 31}, "WBA" },
{ {1900, 3200, 2, 31}, "WFA" },
}
};
2. cppファイルには、フィールド値を取得する方法をテスト関数getInfoFieldTestがあります。.
void getInfoFieldTest()
{
Int32 crossingBarSpacing = -1;
long index;
StringListP strListP = mdlStringList_loadResource(NULL, STRINGLIST_GratingParam);
if (strListP == NULL)
{
mdlDialog_dmsgsPrint(L"Can't find string list");
return;
}
if (mdlStringList_search(&index, strListP, L"WDF", NULL, 0, NULL) != SUCCESS)
{
mdlStringList_destroy(strListP);
mdlDialog_dmsgsPrint(L"Can't find \"WDF\" item in string list");
return;
}
StatusInt status;
crossingBarSpacing = mdlStringList_getInfoFieldInt32(strListP, index, 1, &status);
mdlStringList_destroy(strListP);
WPrintfString wStr(L"crossingBarSpacing = %d", crossingBarSpacing);
mdlDialog_dmsgsPrint(wStr);
}
3. この関数を実行すると、以下の出力が得られます。
crossingBarSpacing = 3200
Original Author: | Mikihiko Tabata |