找回密码
 加入
搜索
查看: 10016|回复: 22

[AU3基础] 文本處理,將同行的數據分

 火.. [复制链接]
发表于 2012-11-27 09:05:16 | 显示全部楼层 |阅读模式
將1.txt整理成2.txt,請指教,謝謝!
我的思路是這樣,先將文件的第二欄讀入,整理成每個以逗號為單位的值(Ca1,)為一行,
再從這內容以每行為條件從1.txt里找,找到所在行把所在行的第1欄寫入2.txt同時將值也定入2.txt。
---------1.txt-------
ab23423        Ca1,cm2,
absdf54        res2,res3,h3,
ab23465        f6,
ab4rtb5        adf4,dd5,ffs2,rwsd2,sd4,f3s,fs33,

------------2.txt---
ab23423        Ca1,
ab23423        cm2,
absdf54        res2,
absdf54        res3,
absdf54        h3,
ab23465        f6,
ab4rtb5        adf4,
ab4rtb5        dd5,
ab4rtb5        ffs2,
ab4rtb5        rwsd2,
ab4rtb5        sd4,
ab4rtb5        f3s,
ab4rtb5        fs33,
发表于 2012-11-27 09:16:23 | 显示全部楼层
按行读,以逗号为分隔符拆,除了第一个元素,在元素前添加第一个元素前面的字符
发表于 2012-11-27 09:21:45 | 显示全部楼层
回复 2# netegg


    蛋兄不用睡觉的??晚睡早起…
发表于 2012-11-27 09:29:06 | 显示全部楼层

标题

回复 1# wenquan79


    可考虑用正则,以单词匹配,然后分别将第一个匹配项和后面的每一个匹配项写行
读下一行并重复上述过程直到发生错误
发表于 2012-11-27 09:34:00 | 显示全部楼层
回复 1# wenquan79


    楼主你估计要杯具了,发那么多重复的主题帖,自删吧…赶紧,不然被版主看到…就…
 楼主| 发表于 2012-11-27 12:40:42 | 显示全部楼层
本帖最后由 wenquan79 于 2012-11-27 12:42 编辑

這次真的非常抱歉!電腦沒反應多按了幾次,結果就連發了幾個。
好像版主有幫我刪了,感謝呀!
 楼主| 发表于 2012-11-27 12:42:11 | 显示全部楼层
本帖最后由 wenquan79 于 2012-11-27 12:44 编辑

netegg 兄、annybaby 兄
   能否幫忙給舉例寫一下,感謝!
发表于 2012-11-27 13:09:36 | 显示全部楼层
回复 7# wenquan79

Local $file=FileOpen('E:\桌面\test.txt')
If $file=-1 Then Exit(MsgBox(16,'警告!','无法打开文件,可能文件不存在~~',3))
While 1
        $content=FileReadLine($file)
        If @error=-1 Then Exit
        $temp=StringRegExp($content,'\w+',3)
        For $i=1 To UBound($temp)-1
                FileWriteLine(@DesktopDir&'\out.txt',$temp[0]&'        '&$temp[$i]&',')
        Next
WEnd
发表于 2012-11-27 13:25:19 | 显示全部楼层
本帖最后由 netegg 于 2012-11-27 13:31 编辑
$txt = FileRead('1.txt')
$aA = StringSplit($txt, @CRLF, 2)
local $text = ''
For $i In $aA
        If $i Then
                $a = StringSplit($i, ',', 2)
                For $o = 0 To UBound($a) - 2
                        If Not $o Then
                                $text &= $a[0] &',' &@CR
                                $string  = StringLeft($a[$o], StringInStr($a[$o], ' ', 0, -1))
                        Else
                                $text &= $string & $a[$o] &',' &@CR
                        EndIf
                Next
        EndIf
Next
fileopen('2.txt',10)
filewrite('2.txt', $text)

评分

参与人数 1金钱 +10 收起 理由
annybaby + 10 学习了~~

查看全部评分

发表于 2012-11-27 13:37:24 | 显示全部楼层
回复 8# annybaby
正则是不错,不过不知道lz需要不需要保留空格的数量
发表于 2012-11-27 13:44:22 | 显示全部楼层
回复 10# netegg

你的也不错啊~~~

输出结果和楼主要求的是完全一样的,空格也一样~~

PS:你现在做什么工作的啊,整天都有空的??
发表于 2012-11-27 13:46:05 | 显示全部楼层
回复 11# annybaby
歇着,养膘
发表于 2012-11-27 13:59:42 | 显示全部楼层
回复 12# netegg

呃,和我一样,今年我也是,可惜怎么养也没膘~~
发表于 2012-11-27 14:02:22 | 显示全部楼层
回复 13# annybaby
共勉
发表于 2012-11-27 16:57:56 | 显示全部楼层
回复 12# netegg
好羡慕啊!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-15 19:52 , Processed in 0.091887 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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