【问题标题】:vbscript files with spaces and tabs带有空格和制表符的 vbscript 文件
【发布时间】:2013-07-23 01:20:33
【问题描述】:

有一个文件,我想将其分开并放在列中。看 就像文件中的某些字段由空格分隔,其他由制表符分隔。我想格式化,以便名称和地址等在列中分开。

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

【问题讨论】:

  • 您通过哪个显着特征分隔列?每个单词都在自己的列中?您希望结果为格式化文本,还是要进一步处理?你能举一个期望输出的例子吗?

标签: vbscript


【解决方案1】:

认为您有一个制表符分隔的文件,可能在某些字段中有一系列空格。在这种情况下,你应该

  1. 在 vbTab 上拆分以获取字段
  2. 规范化所有/部分字段中的空白

要规范化空格,您可以使用 Trim() 来表示前导/尾随空格,并使用 RegExp.Replace 替换“+”或“+”作为模式,使用“”作为替换。

(看看here

【讨论】:

    【解决方案2】:

    我为你做了一个类似于 Ruby 的拆分函数,用于根据正则表达式模式拆分字符串

    '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
    

    【讨论】:

      猜你喜欢
      • 2019-06-07
      • 2018-10-25
      • 1970-01-01
      • 2014-12-18
      • 2015-08-18
      • 1970-01-01
      • 1970-01-01
      • 2011-10-25
      相关资源
      最近更新 更多