设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2112|回复: 5
打印 上一主题 下一主题

[窗体] 新开一贴:怎样把收到的多条短信按每条一行写入文本框中?

[复制链接]
跳转到指定楼层
1#
发表于 2012-7-27 17:29:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 bjcompass 于 2012-7-27 17:32 编辑

听todaynew老师的建议,新开一贴,继续求教:
按yehf网友例子学做一窗体,窗体中有一个Microsoft Web Browser控件W1、一个文本框text1和一个命令按钮Command1。代码如下:
Private Sub Command1_Click()
Me.Text1 = Me.W1.Document.body.innertext
End Sub

Private Sub Form_Load()
Me.W1.Navigate "http://inolink.com/ws/Get.aspx?CorpID=******&Pwd=******"  '*号代表短信平台的帐号和密码.
End Sub
       现在已经达到效果,窗体加载后在窗体中的控件W1中接收到不确定数量的回复短信,每条短信都是括号中的格式 ( ||回复手机号码#回复内容#回复的时间# ) 但是 每条短信之间不分行且没有间隔。点击命令按钮这些短信写入到text1中,仍然不分行,难以阅读。
      我现在采取的办法是设置字符串Dx=Me.W1.Document.body.innertext  ,然后用Replace命令把Dx中的“||”替换成回车符vbcrlf,然后把DX写入Text1。这样虽然可以实现每条短信一行了,但仍然存在2个问题:
      1、因为每条短信的内容长短不一,内容后面紧跟的回复i时间就不能上下对齐,不整齐美观。
      2、因为平台短信只能接收一次,如果把窗体关闭,再打开就收不到已经看过的短信了。
请问各位老师:1、分行的办法是否合理,还有其他更好的办法吗?2、是否可以把短信保存到一个表或者一个txt文本中?求代码!


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2012-7-28 03:39:06 | 只看该作者
考虑用Split函数来进行分割,大体代码如下(剩下的修改工作由你自己完成啦):
  1. Sub test()
  2. s = "137****6214#我是Roych#4:30#"
  3. '按固定格式分成字符串数组。
  4. p = Split(s, "#")
  5. For i = 0 To UBound(p) - 1
  6. '按3取模。
  7.     Select Case (UBound(p) - 1) Mod 3
  8.         Case 0
  9.         Debug.Print "回复手机号码:" & p(i)
  10.         Case 1
  11.         Debug.Print "回复内容:" & p(i)
  12.         Case 2
  13.         Debug.Print "回复时间:" & p(i)
  14.     End Select
  15. Next
  16. End Sub
复制代码
个人建议建立起一张表,将上面的代码稍稍改进一下,以ADO的形式写入,比较便于数据的存取。
3#
 楼主| 发表于 2012-7-28 13:18:39 | 只看该作者
本帖最后由 bjcompass 于 2012-7-29 07:44 编辑

谢谢roych版主
      实际情况是接收到的短信可能0条或几条或几十条不固定,假如收到三条短信内容就是括号里面的形式: ( ||手机号码#回复内容#回复的日期时间#||手机号码#回复内容#回复的日期时间#||手机号码#回复内容#回复的日期时间# )。各条短信之间没有空格且不分行。
      我把接受内容中的“||”置换为回车换行符,已经可以按每条一行写入文本框了。但是因为手机号码和日期时间格式长度固定而回复内容长度不固定,所以造成写入文本框后每条短信的“回复日期时间”部分不能上下对齐,可读性差。
      我希望达到的效果是,给“回复内容”部分固定一定数量的字符长度,比如40个字符。即使回复内容只有一个字,后面也用空白补齐。这样后面的日期时间就上下对齐了。如果能写入到一个txt文本文件或保存到表里更好。
     
     
     
4#
发表于 2012-7-30 01:18:12 | 只看该作者
本帖最后由 roych 于 2012-7-30 01:20 编辑

以下是强制换行的代码(没有附件,只好一丁点一丁点地给出代码了):
  1. Sub Test2()
  2. txt="QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm"
  3. For j = 0 To Len(txt) \ 20
  4.     s = s & Mid(txt, j * 20 + 1, 20) & Chr(13) & Chr(10)
  5. Next j
  6. debug.Print s
  7. End Sub
复制代码
另外,自动横高部分可参考以下帖子:
http://www.office-cn.net/thread-106052-1-1.html
5#
 楼主| 发表于 2012-7-31 11:59:45 | 只看该作者
本帖最后由 bjcompass 于 2012-7-31 12:06 编辑

没有例子很难表述,特制作实例上传。
如例:打开“短信操作”窗体,如果填写短信帐号和密码后点击“接收”按钮,就可以在“Zshowmail”窗体接收短信。我希望在“Zshowmail”窗体的text4显示的短信格式如下:即不管短信内容长短。都能使每条短信的日期时间部分对齐。

13021123456--我们已经完成了所有的工作,大家尽情的享受愉快的假期。--20120605 083012--
14232345678--信息已经收到。                                                                  --20120506 083134--
13126666666--祝贺少年管弦乐团取得优异成绩感谢辅导教师的努力。       --20120605 093012--
13888888888--近期暴雨频繁,请各位员工出行注意安全。                        --20120605 093412--

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
6#
 楼主| 发表于 2012-8-5 16:57:07 | 只看该作者
感谢roych版主,您最后给的那个实例完美的达到我的预期,非常有用,收藏了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-25 08:20 , Processed in 0.184310 second(s), 30 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表