快速业务通道

Quartett!的二进制脚本分析 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-14
ze 160. lastLineNum = lineNum; 161. lastTokenType = tokenType; 162. } // for 163. } 164. } 165. } 166. 167. static bool Equals( byte[ ] a, byte[ ] b ) { 168. int len = a.Length; 169. if ( len != b.Length ) return false; 170. for ( int i = 0; i < len; i++ ) { 171. if ( a[ i ] != b[ i ] ) return false; 172. } 173. return true; 174. } 175. 176. static string ReadCString( BinaryReader reader ) { 177. StringBuilder builder = new StringBuilder( ); 178. char c = ''\0''; 179. 180. while ( ( c = reader.ReadChar( ) ) != ''\0'' ) { 181. builder.Append( c ); 182. } 183. 184. return builder.ToString( ); 185. } 186. } 187.}

Quartett!的二进制脚本分析(5)

时间:2011-10-28 javaeye RednaxelaFX

中间有些代码是为了插入缩进的,忽略那部分吧……

得到的脚本看起来像是这样:

Java代码

1.2.3.4.5.6.7.8.9.10.11.#base_path 

"../"12.13.14.15.16.17.18.19.20.21.#includ

e 

"Script/BaseInstruction.txt"22.23.24.25.26.27.28.2

9.30.31.motion Main (  )  

中间是有很多空行没错。那些原本应该是有注释的地方,或者本身就是空行(为了让代码好看)。这 里我只是把原始脚本的状态尽量复原了出来而已。

暂时来说,这样就够用了。这个脚本处理已经让我们能做很多事。要进一步做的话,我可以把文法分 析也做出来,方便对脚本更仔细的分析。但这两天肯定是没时间做那种事情咯……

Until then...

P.S. 上述代码皆以BSD许可证的形式发布。请有兴趣的人在遵循BSD许可证的前提下自由使用这些代码 。

P.S.S. 其实上面代码值得吐槽的地方N多。例如说我完全没使用try-catch语句来处理可能出现的异常 ,又例如我在第一份代码里把一个Queue转变成数组再做相等性比较(极其恶心,本来自己写个循环数组 就解决了)。……这些都是所谓的“原型代码”,目标是尽可能快的写出代码来验证自己的一些设想是否 正确。偷懒不加异常处理、宁可别扭的使用标准库里的容器也不自己封装一个,都是出于同一原因。看倌 们请多多包涵这些地方 XD

P.S.S.S. 唉,不过我偷懒也真是过分了。后一份代码里居然没把BinaryWriter改回用StreamWriter… …

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号