0
我有2个子例程调用另一个来写入日志文件。数据放在一个名为LogData()的数组中。子例程1包含3个元素,而子例程2包含4.如果我只使用所有LogData()元素编写日志,则在子例程1运行时会出错,因为它不包含LogData(3)中的任何元素。我如何检查LogData元素(3)是否保存一个值,如果是,将它写入日志?我试着用下面的if语句,但这样的错误:VB.net检查数组元素是否存在
If (Not LogData(3) Is Nothing) Then
w.WriteLine("Address : {0}", LogData(3))
End If
我也试过:
If LogData.Count > 2 Then
If Not arrayList(yourIndex) Is Nothing Then
如果我只是写LogData()日志文件,我可以只使用一个循环。不过,因为我在每个元素之间添加文本,所以我无法做到这一点。
子1:
Dim appData As String = GetFolderPath(SpecialFolder.ApplicationData)
Dim LogPath As String = appData & "\myApplication"
Dim LogData() As String = {Username, Action, Domain}
If (Not System.IO.Directory.Exists(LogPath)) Then
System.IO.Directory.CreateDirectory(LogPath)
End If
Using w As StreamWriter = File.AppendText(LogPath & "\log.txt")
Log(LogData, w)
End Using
子2:
Dim appData As String = GetFolderPath(SpecialFolder.ApplicationData)
Dim LogPath As String = appData & "\myApplication"
Dim LogData() As String = {Username, Action, Domain, Address}
If (Not System.IO.Directory.Exists(LogPath)) Then
System.IO.Directory.CreateDirectory(LogPath)
End If
Using w As StreamWriter = File.AppendText(LogPath & "\log.txt")
Log(LogData, w)
End Using
日志子:阵列的
Public Shared Sub Log2(LogData As Array, w As TextWriter)
w.Write(vbCrLf)
w.WriteLine("Log Entry : {0} - {1}", DateTime.Now.ToLongTimeString(), DateTime.Now.ToLongDateString())
w.WriteLine("username : {0}", LogData(0))
w.WriteLine("Action : {0}", LogData(1))
w.WriteLine("Domain : {0}", LogData(2))
If (Not LogData(3) Is Nothing) Then
w.WriteLine("Address : {0}", LogData(3))
End If
w.WriteLine("Application version: " & Application.ProductVersion)
w.WriteLine("-------------------------------")
End Sub
Perfec吨,那工作!谢谢! –