我有以下一段代码可以正常工作并完成它的目的。但是我的源数据在最底部添加了一条线,这使得这件事情破裂了。当我去删除最后一行时,此代码工作正常。我不想每天运行这个脚本手动修改文件。以下是代码。有什么方法可以忽略我输入的最后一行并处理其余部分。我知道它是一个简单的条件if-else,但我对.net没有任何线索,其他人帮我写了这段代码。提前致谢。
Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
Dim strRow As String
Dim strColSeperator As String
Dim rowValues As String()
strRow = Row.Line.ToString()
If strRow.Contains(",") Then
strColSeperator = (",")
ElseIf strRow.Contains(";") Then
strColSeperator = ";"
End If
rowValues = Row.Line.Split(CChar(strColSeperator))
Row.Code = rowValues.GetValue(0).ToString()
Row.Description = rowValues.GetValue(1).ToString()
Row.Blank = rowValues.GetValue(2).ToString()
Row.Weight = rowValues.GetValue(3).ToString()
Row.Scan = rowValues.GetValue(4).ToString()
End Sub
样本输入数据:643492,PV STRIP 1X1 UTILITY UP ,, 58,893454 输入文件的最后一行:“EndDb”
答案 0 :(得分:1)
这样的事情可以解决问题:
Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
Dim strRow As String
Dim strColSeperator As String
Dim rowValues As String()
strRow = Row.Line.ToString()
If strRow.Contains(",") Then
strColSeperator = (",")
ElseIf strRow.Contains(";") Then
strColSeperator = ";"
End If
rowValues = Row.Line.Split(CChar(strColSeperator))
If (rowValues.Length > 1) Then
Row.Code = rowValues.GetValue(0).ToString()
Row.Description = rowValues.GetValue(1).ToString()
Row.Blank = rowValues.GetValue(2).ToString()
Row.Weight = rowValues.GetValue(3).ToString()
Row.Scan = rowValues.GetValue(4).ToString()
End If
End Sub