/*
         *   保存原理
         *   将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 = ; i < listView1.Items.Count; i++)
  38. {
  39. string s = "";
  40. int len = listView1.Items[].SubItems.Count;
  41. for (int j = ; 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(, s.Length - );
  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 = ; i < array.Length; i++)
  65. {
  66. if (array[i].Length > )//不添加空行
  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[]);
  74. listviewItem.SubItems.Add(SqlString.Restore(arr[]));
  75. listviewItem.SubItems.Add(SqlString.Restore(arr[]));
  76. listviewItem.SubItems.Add(SqlString.Restore(arr[]));
  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的更多相关文章

  1. 【原】Learning Spark (Python版) 学习笔记(二)----键值对、数据读取与保存、共享特性

    本来应该上周更新的,结果碰上五一,懒癌发作,就推迟了 = =.以后还是要按时完成任务.废话不多说,第四章-第六章主要讲了三个内容:键值对.数据读取与保存与Spark的两个共享特性(累加器和广播变量). ...

  2. Protobuf for Python测试保存和读取文件

    安装pip, setuptools, and wheel 如果已经从python.org,安装啦Python 2 >=2.7.9 or Python 3 >=3.4 ,那么就已经有啦pip ...

  3. matlab各格式数据读取与保存函数

    数据处理及matlab的初学者,可能最一开始接触的就是数据的读取与保存: %matlab数据保存与读入 function datepro clear all; %产生随机数据 mat = rand(, ...

  4. JavaScript进阶(六)用JavaScript读取和保存文件

    用JavaScript读取和保存文件 因为Google还不提供同步插件数据的功能,所以导入和导出插件配置就必须和文件打交道了.而出于安全原因,只有IE才提供访问文件的API:但随着HTML 5的到来, ...

  5. Spark学习之数据读取与保存总结(一)

    一.动机 我们已经学了很多在 Spark 中对已分发的数据执行的操作.到目前为止,所展示的示例都是从本地集合或者普通文件中进行数据读取和保存的.但有时候,数据量可能大到无法放在一台机器中,这时就需要探 ...

  6. C# 结构体和List<T>类型数据转Json数据保存和读取

    C#  结构体和List<T>类型数据转Json数据保存和读取 一.结构体转Json public struct FaceLibrary { public string face_name ...

  7. pandas学习(常用数学统计方法总结、读取或保存数据、缺省值和异常值处理)

    pandas学习(常用数学统计方法总结.读取或保存数据.缺省值和异常值处理) 目录 常用数学统计方法总结 读取或保存数据 缺省值和异常值处理 常用数学统计方法总结 count 计算非NA值的数量 de ...

  8. Spark学习笔记4:数据读取与保存

    Spark对很多种文件格式的读取和保存方式都很简单.Spark会根据文件扩展名选择对应的处理方式. Spark支持的一些常见文件格式如下: 文本文件 使用文件路径作为参数调用SparkContext中 ...

  9. Python入门--15--文件读取、保存

    先看文件读取,open 1.文件打开模式: 打开模式 执行操作 'r' 以只读方式打开文件(默认) 'w'    以写入的方式打开文件,会覆盖已存在的文件 'x' 如果文件已经存在,使用此模式打开将引 ...

随机推荐

  1. H5打开app指定页面(H5+app项目)

    H5+app项目,在HBuilderX中设置 详情参考官方 https://ask.dcloud.net.cn/article/64 给h5+app设置scheme值,作用:在其它app和h5页面中启 ...

  2. mysql 插入一个字段 id自增并设置为主键

    案例 ALTER TABLE customer MODIFY COLUMN custID int NOT NULL AUTO_INCREMENT 开启: ALTER TABLE 表名 MODIFY C ...

  3. android AlertDialog控件使用

    1.先创建activity_alert_dialog.xml <?xml version="1.0" encoding="utf-8"?> < ...

  4. Python——函数&作用域

    我们前面学的都是面向过程式的编程(代码从上到下写,并运行),而函数式编程是将繁杂的代码通过整理特性进行规整.像图书馆一样,将小说.教学.外文等书籍进行分类.让编程人员或看代码人员很容易的查看该段代码的 ...

  5. gitlab及jenkins

    1.安装配置gitlab服务,在gitlab新建一个仓库,配置本地密钥,并通过ssh方式拉取gitlab仓库代码 https://packages.gitlab.com/gitlab/gitlab-c ...

  6. mysql 压力测试工具sysbench

    2.1 只读示例 ./bin/sysbench --test=/usr/share/sysbench/tests/include/oltp_legacy/oltp.lua --mysql-host=1 ...

  7. DTD学习

    DTD 简介 文档类型定义(DTD)可定义合法的XML文档构建模块.它使用一系列合法的元素来定义文档的结构.DTD 可被成行地声明于 XML 文档中,也可作为一个外部引用. XML文件内部引用: 外部 ...

  8. P2055 [ZJOI2009]假期的宿舍[二分图匹配]

    题目描述 学校放假了 · · · · · · 有些同学回家了,而有些同学则有以前的好朋友来探访,那么住宿就是一个问题. 比如 A 和 B 都是学校的学生,A 要回家,而 C 来看B,C 与 A 不认识 ...

  9. 如何防护DDOS攻击策略

    DDoS是目前最凶猛.最难防御的网络攻击之一.现实情况是,这个世界级难题还没有完美的.彻底的解决办法,但采取适当的措施以降低攻击带来的影响.减少损失是十分必要的.将DDoS防御作为整体安全策略的重要部 ...

  10. [Usaco2006 Jan] Redundant Paths 分离的路径

    1718: [Usaco2006 Jan] Redundant Paths 分离的路径 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 1132  Solv ...