找回密码
 加入
搜索
查看: 3290|回复: 12

[AU3基础] 已解决多行数据如何处理问题

 火.. [复制链接]
发表于 2012-4-19 23:18:58 | 显示全部楼层 |阅读模式
本帖最后由 网店 于 2012-4-21 00:50 编辑

现有以下数据:
hq_st815="a,8.30,8.31,8.23,8.32,8.21,8.23,8.24,3812883,31463857,2012-04-19";
hq_st293="b,7.83,7.83,8.35,8.50,7.80,8.33,8.35,19280200,156963084,2012-04-19";
hq_st093="c,5.17,5.06,5.16,5.21,5.14,5.15,5.16,2774321,14355196,2012-04-19";

结果是将数据入库
问题:
如何取到每行只需要数据的一部分 815 a 8.30 3812883 2012-04-19
并快速入sqlite库(不需要生成文本文件)

评分

参与人数 1金钱 +10 收起 理由
afan + 10

查看全部评分

发表于 2012-4-19 23:28:41 | 显示全部楼层
用正则表达式可以把这些数据取出
发表于 2012-4-19 23:31:32 | 显示全部楼层
这个需要正则大牛了,找A版吧,试了一下,技术不到家。
发表于 2012-4-19 23:50:03 | 显示全部楼层
这种入库,我感觉没有太快的办法,不过我有个__sql.au3,操作起来还是很方便
 楼主| 发表于 2012-4-20 00:00:26 | 显示全部楼层
回复 4# 58fly


    可否一观 _sql.au3
发表于 2012-4-20 00:13:17 | 显示全部楼层
回复 1# 网店
只希望有抛砖引玉的功效
#include <array.au3>
Local $str = 'hq_st815="a,8.30,8.31,8.23,8.32,8.21,8.23,8.24,3812883,31463857,2012-04-19";' & @CRLF & _
'hq_st293="b,7.83,7.83,8.35,8.50,7.80,8.33,8.35,19280200,156963084,2012-04-19";' & @CRLF & _
'hq_st093="c,5.17,5.06,5.16,5.21,5.14,5.15,5.16,2774321,14355196,2012-04-19";'
$result = StringRegExp($str, '(?m)hq_st(\d+)="([a-z],\d+\.\d{2})[^"]+(\d{7,8})(?:,\d{7,9}),(\d{4}-\d{2}-\d{2})";', 3)
If Not @error Then _ArrayDisplay($result)

评分

参与人数 1金钱 +20 收起 理由
afan + 20

查看全部评分

发表于 2012-4-20 00:17:23 | 显示全部楼层
StringRegExp('hq_st815="a,8.30,8.31,8.23,8.32,8.21,8.23,8.24,3812883,31463857,2012-04-19";',".+(\d{3}).{2}(\w),(.{4}).+(\d{7}).\d+,(\d{4}-\d{2}-\d{2})",1)

评分

参与人数 1金钱 +20 收起 理由
afan + 20

查看全部评分

 楼主| 发表于 2012-4-20 08:11:58 | 显示全部楼层
回复 6# user3000


    如何能快速入库!!!!
 楼主| 发表于 2012-4-20 08:19:02 | 显示全部楼层
能否数列放入二维数组里?????????然后一次性处理一列!!!
发表于 2012-4-20 11:24:23 | 显示全部楼层
本帖最后由 xms77 于 2012-4-20 11:28 编辑

回复 2# whitehead
这个正则有点难度啊!功力不够啊
发表于 2012-4-20 21:51:13 | 显示全部楼层
回复 1# 网店


   试一下我的。

#include <array.au3>
Local $str = 'hq_st815="a,8.30,8.31,8.23,8.32,8.21,8.23,8.24,3812883,31463857,2012-04-19";' & @CRLF & _
'hq_st293="b,7.83,7.83,8.35,8.50,7.80,8.33,8.35,19280200,156963084,2012-04-19";' & @CRLF & _
'hq_st093="c,5.17,5.06,5.16,5.21,5.14,5.15,5.16,2774321,14355196,2012-04-19";'
$result = StringRegExp($str, 't(\d{3})="(\w),(\d\.\d+).+\.\d{2},(\d+).+(\d{4}-\d\d-\d\d)";', 3)
If Not @error Then _ArrayDisplay($result)

评分

参与人数 1金钱 +15 收起 理由
lixiaolong + 15

查看全部评分

发表于 2012-4-20 23:11:59 | 显示全部楼层
回复  whitehead
这个正则有点难度啊!功力不够啊
xms77 发表于 2012-4-20 11:24

这个正则问题好象没那么难,我是不会入库
发表于 2012-4-21 14:35:27 | 显示全部楼层
练习练习~
#include <Array.au3>
Local $Str = _
                'hq_st815="a,8.30,8.31,8.23,8.32,8.21,8.23,8.24,3812883,31463857,2012-04-19";' & @CRLF & _
                'hq_st293="b,7.83,7.83,8.35,8.50,7.80,8.33,8.35,19280200,156963084,2012-04-19";' & @CRLF & _
                'hq_st093="c,5.17,5.06,5.16,5.21,5.14,5.15,5.16,2774321,14355196,2012-04-19";' & @CRLF

Local $Test = StringRegExp($str, '[^\d]+(\d+)[^\w]+(\w+),([^,]+).*?,(\d{3,}).+,([^"]+)', 3)
If Not @Error Then _ArrayDisplay($Test, UBound($Test))

评分

参与人数 1金钱 +20 收起 理由
afan + 20

查看全部评分

您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-19 00:31 , Processed in 0.096197 second(s), 32 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表