在数组上拆分函数

tkw*_*rgs 3 vbscript

我有多个分隔符大文本文件(1个长线)(例如:~,*,:).所述~分隔符标记一个新的部分,并且*:分隔符标记子部分或段.

我尝试了以下但是我遇到了类型不匹配错误,可能是因为该Split函数用于字符串而不是数组.

Dim  strFileLine, arrSection, arrSegment, arrSegField
strFileLine = "C:\sometextfile.txt"
arrSection  = Split(strFileLine, "~")
arrSegment  = Split(arrSection, "*")
arrSegField = Split(arrSegment, ":")
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用此逻辑来保持我的段和段字段具有正确的部分,并将这些值插入数据库.

有关如何使用VBScript实现此目的的任何想法?

Ans*_*ers 5

解决方案取决于如何将字段导入数据库.如果您只想按照它们在输入文件中出现的顺序处理所有字段,则可以使用换行符替换分隔符,然后在换行符处拆分字符串:

Set fso = CreateObject("Scripting.FileSystemObject")

Set text = fso.OpenTextFile("C:\sometextfile.txt").ReadAll

text = Replace(text, "~", vbNewLine)
text = Replace(text, "*", vbNewLine)
text = Replace(text, ":", vbNewLine)

arr = Split(text, vbNewLine)

For Each field In arr
  WScript.Echo field
Next
Run Code Online (Sandbox Code Playgroud)

如果需要更加强调输入文件的结构,可以使用嵌套循环处理输入字符串:

Set fso = CreateObject("Scripting.FileSystemObject")

Set text = fso.OpenTextFile("C:\sometextfile.txt").ReadAll

For Each segment In Split(text, "~")
  For Each section In Split(segment, "*")
    For Each field In Split(section, ":")
      WScript.Echo field
    Next
  Next
Next
Run Code Online (Sandbox Code Playgroud)

为了获得进一步的帮助,您需要提供有关如何将层次结构导入数据库的更多信息,正如Ekkehard.Horner已经指出的那样.