C’è un modo migliore per contare le righe in un file di testo?

Sotto è quello che ho usato. Mentre fa il lavoro, il mio programma si blocca quando si tenta di contare piuttosto di un file di grandi dimensioni, diciamo 10.000 o più linee. File più piccoli eseguire in pochissimo tempo.

C’è un migliore o dovrei dire il modo più veloce per contare le righe in un file di testo?

Qui è quello che sto usando attualmente:

    Dim selectedItems = (From i In ListBox1.SelectedItems).ToArray()
    For Each selectedItem In selectedItems
        ListBox2.Items.Add(selectedItem)
        ListBox1.Items.Remove(selectedItem)

        Dim FileQty = selectedItem.ToString
        'reads the data file and returns the qty
        Dim intLines As Integer = 0
        'Dim sr As New IO.StreamReader(OpenFileDialog1.FileName)
        Dim sr As New IO.StreamReader(TextBox1_Path.Text + "\" + FileQty)
        Do While sr.Peek() >= 0
            TextBox1.Text += sr.ReadLine() & ControlChars.CrLf
            intLines += 1
        Loop
        ListBox6.Items.Add(intLines)
    Next
InformationsquelleAutor Muhnamana | 2012-05-10

 

3 Replies
  1. 30
    Imports System.IO.File 'At the beginning of the file
    
    Dim lineCount = File.ReadAllLines("file.txt").Length

    Vedere questo domanda.

    • Molto bello…ho dovuto ritoccare un po ‘ per il VB, ma sembra come il giorno e la notte prima!
    • Lol, tweak. La risposta era già in VB, ma ha solo accidentalmente aggiunto il punto e Virgola. Mi dispiace, lawl era ed era per sottolineare che.
  2. 2

    Anche se rendere il vostro iterazione efficiente come può essere, se la mano di un file sufficientemente grande si sta andando a rendere l’applicazione di gelo, mentre si esegue il lavoro.

    Se si vuole evitare la chiusura, si potrebbe generare un nuovo thread ed eseguire il lavoro in modo asincrono. Se si sta utilizzando .NET 4.0, è possibile utilizzare il Attività classe per rendere questo molto facile.

Lascia un commento