查看字符串变量是否为空。如果它为空,则为其添加一个值

时间:2015-08-14 13:24:57

标签: vbscript

我正在通过CSV文件从风电场读取能源数据。 并将其传递给新的CSV文件。这个文件需要有值。

但有时风电场离线且我的变量将为空。 所以我需要一种方法来查看是否有空并为其分配“0”。 OPC文件值由OPC服务器读取,因此需要包含值。

div {
    height: 16px;
}

2 个答案:

答案 0 :(得分:1)

对您的代码的一些评论:

  • 使用Option Explicit语句(第1行代码);
  • 使用On Error Goto 0语句(第二行代码)而不是On Error Resume Next;
  • 重新定义Set objFSO = CreateObject("Scripting.FileSystemObject")似乎是多余的:这个陈述的第一次出现就足够了;
  • 我将strNextLine = Trim( objFile.ReadLine)用于下一个If Len(strNextLine) > 0测试准确度;
  • If UBound(arrCSVData) < 60 Then Redim Preserve arrCSVData(60)以确保所有已使用的数组项都存在并防止VBScript运行时错误Subscript out of range: '[number: #]';
  • 省略For i = LBound(arrCSVData) To UBound(arrCSVData)循环(即此行和相应的Next):它循环相同的代码 UBound(arrCSVData)+1次;
  • 使用例如Y9 = replaceEmpty(arrCSVData(60), "0")如果replaceEmpty函数定义如下:
Function replaceEmpty( sValueToTest, defaultVal)
  If IsNull( sValueToTest) Then
    replaceEmpty = ""
  Else
    replaceEmpty = CStr(sValueToTest)
  End If
  If Trim( replaceEmpty) = "" Then replaceEmpty = defaultVal
End Function

答案 1 :(得分:0)

在使用数据为数组中的变量赋值时,在for循环中。根据以下示例更改代码。即对于可能等于&#34;&#34;的每个数据项。当你需要它时,改变相应的行

即改变

gsub( "*" , "" , "All Large Firms*", fixed=TRUE)

Y1 = arrCSVData(2)

另外,我想知道您使用Y1 = iif( arrCSVData(2)="",0 ,arrCSVData(2) ) 的原因。