텍스트 파일을 읽어서 ListView 에 뿌리는 예제 코드다.
텍스트 파일의 인코딩 방식은 default 방식인 ANSI 이고, listView 를 직접 선택할 수 있게 코드를 작성했다.
파일을 Line 단위로 읽어서
Split 구분자로 칼럼 구분을 하고, 칼럼 구분된 배열 요소를 ListView 에 저장한다.
private void getTextFile_Click(object sender, EventArgs e)
{
using (OpenFileDialog dlg = new OpenFileDialog())
{
dlg.Filter = "TextFile (*.txt) | *.txt";
if (dlg.ShowDialog() == DialogResult.OK)
{
TextFileRead(dlg.FileName, listView1);
}
}
}
public void TextFileRead(string fileName, ListView LV)
{
string delimiter = "/"; // 구분자
using (var sr = new StreamReader(fileName, System.Text.Encoding.Default, true))
{
string line = null;
LV.Items.Clear(); // 데이터 초기화
while ((line = sr.ReadLine()) != null)
{
string[] columns = line.Split(new string[] { delimiter }, StringSplitOptions.None);
ListViewItem lvt = new ListViewItem(columns[0]);
lvt.SubItems.Add(columns[1]);
lvt.SubItems.Add(columns[2]);
LV.Items.Add(lvt);
}
sr.Close();
}
}
칼럼의 갯수를 동적으로 하고자 한다면
ListViewItem lvt = new ListViewItem(columns[0]);
for (int col = 1; col < columns.Length; col++)
{
lvt.SubItems.Add(columns[col]);
}
LV.Items.Add(lvt);
로 코드를 변경해주면 된다.
'C# > listView' 카테고리의 다른 글
C# 선택된 행과 이전행/다음행 값 서로 Swap (0) | 2016.01.06 |
---|---|
C# listView 창 크기가 변경될 때 칼럼 사이즈 자동 변경하는 방법 (0) | 2015.12.29 |
C# listView Focus ON, Focus OFF 처리 (0) | 2015.12.17 |
C# listView 칼럼너비 사용자 지정 및 칼럼 사이즈 변경 못하게 막기 (0) | 2015.12.16 |
C# listView 기능 분석 (행삭제, Drag&Drop 파일 읽어오기, 칼럼안보이게처리) (0) | 2015.10.15 |