求助:解析变长字符串,提取其中有用内容,

galaxiashe 2003-06-05 01:53:48
我正在做一个项目,需要将一个字符串,是变长的,但其中有一个字节的内容为字节长度,由0x1002将字符串分成几部分,我需要将其分开来,如:

原字符串(16进制表示):

10 01 00 11 23 ED 34 10 02 01 00 04 12 42 E2 F2 10 02 02 00 04 12 42 E2 F2 10 02 03 00 A1 23 A1 B2 CD 10 02 03 00 A1 23 A1 B2 CD CA 12 10 03

提取为:
01 00 04 12 42 E2 F2
02 00 04 12 42 E2 F2
03 00 A1 23 A1 B2 CD
03 00 A1 23 A1 B2 CD
四部分。
...全文
40 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
galaxiashe 2003-06-05
  • 打赏
  • 举报
回复
我的字符串是每个字节存储一个16进制码,如0x10, 0x00等,不是ANSI字符
pp616 2003-06-05
  • 打赏
  • 举报
回复
建议用strtok函数先将长字符串拆分。然后再做分析。
对于字符串拆分的方法。这里有很经典的帖子,可提供很好的参考
http://search.csdn.net/expert/topic/55/5501/2002/4/19/659479.htm
http://search.csdn.net/expert/topic/56/5601/2002/4/22/666180.htm
zhangyuzhou 2003-06-05
  • 打赏
  • 举报
回复
AnsiString的AnsiPos和SubString结合起来用
runnerrunning 2003-06-05
  • 打赏
  • 举报
回复
或者
int pos1,pos2

pos1 = ss.pos("01 00 04 12 42 E2 F2");
然后SubString
runnerrunning 2003-06-05
  • 打赏
  • 举报
回复
String ss = "10 01 00 11 23 ED 34 10 02 01 00 04 12 42 E2 F2 10 02 02 00 04 12 42 E2 F2 10 02 03 00 A1 23 A1 B2 CD 10 02 03 00 A1 23 A1 B2 CD CA 12 10 03"

String s1,s2,s3,s4

s1 = ss.SubString(18,20)
//substring(startpos,length)

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧