艾米(IM、QQ)交易论坛's Archiver

guanhua 发表于 2008-11-29 16:53

文本去重复行的2个小东东

[size=5]网上找的,感觉不错,发上来,  1共两个,你看怎么合适就怎么用(出问题,别找我,我也看不懂)[/size]
第一段代码:
-------------------------------------------------------------------------------------------------------------
Const adOpenStatic = 3
Const adLockOptimistic = 3
Const adCmdText = &H0001
Set objConnection = CreateObject("ADODB.Connection")
Set objRecordSet = CreateObject("ADODB.Recordset")

strPathToTextFile = "C:\"
strFile = "Test.txt"

objConnection.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
      "Data Source=" & strPathtoTextFile & ";" & _
          "Extended Properties=""text;HDR=NO;FMT=Delimited"""

objRecordSet.Open "Select DISTINCT * FROM " & strFile, _
    objConnection, adOpenStatic, adLockOptimistic, adCmdText

Do Until objRecordSet.EOF

Set objFSO = CreateObject("Scripting.FileSystemObject")
     set Fp=objFSO.OpenTextFile("C:\test1.txt",8,True,0)
     fp.WriteLine objRecordSet.Fields.Item(0).Value
     fp.close
     set objFSO = nothing
     objRecordSet.MoveNext
Loop
-----------------------------------------------------------------------------------------------------
(复制到文本,保存为*.vbs格式)
说明:  
这个批处理的作用是用来对一个文本进行处理,并将这个文本当中的重复部分的内容删除(重复部分保留一次)。  
只保留不重复的内容。
示例:  
a.txt  
----------------------------文件内容----------------------------  
abc  
abc  
bcd  
-------------------------------结束-----------------------------   
这个文本经过处理之后只会保留
-----------------------------------------------------------
abc  
bcd  
-----------------------------------------------------------
其中的重复的一行abc删除。

注意:
1、被处理的文档复制到C盘根下的Text.TXT文件中,请特别注意:文本中一行一条记录,不要有空行。
2、每次使用前要删除C盘根下的Text1.TXT文件或清除里面内容‘否则数据将累加。  




第二个代码:
----------------------------------------------------------------------------------------------------------------------
@echo off  
setlocal EnableDelayedExpansion  
title 删除文本中内容重复的行  
echo.  
echo 最好将要处理的文本文件放置在同一目录下,这样可以简化输入  
echo.  
set /p aa=请输入要处理的文件名:  
for /f "delims=" %%a in (%aa%) do (  
for /f "delims=" %%b in (%aa%) do if %%a==%%b echo %%a >>temp.txt  
set /a "d=0"  
for /f "delims=" %%c in (temp.txt) do set /a "d=!d!+1"  
if "!d!" EQU "1" echo %%a>>处理结果.txt  
del temp.txt  
)  
cls  
echo 已成功进行文本处理...  
echo.  
echo 请按任意键退出  
pause>nul  
---------------------------------------------------------------------------------------------------------------
(复制到文本,保存为*.bat格式)
说明:  
这个批处理的作用是用来对一个文本进行处理,并将这个文本当中的任意行只要内容重复的都删除(重复部分全删,不留底)。  
只保留内容唯一的那行。  
示例:  
a.txt  
----------------------------文件内容----------------------------  
abc  
abc  
bcd  
-------------------------------结束-----------------------------   
这个文本经过处理之后只会保留
-----------------------------------------------------------
bcd  
-----------------------------------------------------------
重复的两行abc都将被删除。

注意:
1、被处理的文档最好在同一目录下
2、输入文件名时要加.txt后缀
3、每次使用前要删除“处理结果.txt”文件或清除里面内容‘否则文档将累加

wowo 发表于 2008-11-29 22:34

呵呵
这个收下了
顶一个

小洋人 发表于 2008-11-30 01:40

早点发就好了,前两天还看见有人求的

atuboss 发表于 2008-11-30 02:44

不错.

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.