如何逐字读取字符串
How to read a string word by word
我有一个 VBScript 可以从 txt 文件中读取用户名。用户名来自一长串目录和后面的一些附加信息。使用 VBS,我必须从文本文件中删除该行的第一部分和最后一部分,以便只读取名称。
现在,我的变量 (strName
) 会给我这样的结果:"john doe"
。我的最终目标是将其转换为电子邮件地址。域总是相同的,所以我需要能够以 "john doe"
开始并以 "john.doe@gmail.com"
结束(不打算指定实际域,因为它 s irrelevant to the question). Right now I was able to add the
"@gmail.com"` 到字符串,但我不知道如何做剩下的。
我正在考虑将名字读入一个新变量 strFirstName
,将姓氏读入第二个变量 strLastName
,然后添加一行:
strName = strFirstName + "." + strLastName + "@gmail.com"
一次只读一个字可以用什么?我在脚本中使用了以下函数来获取名称,但由于名称的长度可能会有所不同,因此我不能为此使用相同的东西。
strName = Mid(strName, 4 + 11)
strName = Left(strName, (LEN(strName)-13))
如果您的源字符串始终采用以下形式:
C:\Directory\first last\OS - Information
然后您可以使用几个 Split()
s:
提取名字和姓氏
strSource = "C:\Directory\John Doe\OS - Information"
strName = Split(strSource, "\")(2)
strFirst = Split(strName)(0)
strLast = Split(strName)(1)
第一个 Split()
用 \
分隔您的字符串,创建 4 个元素。由于您只关心第三个(索引 2
),因此您可以仅将 (2)
附加到 return 那个字符串。
现在我们有了 John Doe
,只需再次使用 Split()
(space 字符是默认字符)来提取名字和姓氏。
现在您可以创建您的电子邮件地址:
strEmail = strFirst & "." & strLast & "@gmail.com"
我有一个 VBScript 可以从 txt 文件中读取用户名。用户名来自一长串目录和后面的一些附加信息。使用 VBS,我必须从文本文件中删除该行的第一部分和最后一部分,以便只读取名称。
现在,我的变量 (strName
) 会给我这样的结果:"john doe"
。我的最终目标是将其转换为电子邮件地址。域总是相同的,所以我需要能够以 "john doe"
开始并以 "john.doe@gmail.com"
结束(不打算指定实际域,因为它 s irrelevant to the question). Right now I was able to add the
"@gmail.com"` 到字符串,但我不知道如何做剩下的。
我正在考虑将名字读入一个新变量 strFirstName
,将姓氏读入第二个变量 strLastName
,然后添加一行:
strName = strFirstName + "." + strLastName + "@gmail.com"
一次只读一个字可以用什么?我在脚本中使用了以下函数来获取名称,但由于名称的长度可能会有所不同,因此我不能为此使用相同的东西。
strName = Mid(strName, 4 + 11)
strName = Left(strName, (LEN(strName)-13))
如果您的源字符串始终采用以下形式:
C:\Directory\first last\OS - Information
然后您可以使用几个 Split()
s:
strSource = "C:\Directory\John Doe\OS - Information"
strName = Split(strSource, "\")(2)
strFirst = Split(strName)(0)
strLast = Split(strName)(1)
第一个 Split()
用 \
分隔您的字符串,创建 4 个元素。由于您只关心第三个(索引 2
),因此您可以仅将 (2)
附加到 return 那个字符串。
现在我们有了 John Doe
,只需再次使用 Split()
(space 字符是默认字符)来提取名字和姓氏。
现在您可以创建您的电子邮件地址:
strEmail = strFirst & "." & strLast & "@gmail.com"