| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1698 人关注过本帖
标题:没有实现换行字数的统计,只能在本行计算字数,加了换行的字数,就不行了
只看楼主 加入收藏
lijun337
Rank: 1
等 级:新手上路
帖 子:379
专家分:5
注 册:2006-4-12
结帖率:84.62%
收藏
 问题点数:0 回复次数:16 
没有实现换行字数的统计,只能在本行计算字数,加了换行的字数,就不行了

没有实现换行字数的统计,只能在本行计算字数,加了换行的字数,就不行了!!!!

请看代码:

Private Sub Text1_Change()
Dim str As String
Dim T As Integer
Dim tx As Integer
T = 0

For tx = 0 To Len(Text1.Text)
Text1.SelStart = tx
Text1.SelLength = 1
str = Text1.SelText
If str = "," Or str = "。" Or str = "!" Or str = "《" Or str = "》" Or str = "“" Or str = "”" Or str = ":" Or str = "(" Or str = ")" Or str = "(" Or str = ")" Or str = ";" Or str = "、" Or str = "?" Or str = "," Or str = "." Or str = "0" Or str = "1" Or str = "2" Or str = "3" Or str = "4" Or str = "5" Or str = "6" Or str = "7" Or str = "8" Or str = "9" Then T = T + 1
Next tx
T = T / 2

If Text1.Text <> "" Then
Text2.Text = Len(Replace(Text1.Text, " ", "")) - T

请教,谢谢!

搜索更多相关主题的帖子: 字数 本行 统计 
2006-05-14 22:11
lijun337
Rank: 1
等 级:新手上路
帖 子:379
专家分:5
注 册:2006-4-12
收藏
得分:0 
我将TEXT1里的文字按回车键另起一行,字数增加2,再加一行,字数又增加2
好象换行字数+2???
难道代码哪个地方还少了什么?
2006-05-14 22:21
xinfresh
Rank: 4
等 级:贵宾
威 望:13
帖 子:594
专家分:0
注 册:2006-1-13
收藏
得分:0 

你就是想计算文本当中的所有字母和汉字的个数是不是啊?


E-mail:xinfresh@QQ:383094053校内:http:///getuser.do?id=234719042
2006-05-14 22:27
xinfresh
Rank: 4
等 级:贵宾
威 望:13
帖 子:594
专家分:0
注 册:2006-1-13
收藏
得分:0 

设n为某个字符的ASCII码
如果n在65-90之间,该字符为A-Z
如果n在97-122之间,该字符为a-z
如果n小于0,则很有可能为汉字.之所以说很有可能,是因为汉字的asc都为负数,但负数不一定都是汉字
所以你可以写:
n=asc("某字符")
If (n>=65 And n<=90) Or (n>=97 And n<=122) Or n<0 Then
'这个字符是符合你要求的
End If


E-mail:xinfresh@QQ:383094053校内:http:///getuser.do?id=234719042
2006-05-14 22:59
xinfresh
Rank: 4
等 级:贵宾
威 望:13
帖 子:594
专家分:0
注 册:2006-1-13
收藏
得分:0 
还有,你若是想取一个字符,不用这样,有点麻烦:
Text1.SelStart = tx
Text1.SelLength = 1
str = Text1.SelText

直接写:
str=Mid(Text1.Text,tx,1)
就可以了

[此贴子已经被作者于2006-5-14 23:00:57编辑过]


E-mail:xinfresh@QQ:383094053校内:http:///getuser.do?id=234719042
2006-05-14 23:00
lijun337
Rank: 1
等 级:新手上路
帖 子:379
专家分:5
注 册:2006-4-12
收藏
得分:0 

我只是想统计字数,符号(含逗号、句号或者数字)算汉字字数的一半,然后除以时间,计算打字速度!
但我那代码只能计算比较少的文本字数,
而且换行的文字字数自动加2!

字数比较多的大文本文件的字数,总是发生死机事件,光标不断地在TEXT里来回晃动,左右上下控条左右上下来回不断摆动!
好象死机了!
只好按CTRL+DELE+ALT关闭该程序!

程序还是有问题!

2006-05-15 13:34
xinfresh
Rank: 4
等 级:贵宾
威 望:13
帖 子:594
专家分:0
注 册:2006-1-13
收藏
得分:0 

你就是想算算文本里有多少全角字符呗?
汉字算一个,英文数字算半个(或者汉字算两个,英文数字算一个)
但是不算换行回车是不是?


E-mail:xinfresh@QQ:383094053校内:http:///getuser.do?id=234719042
2006-05-15 14:46
lijun337
Rank: 1
等 级:新手上路
帖 子:379
专家分:5
注 册:2006-4-12
收藏
得分:0 

是的!
哦!回车键也算字符?
在“If str = ","。。。。。。Then T = T + 1”再添加个“Or str = "CRTL" ”么?
试了下,不行?
怎么写?
教我!
谢谢!

2006-05-15 22:47
xinfresh
Rank: 4
等 级:贵宾
威 望:13
帖 子:594
专家分:0
注 册:2006-1-13
收藏
得分:0 

Dim s As String
s=Text1.Text
Dim b As String
b=StrConv(s,vbFromUnicode)
'由于VB默认是把字符都以Unicode的格式处理的(我自己理解的,至少是这种效果),上面这一句把 Unicode的字符串转成了ASCII的字符串,也就是说把全角的转成了半角的
Dim Lens As Integer
Lens=LenB(b)
'LenB是一个求半角字符串长度的函数,这就可以了
至少哪些字符串不取,你可以统计一下无需计算在内的字符的数目减掉就好了


E-mail:xinfresh@QQ:383094053校内:http:///getuser.do?id=234719042
2006-05-16 15:30
lijun337
Rank: 1
等 级:新手上路
帖 子:379
专家分:5
注 册:2006-4-12
收藏
得分:0 
“Dim Lens As Integer
Lens=LenB(b)
'LenB是一个求半角字符串长度的函数,这就可以了
至少哪些字符串不取,你可以统计一下无需计算在内的字符的数目减掉就好了”

英文字母和逗号、句号等其他特殊字符均属于半角字符?
汉字属于全角字符?
2006-05-16 17:14
快速回复:没有实现换行字数的统计,只能在本行计算字数,加了换行的字数,就不行 ...
数据加载中...
 
   



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

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