精易论坛

标题: 教你如何2句代码取文本行数 [打印本页]

作者: 专注研究    时间: 2016-9-8 23:48
提示: 作者被禁止或删除 内容自动屏蔽
作者: 专注研究    时间: 2016-9-8 23:49
提示: 作者被禁止或删除 内容自动屏蔽
作者: 易人一本    时间: 2016-9-9 00:16
  1. .版本 2
  2. .支持库 commobj

  3. .子程序 取文本行数
  4. .参数 文本, 文本型
  5. .局部变量 快速文本, 快速文本对象
  6. .局部变量 数组, 文本型, , "0"

  7. 快速文本.置文本 (文本)
  8. 数组 = 快速文本.分割文本 (#换行符, )
  9. 返回 (取数组成员数 (数组))
复制代码

这个代码更快
作者: Knight1990    时间: 2016-9-9 00:19
牛逼!大神~
作者: 专注研究    时间: 2016-9-9 00:19
提示: 作者被禁止或删除 内容自动屏蔽
作者: 易人一本    时间: 2016-9-9 00:22
易人一本 发表于 2016-9-9 00:16
这个代码更快

60万行。不用半秒。
用分割文本()要四五秒
作者: 专注研究    时间: 2016-9-9 00:24
提示: 作者被禁止或删除 内容自动屏蔽
作者: 飘雪编程    时间: 2016-9-9 01:05
提示: 作者被禁止或删除 内容自动屏蔽
作者: 专注研究    时间: 2016-9-9 01:25
提示: 作者被禁止或删除 内容自动屏蔽
作者: 福仔    时间: 2016-9-9 05:08
  
子程序名返回值类型公开备 注
__启动窗口_创建完毕  
调试输出 (子程序1 ())
调试输出 (子程序2 ())
调试输出 (子程序3 ())
调试输出 (子程序4 ())
子程序名返回值类型公开备 注
子程序1整数型 
变量名类 型静态数组备 注
文本文本型 
局部_位置整数型 
行数整数型 
文本 = 到文本 (读入文件 (“c:\1.txt”))
循环判断首 ()
局部_位置 = 寻找文本 (文本, #换行符, 局部_位置 + 1, )
如果真 (取文本中间 (文本, 局部_位置 + 2, 2)#换行符 取文本中间 (文本, 局部_位置 + 2, 2)“”)  ' 换行占2字节
行数 = 行数 + 1

循环判断尾 (局部_位置 ≠ -1)
返回 (行数)
子程序名返回值类型公开备 注
子程序2整数型 
变量名类 型静态数组备 注
文本快速文本对象 
分割文本型0
i整数型 
行数整数型 
文本.从文件读 (“c:\1.txt”)
分割 = 文本.分割文本 ( #换行符, )
计次循环首 (取数组成员数 (分割), i)
如果真 (分割 [i]“”)
行数 = 行数 + 1

计次循环尾 ()
返回 (行数)
子程序名返回值类型公开备 注
子程序3整数型 
变量名类 型静态数组备 注
文件号整数型 
行数整数型 
文件号 = 打开文件 (“c:\1.txt”, , )
移到文件首 (文件号)
判断循环首 (是否在文件尾 (文件号, ))
如果真 (读入一行 (文件号)“”)
行数 = 行数 + 1

判断循环尾 ()
关闭文件 (文件号)
返回 (行数)
子程序名返回值类型公开备 注
子程序4整数型 
变量名类 型静态数组备 注
正则正则表达式 
文本文本型 
搜索结果搜索结果0
文本 = 到文本 (读入文件 (“c:\1.txt”))
正则.创建 (“\S+”, )
搜索结果 = 正则.搜索全部 (文本)
返回 (取数组成员数 (搜索结果))


i支持库列表   支持库注释   
spec特殊功能支持库
commobj通用对象支持库
RegEx正则表达式支持库


如果只取有效行数呢,如果只有换行 没有数据的话不算一行......好像方法还真不少
作者: 福仔    时间: 2016-9-9 05:08
  
子程序名返回值类型公开备 注
__启动窗口_创建完毕  
调试输出 (子程序1 ())
调试输出 (子程序2 ())
调试输出 (子程序3 ())
调试输出 (子程序4 ())
子程序名返回值类型公开备 注
子程序1整数型 
变量名类 型静态数组备 注
文本文本型 
局部_位置整数型 
行数整数型 
文本 = 到文本 (读入文件 (“c:\1.txt”))
循环判断首 ()
局部_位置 = 寻找文本 (文本, #换行符, 局部_位置 + 1, )
如果真 (取文本中间 (文本, 局部_位置 + 2, 2)#换行符 取文本中间 (文本, 局部_位置 + 2, 2)“”)  ' 换行占2字节
行数 = 行数 + 1

循环判断尾 (局部_位置 ≠ -1)
返回 (行数)
子程序名返回值类型公开备 注
子程序2整数型 
变量名类 型静态数组备 注
文本快速文本对象 
分割文本型0
i整数型 
行数整数型 
文本.从文件读 (“c:\1.txt”)
分割 = 文本.分割文本 ( #换行符, )
计次循环首 (取数组成员数 (分割), i)
如果真 (分割 [i]“”)
行数 = 行数 + 1

计次循环尾 ()
返回 (行数)
子程序名返回值类型公开备 注
子程序3整数型 
变量名类 型静态数组备 注
文件号整数型 
行数整数型 
文件号 = 打开文件 (“c:\1.txt”, , )
移到文件首 (文件号)
判断循环首 (是否在文件尾 (文件号, ))
如果真 (读入一行 (文件号)“”)
行数 = 行数 + 1

判断循环尾 ()
关闭文件 (文件号)
返回 (行数)
子程序名返回值类型公开备 注
子程序4整数型 
变量名类 型静态数组备 注
正则正则表达式 
文本文本型 
搜索结果搜索结果0
文本 = 到文本 (读入文件 (“c:\1.txt”))
正则.创建 (“\S+”, )
搜索结果 = 正则.搜索全部 (文本)
返回 (取数组成员数 (搜索结果))


i支持库列表   支持库注释   
spec特殊功能支持库
commobj通用对象支持库
RegEx正则表达式支持库


如果只取有效行数呢,如果只有换行 没有数据的话不算一行......好像方法还真不少
作者: 飘雪编程    时间: 2016-9-9 05:43
提示: 作者被禁止或删除 内容自动屏蔽
作者: wg521125    时间: 2016-9-9 10:33
666666666666666
作者: 苏烟式    时间: 2016-9-9 10:50
代码并不是越短越好,效率低一行也辣鸡,效率高百行也是宝
作者: chendipang    时间: 2016-9-9 10:50
易人一本 发表于 2016-9-9 00:16
这个代码更快

666666666666666
作者: 专注研究    时间: 2016-9-9 13:45
提示: 作者被禁止或删除 内容自动屏蔽
作者: 倪少    时间: 2016-9-9 16:04
代码并不是越短越好,效率低一行也辣鸡,效率高百行也是宝
作者: 专注研究    时间: 2016-9-9 16:11
提示: 作者被禁止或删除 内容自动屏蔽
作者: 呵呵仙    时间: 2016-9-9 16:18
post老司机 发表于 2016-9-9 16:11
分割文本没效率么,快速文本没效率么,也就那么几句,能有点逻辑思维么。
在说一行 ...

换快速文本对象中的分割文本,会快一点.
但是,可能子本替换()换行符可能比他更快.你可以对比下.100W行文本.哪个快?
作者: 专注研究    时间: 2016-9-9 16:24
提示: 作者被禁止或删除 内容自动屏蔽
作者: 呵呵仙    时间: 2016-9-9 16:32
post老司机 发表于 2016-9-9 16:24
所以说每个代码都有每个代码的用途,也同样分先后级,他说的代码并不是越短越好  这我不认同

消消气,这取决于个人的要求.要软件效率高,还真不是最好的.要说省脑细胞的.就只用想到什么就写什么!解决问题就OK了!!^_^
作者: 专注研究    时间: 2016-9-9 16:42
提示: 作者被禁止或删除 内容自动屏蔽
作者: tchello    时间: 2016-9-11 15:40
谢谢分享!
作者: Tz勿忘心安    时间: 2016-9-13 07:58
谢谢分享!
作者: guangdate    时间: 2016-9-13 16:30
代码并不是越短越好,效率低一行也辣鸡,效率高百行也是宝
认同
作者: lxwjlut    时间: 2018-6-9 09:25

作者: qwer2024    时间: 2022-9-12 20:29
牛皮6666666666666666666666
作者: Pan先森°    时间: 2024-4-3 03:56
66666666666666
作者: hbqjb    时间: 2025-3-13 10:37
正我所需,谢谢!
作者: lxn2wyf    时间: 2025-3-13 11:16
哇,这么简洁的方法啊,学到了!以前都是自己写一堆代码搞定,这个两句话就搞定了呢,厉害厉害。
作者: hbqjb    时间: 2025-3-13 15:41
易人一本 发表于 2016-9-9 00:16
这个代码更快

的确很快!!




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4