简体   繁体   中英

how to read a specific csv line vb.net

ask permission, I created a bot to input data to the web using vb.net and selenium. Retrieve data from csv. How to retrieve data from csv as needed, for example, there are 100 rows, only 30-50 rows are taken, for example. The loop code should not be looped at all.

 Dim textFieldParser As TextFieldParser = New TextFieldParser(TextBox1.Text) With
                {
                    .TextFieldType = FieldType.Delimited,
                    .Delimiters = New String() {","}
                }

        drv = New ChromeDriver(options)
        While Not textFieldParser.EndOfData
            Try
                Dim strArrays As String() = textFieldParser.ReadFields()
                Dim name As String = strArrays(0)
                Dim alamat As String = strArrays(1)
                Dim notlp As String = strArrays(2)
                drv.Navigate().GoToUrl("URL")
                Dim Nm = drv.FindElement(By.XPath("/html/body/div[1]/div[3]/form/div[1]/div[1]/div[1]/div/div[2]/input"))
                Nm.SendKeys(name)
                Threading.Thread.Sleep(3000)
            Catch ex As Exception
            MsgBox("Line " & ex.Message & "is not valid and will be skipped.")

                End Try
        End While
    

Thank you

Here's an example of using TextFieldParser to read one specific line and a specific range of lines. Note that I am using zero-based indexes for the lines. You can adjust as required if you want to use 1-based line numbers.

Public Function GetLine(filePath As String, index As Integer) As String()
    Using parser As New TextFieldParser(filePath) With {.Delimiters = {","}}
        Dim linesDiscarded = 0

        Do Until linesDiscarded = index
            parser.ReadLine()
            linesDiscarded += 1
        Loop

        Return parser.ReadFields()
    End Using
End Function

Public Function GetLines(filePath As String, startIndex As Integer, count As Integer) As List(Of String())
    Using parser As New TextFieldParser(filePath) With {.Delimiters = {","}}
        Dim linesDiscarded = 0

        Do Until linesDiscarded = startIndex
            parser.ReadLine()
            linesDiscarded += 1
        Loop

        Dim lines As New List(Of String())

        Do Until lines.Count = count
            lines.Add(parser.ReadFields())
        Loop

        Return lines
    End Using
End Function

Simple loops to skip and to take lines.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM