点击取词并排列

liuyali16888 2010-02-25 05:18:48
像这样的颠倒的句子,我希望通过点击自动取词,并按照点击顺序在下一行排列好:
如: is tom name my
先点击: my 。。。。最后点击tom
结果得到:my name is tom

希望获得vb源码。谢谢各位。
...全文
80 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuyali16888 2010-02-26
  • 打赏
  • 举报
回复
king和sky的源码效果完全一样。谢谢两位了。sky的源码更简洁。
liuyali16888 2010-02-26
  • 打赏
  • 举报
回复
先谢谢各位高手关照及帮助,先解释一下,
1.一个乱句is tom name my
2. 按顺序点击my, name, is, tom
3.所点击的击词,会按点击顺序,在下一行,或textbox中排列好。

需要这样一个源码。

先谢谢king和sky。 我先调试一下源码。没问题就结贴。多谢了。
skylinecn 2010-02-26
  • 打赏
  • 举报
回复
引用 9 楼 king06 的回复:
......
估计给分下置一行了,呵呵
king06 2010-02-26
  • 打赏
  • 举报
回复
......
liuyali16888 2010-02-26
  • 打赏
  • 举报
回复
另一个贴子:http://topic.csdn.net/u/20100221/01/c68251f9-ee84-4165-8639-d7c1a413fddd.html
只是把您的源码从取英文单词改为汉字。
liuyali16888 2010-02-26
  • 打赏
  • 举报
回复
真晕啊,sky,非常非常抱歉,以后要小心了。麻烦您去我另外一个帖子,把分补给您。
能否把去英文单词改为取汉字源码呢?多谢啊。
liuyali16888 2010-02-26
  • 打赏
  • 举报
回复
SKY和king两位高手,我还有个帖子其实是和这个帖子完全一样的,还没结贴:
楼主发表于:2010-02-21 01:36:28如何用vb点击取词,并把所取的词按取词顺序放入文本框,求源码

能否麻烦两位给我一个取汉字的源码,其他都一样,先谢谢两位,发到那个帖子上,我也可以结贴了。多谢多谢。
skylinecn 2010-02-25
  • 打赏
  • 举报
回复
5楼代码需要修改一下
Private Sub Text1_Click()
Dim s$, ss$, n&, s1$, s2$
s = Form1.Text1.Text
n = Form1.Text1.SelStart
s1 = Left(s, n): s2 = Mid(s, n + 1)
ss = Mid(s1, InStrRev(s1, Space(1)) + 1) & Left(s2, IIf(InStr(s2, Space(1)) = 0, Len(s2), InStr(s2, Space(1)) - 1))
Form1.Text2.Text = Form1.Text2.Text & ss & Space(1)
End Sub
skylinecn 2010-02-25
  • 打赏
  • 举报
回复
我也班门弄斧一下,做得不好请指点。
Text1放待选词,Text2输出。
Private Sub Text1_Click()
Dim s$, ss$, n&, s1$, s2$
s = Form1.Text1.Text
n = Form1.Text1.SelStart
s1 = Left(s, n): s2 = Mid(s, n + 1)
ss = Mid(s1, InStrRev(s1, Space(1)) + 1) & Left(s2, InStr(s2, Space(1)) - 1)
Form1.Text2.Text = Form1.Text2.Text & ss & Space(1)
End Sub
贝隆 2010-02-25
  • 打赏
  • 举报
回复
看了几遍,还是没有看懂,关注
白云飘飘飘 2010-02-25
  • 打赏
  • 举报
回复
假如句子放在文本框里,处理click事件,在事件过程用根据文本框的selstart属性取得光标的位置,就可以得到这个词了
king06 2010-02-25
  • 打赏
  • 举报
回复
放两个textbox在窗体上,点击text1中的字符 is tom name my
Private Sub Text1_Click()
Dim posR As Integer, posL As Integer
Dim strTmp As String

If Text1.SelStart = 0 Then Text1.SelStart = 1
posR = Text1.SelStart + 1
posL = Text1.SelStart

Do Until Mid(Text1.Text, posR, 1) = " "
strTmp = strTmp & Mid(Text1.Text, posR, 1)
posR = posR + 1
If posR > Len(Text1.Text) Then Exit Do
Loop

If posL > 0 Then
Do Until Mid(Text1.Text, posL, 1) = " "
If posL > 0 Then
strTmp = Mid(Text1.Text, posL, 1) & strTmp
posL = posL - 1
End If
If posL = 0 Then Exit Do
Loop
End If

Text2.Text = Text2.Text & IIf(Text2.Text = "", strTmp, " " & strTmp)
End Sub
cqq_chen 2010-02-25
  • 打赏
  • 举报
回复
说真的,没看懂你的问题!
如果是用每个词都点一次,再排列的话,是不是不需要人回答呢?

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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