谢谢你对本公司的支持,第2部分的04是指短信的类型吧。 然后网上也有这个问题出现过,你可以参考下下面的这个文章: http://blog.csdn.net/zeeeitch/article/details/7663437 |
本帖最后由 x5zj 于 2014-7-18 11:24 编辑 很感谢您的回答,我测试过(今天买贵单位一台串口猫,让我同事已下单),您也可以测试一下。 我需要将猫中所有短信提取出来,示例(帮忙分析一下,困扰我一段时间了) |1#04#13573370000#短信第一条!#11-01-11 20:08:10|2#04#13673370000#短信第2条!#11-01-11 20:08:10|4#04#13873370000#短信第3条!#11-01-11 22:08:10 竖线后第1部分(#之前)是短信的序号 第2部分:不知道什么意思(不同机器不一样) 第3部分:发送者的手机号 第4部分:短信内容 第5部分:发送的时间 关键第4部分,收到的短信如果手机发的一般不会有太大问题,如果电脑发的,短信内容带#和| 问题就来了,#的问题处理一般还不大可以处理。就是| 的问题,难处理。 短信中如果有| 无法正常分割短信了。每个|就单条完整的短信。我想过滤处理存到数据库。 遇到|就无法完成。我用VB和C#都没处理好,如果可以的话,请用C#帮忙处理|的问题。请您指教!谢谢 新收到的短信可能会“补充”空缺的最小的那个序号。上示例,再收到的短信应该就是存入第3条了。因为删除的是指定序号,应该也不会输入啥号都提示成功,不严谨吧。不再纠结。 TIP: Sms_Receive("4", out ReceiveSmsStr) == 1 对ReceiveSmsStr的内容进行分割处理存(每条短信分5部分即可) |
x5zj 发表于 2014-6-12 13:56 1、你卡内的短信是不是没有删除完全,或者没接收玩,当你如果没接收完或者没删除完,你输入什么序列号都可以删除成功,你删除一个,下面新的短信就会顶上来顶替刚删除的位置。你可以用超级终端用“at+cmgd=1,4”把所有短信删除完再试试,用多几次这个指令,有时你删除完了50条它有会显示出你50条之外的短信。反正你删除都没有短信为止吧。 2、至于你这个“|”你不用担心会混淆,程序在接收短信时会自动吧特殊的符号进行编码转换成其他的,这个符号程序会转成“←@”呈现给你的。上海赛迅在编写这个程序时已经给你想好这些的了。 |
2个问题一直困扰:关于二次开发sms.dll的开发问题 1、删除短信函数,你无论输入什么数字都提示成功?是不是有问题? 2、短信内容中如果有|符号,如何分离出此短信内容? |