向指定txt文件里添加、读取和删除信息实例
2009-12-24 10:21
706 查看
using System; using System.IO; struct Record { public string name; public UInt16 age; public string phone; public string address; };//通讯录的记录格式 class PhoneBook { FileStream f_srm; string s_filename; Record m_record; public PhoneBook(string filename) { s_filename=filename; } public int Open() { //显示初始化界面 Console.WriteLine("1:List Record"); Console.WriteLine("2:Add New Record"); Console.WriteLine("3:Erase Record"); Console.WriteLine("0:Exit"); Console.WriteLine("Please input the number you chose:"); int i=Convert.ToInt32(Console.ReadLine()); return i; } public void AddNew() { //向通讯录中添加记录 try { f_srm=new FileStream(s_filename,FileMode.OpenOrCreate); } catch { Console.WriteLine("PhoneBook Error!"); return; } BinaryWriter pw=new BinaryWriter(f_srm); pw.Seek(0,SeekOrigin.End); string s_temp; Console.Write("Name:"); m_record.name=Console.ReadLine(); pw.Write(m_record.name); reenter: Console.Write("Age:"); s_temp=Console.ReadLine(); try { m_record.age=Convert.ToUInt16(s_temp); } catch { Console.WriteLine("The format of age is error,please ReEnter"); goto reenter; } pw.Write(m_record.age); Console.Write("Phone Number:"); m_record.phone=Console.ReadLine(); pw.Write(m_record.phone); Console.Write("Address:"); m_record.address=Console.ReadLine(); pw.Write(m_record.address); Console.WriteLine("Add Sucessfull"); f_srm.Close(); } public void List() { //浏览所有记录 try { f_srm=new FileStream(s_filename,FileMode.Open); } catch { Console.WriteLine("PhoneBook Error!"); return; } BinaryReader pr=new BinaryReader(f_srm); Console.WriteLine("Name Age Phone Number Address"); Console.WriteLine("************************************************"); while(true) { if(f_srm.Length==0)//判断文件是否为空 { Console.WriteLine("The phonebook is empty!"); break; } try { m_record.name=pr.ReadString(); m_record.age=pr.ReadUInt16(); m_record.phone=pr.ReadString(); m_record.address=pr.ReadString(); } catch { return; } Console.WriteLine("{0,-9}{1,-6}{2,-18}{3}",m_record.name,m_record.age,m_record.phone,m_record.address); if(f_srm.Length==f_srm.Position)//如果已经读到文件的末尾,则跳出循环 { break; } } Console.WriteLine("**************************************************"); f_srm.Close(); } public void Erase() { //清空所有记录 try { //FileMode.Create指定操作系统应创建新文件。如果文件已存在,它将被改写。 f_srm=new FileStream(s_filename,FileMode.Create);//对现有的phonebook.txt文件进行修改 } catch { Console.WriteLine("PhoneBook Error!"); return; } f_srm.Close(); Console.WriteLine("Now the book is empty!"); } } class Test { public static void Main() { //注意,先要创建指定的目录 PhoneBook pbook=new PhoneBook("f://c#//file//phonebook.txt"); while(true) { int i=pbook.Open();//初始化,选择功能 switch(i) { case 1://列出电话本里的信息 pbook.List(); break; case 2://添加新记录 pbook.AddNew(); break; case 3://删除电话本里所有的记录 pbook.Erase(); break; } if(i==0)//如果选择的是0,退出,避免死循环 { break; } } } }
以上示例,是一个简单的通讯录的操作,包括添加、显示和删除功能。
相关文章推荐
- 删除txt文件指定的行,按行读取txt文档数据
- VFP中,如何把指定目录信息(包括子目录)存入TXT文本文件!(已解决,代码实例)
- 监测程序详细介绍,快捷键的设置;txt文件里面一行行的读取、删除、添加字符串等;根据程序路径名以及程序名判断程序是否在运行;
- php删除txt文件指定行及按行读取txt文档数据的方法
- C语言文件读取和单链表的添加、删除和排序等操作实例
- Java读写文件,读取execl表格,读取指定行列单元格信息,拼接sql,写入TXT文档。
- 从文件中读取作者和书籍信息,存入multimap,使用find查找指定作者并删除
- LINUX C 数据文件的添加,修改,删除 实例
- php读取zip文件(删除文件,提取文件,增加文件)实例
- Java版本的删除指定目录及子目录下名叫“xxx.txt”的所有文件
- 添加头信息,为"文件下载/另存为"对话框指定默认文件名.........................
- C 创建链表并将信息存储在二进制文件中读取的实例代码
- Unity读取txt文件并且用字典来使用txt里面的信息
- Matlab批量读取元胞数组中数据保存到txt文件中(WIDER FACE数据集中,读取人脸标注矩形框信息)
- redis 集群之动态添加redis节点,删除指定ID的redis节点,以及查看redis集群中各个节点的信息
- [转]C#读取CSV,Excel,Txt文件,删除文件,拷贝文件
- [转]C#读取CSV,Excel,Txt文件,删除文件,拷贝文件
- 在Linux DeviceTree添加dtsi文件并在驱动中读取节点信息写入sys文件系统
- 注册表REG文件编写实例(创建、删除、添加、更改键值)
- Java中框架的概念,以及从配置文件中读取配置信息并加载指定类