2013-07-23 31 views
1

得到一個文件,我想分開並放入列。看起來像 就像文件中的一些字段被空格分隔,而其他字段被標籤分隔。我想格式化,所以姓名和地址等分隔列。帶空格和製表符的vbscript文件

enter code here 
strStarter = "RT 29 MONTPELIER VA 23100  23100" 

intStarter = Len(strStarter) 
For i = intStarter to 2 Step -1 
strChars = Space(i) 
strStarter = Replace(strStarter, strChars, " ") 
strStarter1 = Replace(strStarter, vbTab, " ") 
Next 

arrStarter = Split(strStarter, " ") 
arrStarter2= Split(strStarter1,vbTab) 

For Each strUnit in arrStarter 
    Wscript.Echo strUnit 
Next 
+0

通過哪些區別功能是否將列分開?每個單詞在它自己的列?你希望結果是格式化的文本,還是要進一步處理它?你能給出一個期望輸出的例子嗎? –

+0

與http://stackoverflow.com/q/17819043/69820相關 – 2013-07-24 07:37:12

回答

0

認爲,你有一個製表符分隔的文件,也許在某些領域空白的序列。在這種情況下,你應該vbTab

  1. 斯普利特拿到領域
  2. 正常化空格在所有/一些領域

的要歸位,你可以使用TRIM()領導/尾隨空白和「+」或「+」作爲模式和「」替代的RegExp.Replace。

(看看here

0

我給你做一個紅寶石般的分裂功能基於正則表達式模式來分割字符串

'the following string contains a tab 
strStarter = "RT 29 MONTPELIER BEFORETAB AFTERTAB VA 23100  23100" 

Function rsplit(string, pattern) 
    Dim r 
    Set r = New RegExp 
    r.Global = True 
    r.Pattern = "[^"&pattern&"]+" 
    Set rsplit = r.Execute(string) 
End Function 

For each unit in rsplit(strStarter, " |\t") 
    wscript.echo unit 
Next 

給人

RT 
29 
MONTPELIER 
BEFORETAB 
AFTERTAB 
VA 
23100 
23100