国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > VBScript > 正文

用vbscript實現從文本文件中刪除所有重復行的代碼

2020-07-26 12:00:58
字體:
來源:轉載
供稿:網友

問:
您好,腳本專家!如何從文本文件中刪除所有重復行?

-- SW

答:
您好,SW。您知道,成為一名腳本專家便意味著開始永無止境地尋找給定問題的最終解決方案。(或者至少在我們的經理問為什么我們似乎從未真正完成什么時,我們是這么告訴他的:“老板,永無止境的尋找過程需要時間!”)這就是為什么我們很高興看到您的問題的原因。不久前 我們回答了一個關于從文本文件中刪除重復名字的類似問題。我們想到的解決方案十分簡單而且效果不錯;只是我們不確定那是最佳解決方案。現在,很感謝您的問題,我們可以再次嘗試解決這一問題。至于此解決方案是否比我們之前提供的更好/更快/更方便,還是由您來決定吧。

首先,假定您有一個文本文件,其中每一行都表示一條單獨的記錄。這似乎不太可能,但也許您的文件類似如下:

This is one of the lines in the text file.
This is one of the lines in the text file.
This is another line in the text file.
This is one of the lines in the text file.
This is yet another line in the text file.
This is another line in the text file.
This is another line in the text file.
This is one of the lines in the text file.

您需要一個可以除去所有重復行并提供類似以下輸出的腳本:

This is one of the lines in the text file.
This is another line in the text file.
This is yet another line in the text file.

SW,您找對地方了:

Const adOpenStatic = 3
Const adLockOptimistic = 3
Const adCmdText = &H0001

Set objConnection = CreateObject("ADODB.Connection")
Set objRecordSet = CreateObject("ADODB.Recordset")

strPathToTextFile = "C:/Scripts/"
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
    Wscript.Echo objRecordSet.Fields.Item(0).Value   
    objRecordSet.MoveNext
Loop

我們發現此腳本有些有趣,因為我們使用“ActiveX 數據對象”(ADO) 并將此文本文件當作數據庫處理。我們不會花費過多的時間詳細說明如何將文本文件當作數據庫處理;如果您想了解有關于此的詳細信息,我們的腳本診所 專欄對此主題進行了深入闡述。現在,要說明的只是我們將使用文本文件 C:/Scripts/Test.txt,我們通過為變量 strPathToTextFile 和 strFile 賦予相應值來表示:

strPathToTextFile = "C:/Scripts/"
strFile = "Test.txt"

那么,這如何能讓我們除去重復行呢?是這樣的,有一種稱為 Select DISTINCT 的數據庫查詢;利用 Select DISTINCT 可以選擇表格中所有不同的(或唯一的)記錄。假設您有一個簡單的數據庫,其中有以下記錄:


Red
Red
Blue
Red

如果使用 Select DISTINCT 查詢,您將得到一個只包括唯一記錄的記錄集:

Red
Blue

毫無疑問,您會想:“哇!返回唯一記錄與刪除重復記錄簡直異曲同工。”我們承認確實如此 

主站蜘蛛池模板: 仪陇县| 乐清市| 澄迈县| 海兴县| 宁阳县| 滨州市| 商都县| 新田县| 连江县| 即墨市| 通化县| 孙吴县| 公主岭市| 遂川县| 奉节县| 剑河县| 保康县| 永康市| 威信县| 肥乡县| 光山县| 阿合奇县| 贵溪市| 临武县| 华亭县| 社会| 东至县| 高唐县| 秭归县| 都匀市| 上虞市| 镇江市| 化隆| 易门县| 绵阳市| 五家渠市| 海门市| 出国| 崇礼县| 萝北县| 涞水县|