Как загрузить данные из текстового файла в просмотр списка в C # Windows Form - PullRequest
0 голосов
/ 02 ноября 2018

Я пытаюсь загрузить информацию из текстового файла в список. Я знаю, что это можно сделать, но мне трудно понять, где я иду не так. Это должен быть текстовый файл, а не CSV, хотя текст настроен как CSV. Это то, что я до сих пор ...

private void Form1_Load(object sender, EventArgs e)
    {
        listView1.View = View.Details;
        listView1.Columns.Add("Name");
        listView1.Columns.Add("Address");
        listView1.Columns.Add("Age");
        listView1.Columns.Add("Gross Pay");
        listView1.Columns.Add("Division");

        // Auto-size the columns
        for (int i = 0; i < listView1.Columns.Count; i++)
        {
            listView1.Columns[i].Width = -2;
        }
    }
 private void ListView1_SelectedIndexChanged(object sender, EventArgs e)
        {
            var fileLines = File.ReadAllLines(@"C:\data.txt");

for (int i = 0; i + 4 < fileLines.Length; i += 5)
            {
                listView1.Items.Add(
                    new ListViewItem(new[]
                    {
            fileLines[i],
            fileLines[i + 1],
            fileLines[i + 2],
            fileLines[i + 3],
            fileLines[i + 4]
                    }));
            }

            // Resize the columns
            for (int i = 0; i < listView1.Columns.Count; i++)
            {
                listView1.Columns[i].Width = -2;
            }
        }
    }
}

В настоящее время в форме ничего не отображается, даже пустое представление списка. Я просмотрел весь этот сайт и попытался выбрать то, что использовали другие люди, и, похоже, ничто не соответствует тому, что я пытаюсь сделать. Любая помощь очень ценится. Я все еще довольно новичок в этом языке, но я пытаюсь выучить.

1 Ответ

0 голосов
/ 02 ноября 2018

Вы можете попробовать следующее. Условие состоит в том, что столбцы файла CSV должны соответствовать столбцам представления списка.

listView.View = View.Details;
listView.Columns.Add ( "Name" );
listView.Columns.Add ( "Address" );
listView.Columns.Add ( "Age" );
listView.Columns.Add ( "Gross Pay" );
listView.Columns.Add ( "Division" );

List<string> data = File.ReadAllLines ( "TestCSV.txt" ).ToList ( );
foreach(string d in data)
{
    string[] items = d.Split(new char[] {','}, 
           StringSplitOptions.RemoveEmptyEntries);
     listView.Items.Add ( new ListViewItem ( items ) );                
}

Пример содержимого файла в формате CSV, но с расширением txt:

Name1,Address1,Age1,Gross Pay1,Division1,
Name2,Address2,Age2,Gross Pay2,Division2,
Name3,Address3,Age3,Gross Pay3,Division3,

Если вы разрешите пропуски в столбце. Затем снимите условие:

StringSplitOptions.RemoveEmptyEntries
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...