C#程序简单通过txt文本实现数据存储

功能将通过一个简单的.net平台下的winform程序实现:
主窗口界面如下


winform程序基于《C#程序设计经典教程(第3版)》清华大学出版社P106页实验:
C#
设计一个窗体程序,定义一个Student类,
包含学号和姓名两个字段,并定义一个班级类Grade,该类包括一个Student集合,使用索引器访问该集合,实现添加查询功能

由于可能很多初学者在学习中尚未引入数据库相关知识和概念,在设计简单的信息管理程序中不知道如何保存 数据,在本实验中数据存储全部通过类成员来存储,就导致在程序关闭后引起数据丢失,因此我就引入通过txt文本文档对程序中的数据进行存储,实现一个类似数据库的功能。
让程序可以通过txt文本实现对程序数据的一个导入和导出。

在窗口中设计两个读取写入按钮

保存按钮代码:

private void 保存ToolStripMenuItem_Click(object sender, EventArgs e){string ss=null;if (i != 0){//保存文档命名string str1 = Interaction.InputBox("保存的数据名", "保存", "文本内容", -1, -1);//打开文件夹选择窗口System.Windows.Forms.FolderBrowserDialog dialog = new System.Windows.Forms.FolderBrowserDialog();dialog.Description = "请选择文件夹";if (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK){if (string.IsNullOrEmpty(dialog.SelectedPath)){MessageBox.Show("文件夹路径不能为空", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning);return;}//获取文件夹路径ss = dialog.SelectedPath + "\\";}//删除旧文件防止数据重复System.IO.File.Delete(ss + str1 + ".lly");for (int ii = 0; ii < i; ii++){//在新建文件中逐行添加数据string str = st1[ii].sno + " " + st1[ii].name + " " + st1[ii].chinese.ToString() + " " + st1[ii].math.ToString() + " " + st1[ii].english.ToString() + "\n";System.IO.File.AppendAllText(ss+str1+".lly", str);}}}

注: string str1 = Interaction.InputBox("保存的数据名", "保存", "文本内容", -1, -1);的作用是弹出一个输入框,我用str1来接收输入的内容,在.net中要使用这段代码的话需要引入一个Microsoft.VisualBasic;,或者自己重新设计一个输入窗口也是可以的。

文档中生成的.lly后缀是我自己弄的,改成txt就行。
读取按钮代码:

private void 读取ToolStripMenuItem_Click(object sender, EventArgs e){//清除当前的类数据成员保存的数据st1 = new Student[100];gr = new Grade();//打开文件选择窗口OpenFileDialog dialog = new OpenFileDialog();dialog.Multiselect = false;//该值确定是否可以选择多个文件dialog.Title = "请选择文件夹";dialog.Filter = "lly文件(*.lly)|*.lly";//限制选择文件类型,其实我这里的lly都是txtif (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK){// 读入所有行string[] lines = File.ReadAllLines(dialog.FileName);// 点列表集合int ii = 0;for (ii = 0; ii < lines.Length; ii++){string line = lines[ii];// 以空格拆分行string[] v = line.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);//将每一行的数据用于创建新的Studentst1[ii] = new Student(v[0], v[1], double.Parse(v[2]), double.Parse(v[3]), double.Parse(v[4]));gr.Add(st1[ii]);}i = ii;MessageBox.Show("导入成功");Updata();//txt文档中的所有数据已经显示在窗口程序中的DataGridView中了            }}

展示功能效果如下
先在系统中录入几组数据如下

此时以上的这些数据都是存储在st1这个数组当中的,此时如果关闭程序的话,数据就全部清空,因此下一步执行保存操作:

在这里我选择把文档保存在桌面,可以看见桌面已经出现了保存的文档

打开TEST1可以看见对应数据,同时按照格式对其进行编辑也可以让窗口程序对其进行读取

关闭程序之后再重新打开,数据已经清空,进行读取操作选择之前保存的TEST1就可以在窗口中重新看到之前保存的数据了。

作为一个初学者分享一些学习到的东西,可能有很多不足,代码借鉴了很多大佬的分享。希望大家多提建议!

C#程序简单通过txt文本实现数据存储相关推荐

  1. Navicat怎样导入Excel表格和txt文本的数据

    Navicat怎样导入Excel表格数据 1. 准备excel数据表,第一行是字段名,第二到五行是数据 (1.当需要存储的字段为null时,对应的单元格不写  2.注意数据是在哪个工作表中,例如:下面 ...

  2. c语言从txt文本读取数据

    概述 下载了visual studio 2019,想要从下面的txt文本里读取数据到数组中,本来以为是比较简单的,但是发现自己对c语言的使用还是不太熟练导致了许多问题,所以还是小记一下.首先要说的是这 ...

  3. 《TXT文本+Excel数据批处理》一眼就会VLOOKUP函数。

    抽出时间整理下数据的处理方法.有些时候拿到的数据表是XLS.XLSX格式表,而且有些列是概述,需要处理后导入到数据库表中才可用. 处理方法: 1.TXT文本工具:查询.替换同类数据为XXX.(应用:如 ...

  4. php记录访问保存数据库,php无需数据库访问者计数器(txt文本保存数据)

    本款程序是利用php txt实现的网页访问次数统计代码,要记录用户访问了页站页面的次数比较简单实用. include ("counter.php") ?>  代码如下 复制代 ...

  5. TXT文本大数据比较导出工具

    运行环境:支持所有Linux系统,苹果操作系统,所有Windows 64位的操作系统 需要内存:至少8GB,推荐使用16G的内存 需要固态硬盘:固态硬盘剩余空间必须是被处理数据大小的3倍,如果只有机械 ...

  6. vb mysql数据导入到mssql,[请教]怎样把*.txt文本的数据导入sql数据库中?

    我分两步走,先将文本文件导入到grid中,然后再上传到数据库.但是我测试下列代码来将文本文件导入时总是出错,不能成功导入,代码如下:Private Sub Command1_Click() On Er ...

  7. TXT文本大数据手机号码归属地批量归类查询处理工具

    运行环境: 所有Windows 64位系统 内存需求:至少8G 能处理数据的大小:理论上无上限 硬盘要求:建议使用固态硬盘,因为它的速度会更快 手机号码归属地按省份划分大类,同时按手机号码前七位划分小 ...

  8. C++读取txt数据为二维数组 将数据保存到txt文本中

      C++读取txt数据为二维数组 保存txt文本数据     C++文件读写操作有:ofstream,ifstream,fstream: #include <fstream> ofstr ...

  9. Python:实现多个txt文本的简单合并,亲测简单好用,保姆教程

    声明:非原创,我是python废废,原博客连接为:Python批量合并多个txt文件_自由的小白的博客-CSDN博客_python 合并多个txt,我在这里只做分享,好博客要更多人看到嘛! 一.成果展 ...

  10. unity 实现文本选中_Unity中如何读取TXT文本内容

    在游戏开发过程中,我们是离不开需求的,而需求的事情是由策划来做的,那么我们和策划也是需要沟通交流的,那么是怎么交流的呢?策划不需要写代码,只需要思考一些游戏的内容,数据,玩法的实现,然后让我们按照策划 ...

最新文章

  1. 在IIS上搭建WebSocket服务器(三)
  2. 嵌入式FreeRTOS系统,在中断中调用FreeRTOS系统的API函数
  3. 【filezilla】 ubuntu下安装filezilla
  4. 小甲鱼 OllyDbg 教程系列 (四) : 逆向 VisualSite Designer 之 硬件断点
  5. oracle dbua 升级,33篇Oracle升级文档大全(收藏版)
  6. LeetCode 102. 二叉树的层次遍历(递归)(迭代)
  7. 双向BUCK BOOST DCDC变换器仿真模型 BUCK BOOST 拓扑结构,电压电流双闭环控制策略
  8. 【持续更新】MARL 算法汇总
  9. HTML+CSS网页制作——恒德电子
  10. Python语言程序设计前言
  11. 16代表啥_16代表的爱情恋爱含义16代表什么爱情含义
  12. C语言扫雷(可展开)
  13. [转]部分日文实用网址介绍
  14. cmd命令行窗口调整大小
  15. 第一章 程序设计入门--算法竞赛入门经典
  16. PPC E500内核寄存器
  17. .NET 5.0 正式版发布了!
  18. 完美高性能遥感数据图形工作站方案
  19. set -ex是什么意思?
  20. 处理器的排名_waste waltz家用垃圾处理器排名图片

热门文章

  1. 数据结构c语言版陈越,数据结构 陈越
  2. 计算机术语alu,计算机术语大全
  3. tf.expand_dims函数用法详解(搭配代码理解)
  4. 三年三个商业理论,你是否超越了?
  5. WIFI热点软件测试,用手机WiFi热点已OUT 华为随行WiFi Plus评测
  6. .NET 云原生架构师训练营(模块一 架构师与云原生)--学习笔记
  7. 在线视频下载网址合集
  8. spring基础知识(IOC、DI、AOP)
  9. linux cpu占用分析,Linux下CPU占用率高分析方法
  10. 如何让他喜欢你?让他多看一眼