- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Virtools之VSL剖析字符串
1。新建一个Virtools工程然后创建一个Array(表类型),重命名为“Players”(不包含引号),在Array中加入三列,列的名字和类型如下:
o NickNames - String
o Age - Integer
o Score - Integer
2。在Level层创建一个示意性编辑脚本,加入一个“Run VSL”的BB到里边,通过VSL脚本管理器加入两个输入参数。重命名第一个输入参数为“date”,设置类型为“String”;重命名第二个输入参数为“array”,设置类型为“Array”。
3。切换到示意性编辑脚本,输入以下字符串(不包含引号)作为输入参数“date”的值,就是你刚才所创建的那个:
Eva,22,1024.
Jane,34, 544.
Pierre, 17, 5410.
John, 85,10.
你应该展开这个“date”参数(双击这个参数),方便输入数据。
这个意思是剖析字符串,将截取的信息copy到表Array中。这个练习需要的信息是名字,年龄和分数。字符串中的逗号和句号对于数据来说没有什么用,但是对分行和截取数据(也就是子串)十分方便。你将要使用StringTokenizer 类,它在VSL - SDK Binding Tables - Classes and Methods中列出。对一个字符串进行剖析和截取用,NextToken(str iPrevToken) 的方法是一个接一个的截取出来。
4。在代码编辑窗口中输入以下代码(不要输入中文部分):
void main()
{
// We clear all data in the array
//先清除表中原有的数据
array.Clear();
// We create the first tokenizer in order to
// get data line by line. The . separates lines.
//创建第一个tokenizer对象 以便截取行,这个.作为分行标志。
str tokenLine = null;
StringTokenizer tokenizerLine(data.CStr(), .);
int row = 0;
// Get new line
//得到新行
while (tokenLine = tokenizerLine.NextToken(tokenLine))
{
// For each line extracted, we add a row in the array
// 每截取一行数据,就在array表中增加一行,
array.AddRow();
// The second tokenizer works with the extracted line
// to extract the data on a word by word basis.
// The , separates words.
// 创建第二个tokenizer对象 以便截取出行中的每个单词,这个,作为单词截取标志
str tokenWord = null;
StringTokenizer tokenizerWord(tokenLine, ,);
int column = 0;
// Get new word
//得到新词。
while (tokenWord = tokenizerWord.NextToken(tokenWord))
{
// Insert word in the array
//将单词插入表中
array.SetElementStringValue(row, column, tokenWord);
文档评论(0)