标题:求VB开发思路,希望各自发表见解,谢谢
只看楼主
yuma
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:银河系
等 级:贵宾
威 望:33
帖 子:1883
专家分:2904
注 册:2009-12-22
结帖率:89.13%
 问题点数:0 回复次数:4 
求VB开发思路,希望各自发表见解,谢谢
下面有一面段文字

让程序检测这段文字中哪些是单字,哪些是词语。并依次输出

另外移动资费越下降,你上网的流量越大。2018年2月份我们每个用户的上网流量是多少?2.6个G,是2017年的同期的150%,2018年2月份的流量是2017年2月份流量的1.5倍,翻上去了,所以你越用得容易,你的流量越高,你的资费就越高。当然总理还是希望进一步的提速降费


程序依次输出:
另外
移动
资费

下降


上网

.....
搜索更多相关主题的帖子: 流量 自发 月份 VB 上网 
2021-08-25 19:39
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4912
专家分:29900
注 册:2008-10-15
得分:0 
首先你得有一个词语库。
词语库分几个字的,如4字,3字,2字的。

1、取4字,与词语库里4字的比较,找到相同,词语。没找到继续
2、取3字,比较,找到则词语,否则继续
3、取2字,比较,找到则词语,否则是单字。


授人于鱼,不如授人于渔
早已停用QQ了
2021-08-25 21:13
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4912
专家分:29900
注 册:2008-10-15
得分:0 
程序代码:
Option Explicit

Const 词表文件 = "d:\词表.txt"

Private Type 词结构
    Count  As Long          '该长度的词的个数
    strT() As String        '
End Type

Dim cb() As 词结构          '词表数组
Dim CbCount As Long         '词表有几个数组

Private Sub Command1_Click()
Call 读词表(词表文件)

Dim s As String, s1 As String

Dim i As Long, o As Long, L As Long
Dim FYN As Boolean

s1 = Text1.text
Text2.text = ""

    L = Len(s1)

Do
    '查找数字
    s = Left(s1, 1)
    If Asc(s) > 0 Then          '非汉字
        For i = 2 To L
            s = Mid(s1, i, 1)
            If Asc(s) < 0 Then Exit For
        Next i
    
        s = Left(s1, i - 1)
        s1 = Mid(s1, i)         '保留剩余部分,如果s用掉了全部,会变成只保留到空
        Text2.text = Text2.text & vbCrLf & s
        L = Len(s1)
    End If
    
    '-------找词--------
    For i = CbCount To 2 Step -1            '从最大的词表比较起
        If cb(i).Count > 0 And L >= i Then  '加一个限制长度,减少运算量
            s = Left(s1, i)
            FYN = False
            For o = 1 To cb(i).Count
                If s = cb(i).strT(o) Then   '查找
                    FYN = True              '设置找到
                    Exit For                '因为有二层循环,所以不能直接处理,一层一层的跳
                End If
            Next o
            If FYN Then         '找到
                s1 = Mid(s1, i + 1)
                Text2.text = Text2.text & vbCrLf & s
                s = ""      '置空,用于判断是否是单字
                Exit For
            End If
        End If
    Next i
    
    If Len(s) > 0 Then      '未查找到,单字
        s = Left(s1, 1)
        s1 = Mid(s1, 2)
        Text2.text = Text2.text & vbCrLf & s
    End If
    
    L = Len(s1)
Loop While L > 0



End Sub

Private Sub Form_Load()
Text1.text = "另外移动资费越下降,你上网的流量越大。2018年2月份我们每个用户的上网流量是多少?2.6个G,是2017年的同期的150%,2018年2月份的流量是2017年2月份流量的1.5倍,翻上去了,所以你越用得容易,你的流量越高,你的资费就越高。当然总理还是希望进一步的提速降费"

End Sub


Private Sub 读词表(filename As String)
CbCount = 0
Dim s As String
Dim f() As String
Dim i As Long, o As Long


s = 打开文件(filename)
f = Split(s, vbCrLf)        '分解成每一行

For i = 0 To UBound(f)
    o = Len(f(i))           '取长度
    If o > 1 Then           '长度小于2的统统忽略,这种为空行或单字
        If CbCount < o Then         '如果没这个长度
            CbCount = o             '设置这个长度
            ReDim Preserve cb(CbCount)  '重定义数组
            With cb(CbCount)        '初始化,防止出错
                .Count = 0
                ReDim .strT(.Count)
            End With
        End If
        With cb(o)                      '
            .Count = .Count + 1             '元素+1
            ReDim Preserve .strT(.Count)    '重定义数组
            .strT(.Count) = f(i)            '保存
        End With
    End If
Next i

End Sub


Public Function 打开文件(cs As String) As String
'快速打开文件
Dim fj As Long

If Dir(cs) <> "" Then           '文件存在
    fj = FreeFile()             '产生下一文件号
    Open cs For Binary As #fj       '打开文件
    
        '直接读整个文件的所有的内容,按字节读,并转换为 Unicode 的VB默认字符串类型
        打开文件 = StrConv(InputB$(LOF(fj), #fj), vbUnicode)
    Close #fj
Else
    MsgBox cs & vbCrLf & "文件不存在!", vbCritical, "打开文件"       '提示文件不存在
End If
End Function


d:\词表.txt 的内容
当然
多少
还是
进一步
另外
流量
每个
你的
容易
上去
上网
所以
提速降费
同期
我们
希望
下降
移动
用户
月份
资费
总理


运行结果
另外
移动
资费

下降


上网

流量



2018

2
月份
我们
每个
用户

上网
流量

多少

2.6

G


2017


同期

150%

2018

2
月份

流量

2017

2
月份
流量

1.5



上去


所以




容易

你的
流量



你的
资费




当然
总理
还是
希望
进一步

提速降费

授人于鱼,不如授人于渔
早已停用QQ了
2021-08-25 23:10
雷厉风行2021
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2021-8-17
得分:0 
刚入门小白,好像能用在语音小说的什么地方?
2021-08-28 19:50
yuma
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:银河系
等 级:贵宾
威 望:33
帖 子:1883
专家分:2904
注 册:2009-12-22
得分:0 
回复 3楼 风吹过b
光提取其中的词语,应该怎么改?

心生万象,万象皆程序!
本人计算机知识网:http://bbs.为防伸手党,本站已停止会员注册。
2021-09-06 19:56



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-506650-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.092558 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved