在VS2010中,c#windows形式。我正在尝试加载并显示(读取)当前在我的bin \ Debug文件夹中的文本文件(“booklist.txt”),它是制表符分隔的,进入多列列表视图。我尝试了一个foreach循环foreach(在arrayname中的字符串ya),它似乎填充了一些东西,因为listview扩展但没有显示任何东西并冻结了程序。编辑:正确添加,我得到文本中的第一条记录来填充LV,但没有其他人。记录由新行分隔,并且用于分隔不同字段/信息的制表符以进入每一列。
static FileStream textFile = new FileStream("booklist.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite);
StreamReader reader = new StreamReader(textFile);
string[] booksTextArray;
private void LoadButton_Click(object sender, EventArgs e)
{
// loads text file with existing book catalog
string recordIn = reader.ReadLine();
booksTextArray = recordIn.Split('\t');
for (int i = 0; i < booksTextArray.Length; i++)
{
listView1.Items.Add(booksTextArray[i]);
}
}
答案 0 :(得分:1)
以下是您可以使用的一般算法:
//Holders.
string line = "";
string[] items;
ListViewItem listItem;
//While there are lines to read.
while((line = reader.ReadLine()) != null)
{
items = line.Split('\t') //Split the line.
listItem = new ListViewItem(); //"Row" object.
//For each item in the line.
for (int i = 0; i < items.Length; i++)
{
if(i == 0)
{
listItem.Text = items[i]; //First item is not a "subitem".
}
else
{
listItem.SubItems.Add(items[i]); //Add it to the "Row" object.
}
}
listView1.Items.Add(listItem); //Add the row object to the listview.
}