我正在尝试读取被分隔的西里尔值;从文件中,扫描每一行以匹配第一个值,并将以下值分配给变量。
这是我到目前为止的代码:
Dim objStream, strData, splitted
Set objStream = CreateObject("ADODB.Stream")
objStream.CharSet = "utf-8"
objStream.Open
objStream.LoadFromFile("C:\temp\textfile.txt")
strData = objStream.ReadText()
MsgBox strData
splitted = split(strData, ";")
textfile.txt
包含以下内容:
Име;Адрес;Телефон; Име2;Адрес2;Телефон2;
我将有一个这样的变量:
searchFor = "Име"
并且脚本必须将Адрес
和Телефон
分配给变量。
基本上,我需要在Име
的每一行中搜索名称(Име2
或textfile
),然后将该行的第二个和第三个值分配给变量。
目前strData
获取数据,但它存储为一个我无法操作或不知道如何的字符串。
答案 0 :(得分:0)
首先在换行符处拆分文本,然后以分号分隔每一行,然后检查第一个字段是否与搜索值匹配。例如:
searchFor = "Име"
For Each line In Split(strData, vbNewLine)
fields = split(line, ";")
If fields(0) = searchFor Then
varA = fields(1)
varB = fields(2)
End If
Next
请注意,必须以Unicode格式保存脚本,以免损坏搜索字符串。
答案 1 :(得分:0)
这是完整的最终工作脚本(感谢Ansgar Wiechers!)
Dim objStream, strData, fields
Set objStream = CreateObject("ADODB.Stream")
objStream.CharSet = "utf-8"
objStream.Open
objStream.LoadFromFile("C:\temp\textfile.txt")
strData = objStream.ReadText()
MsgBox strData
searchFor = "Име"
MsgBox searchFor
For Each line In Split(strData, vbNewLine)
fields = Split(line, ";")
If fields(0) = searchFor Then
varA = fields(1)
varB = fields(2)
End If
Next