一半君的总结纸

听话只听一半君

#109 如何获取或替换一个数组的 optionVar里的一个值?

optionVar command 可以用来把多个值保存在一个optionVar里. 但是读取单个值的功能比较局限.

如果想访问保存在 optionVar 的第n个值,你需要首先得到整个 array, 然后再去自己找到你想要的那个值:

<br />// 想查询的值的index.<br />//<br />int $index = 3;<br /><br />// 指定的 index 处的值.<br />//<br />string $value = "";<br /><br />if ( $index &gt;= 0 )<br />{<br /><%%KEEPWHITESPACE%%>  if ( `optionVar -exists stringArrayOptionVar` )<br /><%%KEEPWHITESPACE%%>  {<br /><%%KEEPWHITESPACE%%>    // 查询整个 array.<br /><%%KEEPWHITESPACE%%>    //<br /><%%KEEPWHITESPACE%%>    string $vars[] = `optionVar -q stringArrayOptionVar`;<br /><br /><%%KEEPWHITESPACE%%>    // 如果index存在, 把index对应的值赋予结果.<br /><%%KEEPWHITESPACE%%>    //<br /><%%KEEPWHITESPACE%%>    if ( $index &lt; `size $vars` )<br /><%%KEEPWHITESPACE%%>    {<br /><%%KEEPWHITESPACE%%>      $value = $vars[$index];<br /><%%KEEPWHITESPACE%%>    }<br /><%%KEEPWHITESPACE%%>  }<br />}<br />

替换或者插入第n个值都需要替换整个 optionVar array:

<br />// 想assign的元素的 index .<br />//<br />int $index = 7;<br /><br />if ( $index &gt;= 0 )<br />{<br /><%%KEEPWHITESPACE%%>  // 得到optionVar array的值<br /><%%KEEPWHITESPACE%%>  //<br /><%%KEEPWHITESPACE%%>  string $vars[];<br /><br /><%%KEEPWHITESPACE%%>  if ( `optionVar -exists stringArrayOptionVar` )<br /><%%KEEPWHITESPACE%%>  {<br /><%%KEEPWHITESPACE%%>    $vars = `optionVar -q stringArrayOptionVar`;<br /><%%KEEPWHITESPACE%%>  }  <br /><br /><%%KEEPWHITESPACE%%>  // 只允许替换已经存在的index;<br /><%%KEEPWHITESPACE%%>  // 如果想插入新值,把下面两行删掉.<br /><%%KEEPWHITESPACE%%>  //<br /><%%KEEPWHITESPACE%%>  if ( $index &lt; `size $vars` )<br /><%%KEEPWHITESPACE%%>  {<br /><%%KEEPWHITESPACE%%>    $vars[$index] = "value";<br /><%%KEEPWHITESPACE%%>  }  <br /><br /><%%KEEPWHITESPACE%%>  // 首先必须清空整个 array.<br /><%%KEEPWHITESPACE%%>  //<br /><%%KEEPWHITESPACE%%>  optionVar -clearArray stringArrayOptionVar;<br /><br /><%%KEEPWHITESPACE%%>  // …然后插入值 重新创建 optionVar.<br /><%%KEEPWHITESPACE%%>  //<br /><%%KEEPWHITESPACE%%>  for ( $item in $vars )<br /><%%KEEPWHITESPACE%%>  {<br /><%%KEEPWHITESPACE%%>    optionVar -sva stringArrayOptionVar $item;<br /><%%KEEPWHITESPACE%%>  }<br />}<br />

 

Related How-To’s

02 Apr 2006

Advertisements

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s

%d 博主赞过: