文本處理,將同行的數據分
將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, 按行读,以逗号为分隔符拆,除了第一个元素,在元素前添加第一个元素前面的字符 回复 2# netegg
蛋兄不用睡觉的??晚睡早起…
标题
回复 1# wenquan79可考虑用正则,以单词匹配,然后分别将第一个匹配项和后面的每一个匹配项写行
读下一行并重复上述过程直到发生错误 回复 1# wenquan79
楼主你估计要杯具了,发那么多重复的主题帖,自删吧…赶紧,不然被版主看到…就… 本帖最后由 wenquan79 于 2012-11-27 12:42 编辑
這次真的非常抱歉!電腦沒反應多按了幾次,結果就連發了幾個。
好像版主有幫我刪了,感謝呀! 本帖最后由 wenquan79 于 2012-11-27 12:44 编辑
netegg 兄、annybaby 兄
能否幫忙給舉例寫一下,感謝! 回复 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: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) 回复 8# annybaby
正则是不错,不过不知道lz需要不需要保留空格的数量 回复 10# netegg
你的也不错啊~~~
输出结果和楼主要求的是完全一样的,空格也一样~~
PS:你现在做什么工作的啊,整天都有空的?? 回复 11# annybaby
歇着,养膘 回复 12# netegg
呃,和我一样,今年我也是,可惜怎么养也没膘~~ 回复 13# annybaby
{:face (356):}共勉 回复 12# netegg
好羡慕啊!{:face (303):}
页:
[1]
2