wenquan79 发表于 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,

netegg 发表于 2012-11-27 09:16:23

按行读,以逗号为分隔符拆,除了第一个元素,在元素前添加第一个元素前面的字符

annybaby 发表于 2012-11-27 09:21:45

回复 2# netegg


    蛋兄不用睡觉的??晚睡早起…

annybaby 发表于 2012-11-27 09:29:06

标题

回复 1# wenquan79


    可考虑用正则,以单词匹配,然后分别将第一个匹配项和后面的每一个匹配项写行
读下一行并重复上述过程直到发生错误

annybaby 发表于 2012-11-27 09:34:00

回复 1# wenquan79


    楼主你估计要杯具了,发那么多重复的主题帖,自删吧…赶紧,不然被版主看到…就…

wenquan79 发表于 2012-11-27 12:40:42

本帖最后由 wenquan79 于 2012-11-27 12:42 编辑

這次真的非常抱歉!電腦沒反應多按了幾次,結果就連發了幾個。
好像版主有幫我刪了,感謝呀!

wenquan79 发表于 2012-11-27 12:42:11

本帖最后由 wenquan79 于 2012-11-27 12:44 编辑

netegg 兄、annybaby 兄
   能否幫忙給舉例寫一下,感謝!

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&'      '&$temp[$i]&',')
        Next
WEnd

netegg 发表于 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 &',' &@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)

netegg 发表于 2012-11-27 13:37:24

回复 8# annybaby
正则是不错,不过不知道lz需要不需要保留空格的数量

annybaby 发表于 2012-11-27 13:44:22

回复 10# netegg

你的也不错啊~~~

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

PS:你现在做什么工作的啊,整天都有空的??

netegg 发表于 2012-11-27 13:46:05

回复 11# annybaby
歇着,养膘

annybaby 发表于 2012-11-27 13:59:42

回复 12# netegg

呃,和我一样,今年我也是,可惜怎么养也没膘~~

netegg 发表于 2012-11-27 14:02:22

回复 13# annybaby
{:face (356):}共勉

xms77 发表于 2012-11-27 16:57:56

回复 12# netegg
好羡慕啊!{:face (303):}
页: [1] 2
查看完整版本: 文本處理,將同行的數據分