做一个信号处理的东西。信号格式如下
信号 信号名{
0000120"string" # comment
002D0"string" # comment
006e0"string" # comment
}
转换规则:去掉信号,去掉信号名,去掉注释(#到换行)," "(字符串)内字符串转换为16进制,
经过转换,信号变为"0100000000000000001076000000C6868696E00"类似的格式。
现在要实现一个功能,给出转换后的位置(比如第2位),如何查找转换前(原信号)的位置。想了一下午了没有合适的办法,谁能给个算法,多谢。
信号 信号名{
0000120"string" # comment
002D0"string" # comment
006e0"string" # comment
}
转换规则:去掉信号,去掉信号名,去掉注释(#到换行)," "(字符串)内字符串转换为16进制,
经过转换,信号变为"0100000000000000001076000000C6868696E00"类似的格式。
现在要实现一个功能,给出转换后的位置(比如第2位),如何查找转换前(原信号)的位置。想了一下午了没有合适的办法,谁能给个算法,多谢。
拿上面的例子来说,转换是这样的
第一步,变成
0000120"string" # comment
002D0"string" # comment
006e0"string" # comment
第2步
0000120"string"002D0"string"006e0"string"
第3步0000120+string(16进制)+002D0+string(16进制)+。。
最后输出的数据是这种格式的:
0100000000000000001076000000C6868696E00(假数据)
这是转换的过程,我要做的是,给出转换后的位置,查找在
信号 信号名{
0000120"string" # comment
002D0"string" # comment
006e0"string" # comment
}
这个里面的位置。
这样说,OK了吧?
0000120"string"是10位,你就记录10
002D0"string"是20位,你就记录20
将这些位数保在一个数据结构中,当你去转换后的某一位时,直接根据前面保存的位数来计算,是处于第几个信号,不就OK啦?
002D0"string"是20位,你就记录20 我的意思是记录string转换后的位数
http://blog.csdn.net/bestseal/archive/2007/12/03/1913750.aspx