Как улучшить код для быстрого чтения большого файла во многих dataGridViews в c #? - PullRequest
0 голосов
/ 07 июня 2019

Я пытаюсь прочитать большой файл журнала в DataGridView путем поиска определенных строк. Проблема в том, что чтение строк занимает очень много времени. У меня есть 8 DataGridViews, потому что я ищу 8 разных строк (а их много!), И мне нужно по-разному называть каждый столбец для этих строк. Мне нужно найти способ улучшить мой код и ускорить чтение.

Я пытался записать определенные строки во второй файл, а затем прочитать из этого файла, чтобы я мог избежать работы с очень большим файлом каждый раз, когда я что-то ищу. Но это все еще слишком медленно. Также я использую оператор using и StreamWriter, потому что слышал, что он быстрее.

//open file
using (OpenFileDialog openFileDialog = new OpenFileDialog())
{
...
    //search and write in second file
    using (StreamWriter writer = new StreamWriter(secondFilepath + "secondfile.txt"))
    {
        foreach (string line in File.ReadLInes(@"" + filePath + "", Encoding.UTF8))
        {
            if (foundBlabla == false)
            {
                if (line.Contains("specificString/"))
                {
                    writer.WriteLine(line);
                    foundBlabla = true;
                }
            }
        ...
        }
        writer.Close();
    }
}

//read from second file and put in datagridview
foreach (string linew in File.ReadLines(secondFilepath + "\\secondfile.txt". Encoding.UTF8))
{
    if (linew.Contains("specificString/"))
    {
        int startindex = linew.IndexOf("specificString/");
        int Endindex = linew.IndexOf("/>");
        string outputstring = linew.Substring(startindex + 1, Endindex - startindex - 0);

        string[] Columns = outputstring.Split('/');
        dataGridView2.Rows.Add(Columns);
    }
    ...
}}}

//how I switch between DataGridViews
private void RadioButton4_CheckedChanged(object sender, EventArgs e)
{
    dataGridView1.Visible = false;
    dataGridView2.Visible = false;
    dataGridView3.Visible = false;
    dataGridView4.Visible = true;
    dataGridView5.Visible = false;
    dataGridView6.Visible = false;
    dataGridView7.Visible = false;
    dataGridView8.Visible = false;
}

Это то, как я ищу конкретные строки и как я пишу их во втором файле, и как я читаю из этого файла. Как я уже сказал, есть 8 DataGridViews, и я переключаюсь между этими DataGridViews с помощью радиокнопок. Интересно, есть ли лучший способ читать и писать?

...