Для тех кто впервые тут и не шарит в Visual Studio рекомендую ознакомиться - Тыкай =================================== Что мы будем делать? 1. Открытие .txt файла через кнопку 2. Считывание строк и деление на "Логин" и "Пароль" через разделитель ( : или ; ) 3. Вывод этих строк в листбоксы =================================== Приступим =================================== Нам нужнo: 2 Buttons 2 listBox 1 checkBox 1 openfiledialog =================================== И так у меня Кнопка "Загрузить файлик" - "button1" Кнопка "Старт" - "button2" ЛистБокс с логинами - "listBox1" ЛистБокс с паролями - "listBox2" Чекбокс - "checkBox1" =================================== Дабл клик по кнопке "Загрузить файлик" Открылся код Ищем в коде public Form1() { InitializeComponent(); } И под InitializeComponent(); вставляем: openFileDialog1.Filter = "Текстовый документ | *.txt"; Это значит что наше диалоговое окно может брать только .txt файл Так же без использования кода можно добавить в свойство Filter - Текстовый документ | *.txt =================================== Снова открываем вкладку с кодом Добавляем public переменные (значит что их можно использовать по всему коду, а не только для одной кнопки) Добавлять их надо так, чтобы они не попали в действия { } кнопки, чекбокса, или еще чего либо. Переменные: public string filename = @""; public string razdelitel; public string login, pass; =================================== Возвращаемся в редактор дизайна И снова кликаем много раз по "загрузить файл" Теперь вписываем туда if(openFileDialog1.ShowDialog() == DialogResult.OK) { filename = openFileDialog1.FileName; } P.S можно не использовать { } так как делается только одно действие Это значит мы будем открывать openFileDialog и если на диалоге было нажато ОК, то в переменную filename записывается путь к файлу. =================================== Теперь кликнем много раз по кнопке "Старт" Перед тем как вставить код используйте библиотеку (в самом начале кода (в самом самом)) он нужен для работы с текстом using System.IO; Тут кода поболее: string[] split; StreamReader Filen = new StreamReader(filename); while((razdelitel = Filen.ReadLine()) != null) { if(checkBox1.Checked) { split = razdelitel.Split(':'); } else { split = razdelitel.Split(';'); } login = split[0]; pass = split[1]; listBox1.Items.Add(login); listBox2.Items.Add(pass); } Filen.Close(); Да, я знаю что можно был не добавлять перемнные login и pass,а написать listBox1.Items.Add(split[0]); listBox2.Items.Add(split[1]); но так как создано для новиков, мне кажется что так будет немного понятнее для них. =================================== =================================== Кому что не понятно - пишите в комментарии, помогу. #моястатья
На мой взгляд было бы практичнее сделать автоматическое определение разделителя через if (razdelitel.Contains(";")) Да и много лишнего, даже для новичков
namespace ConsoleApp1 { class Program { static void Main(string[] args) { List<Account> acclist = new List<Account>(); //Создание листа куда мы будем добавлять аккаунты using (StreamReader inputfile = new StreamReader("Code.txt")) // Инициализация StreamReader с первым аргументом - пути до файла { while (inputfile.ReadLine() != null) // Пока есть данные - читаем их { string inputstring = inputfile.ReadLine(); // Читаем строку string[] splitstring = inputstring.Split(new[] { ';', ':' }); // Разделяем строку by Hangover acclist.Add(new Account {Login = splitstring[0], Password = splitstring[1] }); // Добавляем элемент в лист } } // Уничтожаем объект inputfile юзая using - Аналог метод Dispose или Close } } class Account { public string Login; public string Password; } } Код namespace ConsoleApp1 { class Program { static void Main(string[] args) { List<Account> acclist = new List<Account>(); //Создание листа куда мы будем добавлять аккаунты using (StreamReader inputfile = new StreamReader("Code.txt")) // Инициализация StreamReader с первым аргументом - пути до файла { while (inputfile.ReadLine() != null) // Пока есть данные - читаем их { string inputstring = inputfile.ReadLine(); // Читаем строку string[] splitstring = inputstring.Split(new[] { ';', ':' }); // Разделяем строку by Hangover acclist.Add(new Account {Login = splitstring[0], Password = splitstring[1] }); // Добавляем элемент в лист } } // Уничтожаем объект inputfile юзая using - Аналог метод Dispose или Close } } class Account { public string Login; public string Password; } } Не нужно новичков приучать к говнокоду)
Инкапсуляция по моему мнению тут не к чему, тем более если пример для новичков. Ну а так поля инициализируются очень легко class Account { private string _login; private string _password; public string Login { get { return _login; } set { _login = value; } } public string Password { get { return _password; } set { _password = value; } } } Код class Account { private string _login; private string _password; public string Login { get { return _login; } set { _login = value; } } public string Password { get { return _password; } set { _password = value; } } }