listview1 保存和读取 listViewItems保存为txt

Posted xe2011

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了listview1 保存和读取 listViewItems保存为txt相关的知识,希望对你有一定的参考价值。

 

 

技术图片

   /*
         *   保存原理
         *   将LISTVIEW视为一行一行的字符串
         *   将所有的行合并成一个字符串 然后保存为TXT文件
         *  
* 而每行又是由 几个 子项组成,先把子项连接成字符串
         *   2019年11月27日 18:03:17
         */

源文件:https://download.csdn.net/download/u012663700/12001338

 1 using System;
 2 using System.Collections;
 3 using System.Collections.Generic;
 4 using System.ComponentModel;
 5 using System.Data;
 6 using System.Drawing;
 7 using System.IO;
 8 using System.Linq;
 9 using System.Text;
10 using System.Windows.Forms;
11 
12 namespace ListViewItemsReadWrite
13 {
14     public partial class Form1 : Form
15     {
16         public Form1()
17         {
18             InitializeComponent();
19         }
20 
21         //保存到文件,没有指定路径则路径就是当前EXE的路径
22         string conf = "test.txt";
23         /*
24          *   保存原理
25          *   将LISTVIEW视为一行一行的字符串
26          *   将所有的行合并成一个字符串
27          *   
28          *   而每行又是由 几个 子项组成,先把子项连接成字符串
29          *   2019年11月27日 18:03:17
30          */
31 
32          //SAVE
33         private void button1_Click(object sender, EventArgs e)
34         {
35             //将listView中的内容保存成TXT格式
36             string[] arr = new string[listView1.Items.Count];
37             for (int i = 0; i < listView1.Items.Count; i++)
38             {
39                 string s = "";
40                 int len = listView1.Items[0].SubItems.Count;
41                 for (int j = 0; j < len; j++)
42                 {
43                     //用逗号作为分割符 如果 有子项中包含逗号 要出问题的
44                     s += SqlString.Transform(listView1.Items[i].SubItems[j].Text) + ",";
45                 }
46 
47                 if (s.EndsWith(","))
48                     s = s.Substring(0, s.Length - 1);
49                 
50                 arr[i] = s;
51             }
52             //保存到文件
53             File.WriteAllLines(conf, arr);
54         }
55 
56         //READ
57         private void button2_Click(object sender, EventArgs e)
58         {
59             //从文本中读取数据到listView当中
60 
61             string[] array = File.ReadAllLines(conf);
62 
63             listView1.Items.Clear();
64             for (int i = 0; i < array.Length; i++)
65             {
66                 if (array[i].Length > 0)//不添加空行
67                 {
68                     ListViewItem listviewItem = new ListViewItem();
69                     string s = array[i].ToString();
70 
71                     //这里没有对格式是否符合要求进行判断,如果内容被修改成其他格式则会出异常的
72                     string[] arr = s.Split(,);  
73                     listviewItem.Text = SqlString.Restore(arr[0]);
74                     listviewItem.SubItems.Add(SqlString.Restore(arr[1]));
75                     listviewItem.SubItems.Add(SqlString.Restore(arr[2]));
76                     listviewItem.SubItems.Add(SqlString.Restore(arr[3]));
77                     listView1.Items.Add(listviewItem);
78                 }
79             }
80         }
81 
82         private void button3_Click(object sender, EventArgs e)
83         {
84             listView1.Items.Clear();
85         }
86     }
87 }

 

以上是关于listview1 保存和读取 listViewItems保存为txt的主要内容,如果未能解决你的问题,请参考以下文章

c# winform 如何读取 listview里的每一条数据

C#如何在一个窗体中读取另一个窗体的控件的数据

winform中ListView绑定问题

c# listView1写入第一行第一列

DELPHI Listview可以做出类似以下效果显示吗

004_Delphi界面篇之ListView控件