2016-09-15 47 views
-2

EDIT 2

只是要清楚查找文本文件的遺漏值。這不是我的首選武器,如果我需要做這在聯合國* X框,然後我就不會打擾這個人......使用VBScript


我有兩個文本文件。 文件甲包含的鍵的列表:

00001 13756 000.816.000 BE2B 
00001 13756 000.816.000 BR1B 
00002 16139 000.816.000 BR1B 
00001 10003 000.816.000 CH1C 
00001 10003 000.816.000 CH3D 
00001 13756 000.816.000 CZ1B 
.... 
.... 

文件B,製表符分隔,包含兩列的鍵,和一個UUID:

00003 16966 001.001.023 2300 a3af3b1d-ea04-4948-ba25-59b36ae364ae 
00001 12119 001.001.023 CZ1B e6efe825-0759-48b0-89b9-05bbe5d49625 
00002 16966 001.001.023 BR1B d3a1d62b-a0d5-43c3-ba49-a219de5f32a5 
00001 12119 001.001.023 BR1B 5d74af27-ed4b-4f90-8229-90b6d807515b 
00001 10009 001.001.024 BR1B 590409cc-496a-49eb-885c-9bbc51863363 
00002 24550 001.001.024 2100 46ecea5d-f8f5-4df9-92cf-0b73f6c81adc 
00001 12119 001.001.024 CZ1B e415ce6f-7394-4a66-a7f8-f76487e78086 
00002 16966 001.001.024 CZ1B c591a726-4d71-4f61-adfd-63310d21d397 
.... 
.... 

我需要提取,使用普通的VBScript ,文件B中的那些條目的UUID,其在文件A中沒有匹配條目。 (如果這是一個重要的標準,我需要優化速度)。結果應該是一個孤立的UUID代碼文件。

如果這不是很容易/可能,那也是一個答案 - 我可以在我們使用的db中完成,但性能極差。剛剛被VBScript比以前的處理任務的db解決方案快多了。

編輯

某人用某種ADO庫,轉換文件到CSV,我期待到後建議。

+0

你有什麼試過的,你有一些代碼可以共享嗎?,因爲你可能很清楚[所以]不是* code *的「GIV ME DA CODEZ!」。如果沒有看到[問]並提供[mcve]。 – Lankymart

+0

我們在這裏談論什麼樣的卷?如果數據庫無法處理它我懷疑VBScript是要走的路。 – Lankymart

+0

確實沒有Lankymart。一旦我嘗試挑選ADO的東西,我會努力做到這一點。 – Dycey

回答

2

也許做最快的方法就是問OS做

Dim orphan 
    orphan = WScript.CreateObject("WScript.Shell").Exec(_ 
     "findstr /g:keys.txt /v uuids.txt" _ 
    ).StdOut.ReadAll() 

    WScript.Echo orphan 

也就是說,使用findstr檢查uuids.txt文件行不匹配任何在該行的keys.txt文件

+0

謝謝@MCND只是讓你知道 - 這個剃了1h49min的過程少於2分鐘;-)我認爲這是一個60倍的增益;-)非常感謝。當你不熟悉草坪時,總是會有所動作,而Windows腳本對我來說並不熟悉。一個小點 - 有一個值得一讀的[Findstr問題]的答案(http://stackoverflow.com/questions/8844868/what-are-the-undocumented-features-and-limitations-of-the-windows- FINDSTR-comman)。 – Dycey

+0

體面的做法。是VBScript總是一個需求然後@Dycey或者你可以輕鬆地從命令行或批處理文件做到這一點? – Lankymart

+0

服務器環境被鎖定。但是,可以從FileMaker時間表內運行VBScript。這是尷尬和不舒服,而且完全陌生。整個事情就是在一個側面的衚衕裏,在一個眼罩後面調整一個房車,一直聽到鞭撻金屬直到11歲。對於這個特定的工作似乎沒有「輕鬆」。 ;-) – Dycey