欢迎来到天天文库
浏览记录
ID:43985099
大小:41.50 KB
页数:7页
时间:2019-10-17
《Virtools之VSL剖析字符串》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、Io新建一个VirtoolsI程然后创建一个Array(表类型),重命名为“Players"(不包含引号),在Array中加入三列,列的名字和类型如下:oNickNames-StringoAge-IntegeroScore・Integer2。在Level层创建一个示意性编辑脚本,加入一个“RunVSL”的BB到里边,通过VSL脚本管理器加入两个输入参数。重命名第一个输入参数为"date",设置类型为“String”;重命名第二个输入参数为“airay”,设置类型为“Army”。3o切换到示意性编辑脚本,输入以下字符串(不包含引号)作为输入参数“date”的值,就是你刚才所创建的那个:
2、”Eva,22,1024.Jane,34,544.Pierre,17,5410.John,85J0.n你应该展开这个“date”参数(双击这个参数),方便输入数据。这个意思是剖析字符串,将截取的信息copy到表Array屮。这个练习需要的信息是名字,年龄和分数。字符串中的逗号和句号对于数据来说没有什么用,但是对分行和截取数据(也就是子串)十分方便。你将要使用StringTokenizer类,它在VSL<-SDKBindingTables-ClassesandMethods中列出。对一个字符串进行剖析和截取用,“NextToken(sti*iPrevToken)”的方法是一个接一个的截
3、取出来。4o在代码编辑窗口中输入以下代码(不要输入中文部分):voidmain(){//Weclearalldatainthearray〃先清除表中原有的数据array.Clear();//Wecreatethefirsttokenizerinorderto//getdatalinebyline・Then.nseparateslines・〃创建第一个tokenizer对象以便截取行,这个…作为分行标志。strtokenLine=null;StringTokenizertokenizerLine(data.CStr(),H.H);introw=0;//Getnewline〃得到新行wh
4、ile(tokenLine=tokenizerLine.NextToken(tokenLine))//Foreachlineextracted,weaddarowinthearray〃每截取一行数据,就在array表屮增加一行,array.AddRow();//Thesecondtokenizerworkswiththeextractedline//toextractthedataonawordbywordbasis・//Theseparateswords・〃创建第二个tokenizer对象以便截取11!行中的每个单词,这个“,“作为单词截取标志strtokenWord=null;S
5、tringTokenizertokenizerWord(tokenLine,T);intcolumn=0;//Getnewword〃得到新词。while(tokenWord=tokenizerWord.NextToken(tokenWord))//Insertwordinthearray〃将单词插入表屮array.SetElementStringValue(row,column,tokenWord);++column;++row;5o编译这个VSL脚本程序并运行。查看表中的内容会是如下所示:你会发现在截取名字nJane'PierreMandnJohnu并不完善,前边带有回车符(这
6、个回车符以一个小方块显示)。为了去掉这个多余的字符,你需要加入一个移除冋车符的函数到脚本程序中,以下代码将完成这个任务:voidRemoveFirstReturnCharacter(Stringstr2clear){//Iffirstcharacterisequaltoreturn...//假如第一个字符等于回车符讦(str2clear[0]二='')//...cropstringfromsecondcharactertotheend〃截取从第二个到最后一个的字符str2clear=str2clea匸Crop(l,str2clear.Length()・l);60修改你的代码,包括
7、以上函数,代码如下:voidmain()//Weclearalldatainthearray〃先清除表中原有的数据array.Clear();//Wecreatethefirsttokenizerinorderto//getdatalinebyline〃创建第一个tokenizer对彖以便截取行,这个”.”作为分行标志。strtokenLine=null;StringTokenizertokenizerLine(data.CStr(),H.H);intro
此文档下载收益归作者所有