使用streamReader读取文件时出错 [英] Error while reading a file using streamReader

查看:212
本文介绍了使用streamReader读取文件时出错的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在读取放在目录中某个位置的文件,如果我得到类似连接重置或异常的内容,我将整行保存在接下来的3行。





I''m reading a file placed in somewhere in the directory, If I get something like "Connection reset" or "Exception" I''m storing that entire line with next 3 lines.


Function SearchException(ByVal filePath As String, ByVal fileName As String)
      Dim strTextFile As StreamReader
      Dim rowLength As Integer = 0
      Dim eachLine As String
      Dim strFilePath = filePath & "\" & fileName
      Dim flagChk As Boolean

      strTextFile = File.OpenText(filePath & "\" & fileName)
      txtVewLogDetail.Text = strTextFile.ReadToEnd

      ''TextBox1.Text = fileName.Remove(10)

      Dim strStartupLine As String
      strStartupLine = getStartupDate(fileName.Remove(10))

      Dim r As StreamReader = New StreamReader(strFilePath)
      Dim aryShowString() As String
      Dim intLine As Integer = 0
      'rowLength = File.ReadAllLines(strFilePath).Length

      While (r.ReadLine() IsNot Nothing)
          rowLength = rowLength + 1
          eachLine = r.ReadLine()
          If (eachLine.Contains("Connection reset")) Then
              aryShowString(0) = eachLine.ToString()
              intLine = intLine + 1
              MsgBox("Exception Found at Row = " & rowLength)
              'flagChk = True
          End If
      End While
END SUB





这里aryShowString是一个数组,当我试图存储每个字符串本身的内容时,它不起作用。



请帮帮我...



Here aryShowString is an array, when I''m trying to store the content of eachLine which is a string itself, is not working.

Please Help me on this...

推荐答案

将它从一个数组更改为一个字符串列表,然后使用Add方法包含列表中的另一个字符串。目前,您将每一行加载到相同的数组元素中,这意味着您最终只得到最后一个值。

Change it from an Array to a List of strings, then use the Add method to include another string in the list. At the moment, you load each line into the same array element, which means you end up with just the last value.
Dim r As StreamReader = New StreamReader(strFilePath)
Dim lines As New List(Of String)()
Dim intLine As Integer = 0
'rowLength = File.ReadAllLines(strFilePath).Length

While (r.ReadLine() IsNot Nothing)
    rowLength = rowLength + 1
    eachLine = r.ReadLine()
    If (eachLine.Contains("Connection reset")) Then
        lines.Add(eachLine)
        intLine = intLine + 1
        MsgBox("Exception Found at Row = " & rowLength)
        'flagChk = True
    End If
End While

如果你真的需要列表最后作为数组,你可以使用ToArray方法。

If you really need the list as an array at the end, you can use the ToArray method.


这篇关于使用streamReader读取文件时出错的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆