У меня есть некоторая информация в текстовом файле, которую я хочу прочитать и отобразить в списке в WPF. Вот что у меня есть в текстовом файле:
First Name: ABC
Last Name: def
Mobile: 5453553535
email: abc@gmail.com
И это код:
private void listView1_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
string text;
FileStream aFile = new FileStream("D:\\PhoneBook.txt", FileMode.Open);
StreamReader sr = new StreamReader(aFile);
text = sr.ReadLine();
// Read data in line by line.
while (text != null)
{
foreach (string info in text.Split(','))
{
listView1.Items.Add(info);
}
}
sr.Close();
}
Каждый раз, когда я запускаю программу, список пуст и зависает. Любая помощь будет оценена. Спасибо
2 ответа
Вам нужно добавить в цикл строку чтения:
private void listView1_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
string text;
FileStream aFile = new FileStream("D:\\PhoneBook.txt", FileMode.Open);
StreamReader sr = new StreamReader(aFile);
text = sr.ReadLine();
// Read data in line by line.
while (text != null)
{
foreach (string info in text.Split(','))
{
listView1.Items.Add(info);
}
// read the next line here
text = sr.ReadLine();
}
sr.Close();
}
Но лучший подход был бы:
while(!sr.EndOfStream)
{
text = sr.ReadLine();
// now write ...
}
Вы не обновляете «текст» внутри цикла - вам просто нужно добавить text = sr.ReadLine (); там, чтобы избежать бесконечного цикла while!
Тем не менее, вы можете просто использовать File.ReadAllLines () - https://docs.microsoft.com/en-us/dotnet/api/system.io.file.readalllines?view=netframework-4.7.2
Новые вопросы
c#
C # (произносится как «резкий») - это высокоуровневый, статически типизированный язык программирования с несколькими парадигмами, разработанный Microsoft. Код C # обычно нацелен на семейство инструментов и сред выполнения Microsoft .NET, включая, среди прочего, .NET Framework, .NET Core и Xamarin. Используйте этот тег для вопросов о коде, написанном на C # или в формальной спецификации C #.