已解决。请教获取剪贴板最后一行数据的高效算法,谢谢。
本帖最后由 bhwhui 于 2010-2-18 05:26 编辑如题,现在剪贴板的数据很规整,文本结构,每行均以@LRLF(回车换行符)结束,每列均以空格分隔(类似学生的成绩表,姓名,语文,数学,英语.....),大小拷贝到记事本观察约110K,现在想提取最后一行的数据,然后自己再处理,有什么高效的算法?
目前自己的方法是先保存为文件,然后用
_FileReadToArray()
Return $aRecords[$aRecords - $tmp2 + 1]的方法,总觉得很笨!
怎样改进?谢谢。顺祝新年快乐! 注:每行的数据大小不是固定的,呵呵,不要叫我用 文件大小/每行大小 然后再处理,谢谢! $aVar = StringSplit(ClipPut(), @CRLF, 1)
Msgbox(0, "", $aVar[$aVar]) 昨天遇到恼人的事 差不多也是读取文件 原来用StringSplit代码比较长
后来看见filereadline觉得不错就全部改了 数据定义全部推倒重来
等程序全改完发现读取大文件时加载非常慢 后悔了 原文件没保存
又花了几个小时改回去 回复 3# pusofalse
应该使用 clipget函数 对的。 用clipget 来取得剪切板内容。 再取最后一行。 实验了一下,楼上说的都对。
针对我的数据,程序改为:
$aVar = StringSplit(Clipget(), @CRLF, 1)
Msgbox(0, "", $aVar[$aVar]-1)
以前一直担心String的大小问题以及在哪看到过Clip不能赋值String的说法,一直不敢这样用,呵呵呵,只好用倒文件的方法来用。
再看了看说明书:“字符串的最大长度是 2147483647 个字符”,可达2G啊??
谢谢各位,祝新年快乐,谢谢。 昨天遇到恼人的事 差不多也是读取文件 原来用StringSplit代码比较长
后来看见filereadline觉得不错就全部改 ...
lainline 发表于 2010-2-17 08:49 http://www.autoitx.com/images/common/back.gif
呵呵,同情中。。。原来我是担心Clip,String 赋值的问题才用File来中转的,现在还是发现内存操作快一些。 :face (27):
现在怎么不能改帖子为“已解决”状态了 ??
页:
[1]