Загрузка списка из файла - PullRequest
       4

Загрузка списка из файла

1 голос
/ 20 августа 2011

Я впервые создаю программу на C #, поэтому я прошу прощения, если этот вопрос кажется базовым.У меня есть 3 списка в форме дизайна вместе с 3 кнопками. Я хочу загрузить список элементов в каждое текстовое поле, когда я нажимаю соответствующую кнопку для списка.может кто-нибудь научить меня, как это сделать.

Ответы [ 4 ]

3 голосов
/ 20 августа 2011

Аббас дал вам достаточный ответ, но у него есть пара проблем, поэтому я решил добавить свой собственный ответ.Проблемы:

  1. Потоки (все, что реализует IDisposable) должны быть закрыты после того, как вы закончите с ними.Вы можете сделать это, вручную вызвав Dispose() или обернув создание объекта в блок using.
  2. Не следует добавлять элементы в список один за другим, как в случае, если естьбольшое количество предметов.Это приведет к снижению производительности, и окно списка будет мигать при обновлении / перерисовке после добавления каждого элемента.

Я бы сделал что-то вроде этого:

using System.IO;
// other includes

public partial class MyForm : Form
{
    public MyForm()
    {
        // you can add the button event 
        // handler in the designer as well
        someButton.Click += someButton_Click;
    }

    private void someButton_Click( object sender, EventArgs e )
    {
        PopulateList( "some file path here" );
    }

    private void PopulateList( string filePath )
    {
        var items = new List<string>();
        using( var stream = File.OpenRead( filePath ) )  // open file
        using( var reader = new TextReader( stream ) )   // read the stream with TextReader
        {
            string line;

            // read until no more lines are present
            while( (line = reader.ReadLine()) != null )
            {
                items.Add( line );
            }
        }

        // add the ListBox items in a bulk update instead of one at a time.
        listBox.AddRange( items );
    }
}
1 голос
/ 20 августа 2011

попробуйте этот пример, не забудьте включить System.IO;

Использование System.IO;

        private void button3_Click(object sender, EventArgs e)
    {
        //Pass the file path and file name to the StreamReader constructor
        StreamReader sr = new StreamReader("youfilePath");
        string line = string.Empty;
        try
        {
            //Read the first line of text
            line = sr.ReadLine();
            //Continue to read until you reach end of file
            while (line != null)
            {
                this.listBox1.Items.Add(line);
                //Read the next line
                line = sr.ReadLine();
            }

            //close the file
            sr.Close();
        }
        catch (Exception e)
        {
            MessageBox.Show(e.Message.ToString());
        }
        finally
        {
            //close the file
            sr.Close();
        }
    }

С уважением.

1 голос
/ 20 августа 2011

все, что вам нужно сделать, это создать обработчик событий для каждой кнопки.Вы можете сделать это, дважды щелкнув по кнопке на дизайнере visual-studio.Затем вы увидите окно кода со следующим вновь созданным

private void button1_Click(object sender, EventArgs e)
{

}

для этого метода, реализуйте метод загрузки элементов и добавьте их в свои ListBox.Items.например:

private void button1_Click(object sender, EventArgs e)
{
string[] allLines = File.ReadAllLines(@"C:\Test.txt"); // reads all lines from text file
listBox1.AddRange(allLines); // Adds an array of objects into the ListBox's Item Collection.
}

Надеюсь, это поможет и удачи!

1 голос
/ 20 августа 2011

Это шаги для загрузки текстового файла в списке.

  1. Читать текстовый файл построчно
  2. Во время чтения заполните список

Вот небольшой пример того, как это сделать:

string line;
var file = new System.IO.StreamReader("C:\\PATH_TO_FILE\\test.txt");
while ((line = file.ReadLine()) != null)
{
    listBox1.Items.Add(line);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...