在变量中读取和存储西里尔文

时间:2016-02-09 14:58:05

标签: vbscript cyrillic

我正在尝试读取被分隔的西里尔值;从文件中,扫描每一行以匹配第一个值,并将以下值分配给变量。

这是我到目前为止的代码:

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 = "Име"

并且脚本必须将АдресТелефон分配给变量。

基本上,我需要在Име的每一行中搜索名称(Име2textfile),然后将该行的第二个和第三个值分配给变量。

目前strData获取数据,但它存储为一个我无法操作或不知道如何的字符串。

2 个答案:

答案 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