您的位置:首页 > 其它

向指定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;
}
}
}
}


以上示例,是一个简单的通讯录的操作,包括添加、显示和删除功能。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐