日期:2014-05-20  浏览次数:20623 次

.txt文档的读取与写入
一个TXT文档,我想把他设计成如下格式

[USR]
USR1
USR2
[END]

[TIME]
TIME1
TIME2
TIME3
[END]

也就是这个文档需要存储USR和TIME的相关信息,用户可以写入并读取该文档的内容,问题是在写入的时候,不知道写在哪里。比如现在要插入一个TIME4,实现的步骤我想应该是首先打到[TIME]这一大项,再在[END]前插入。说简单点也就是要实现在一个.txt文档里先找到插入位置,再在这个位置插入的功能。
我试过用STREAMWRITER和STREAMREDEAR不行,FILESTREAM好像也不可行。
请问高手如何解决?或者有其他更好的方法,我是想用来存储一些简单信息,不想用到数据库,也不想有多个.txt?

------解决方案--------------------
推荐用 xml,.net现在已经对操作xml很方便的了。

public bool XmlInsert(string xmlpath, string xmlsinglenode, string xmlfirstnode,
string[] firstnodename, string[] firstnodevalue, string[] arryname, string[] arryvalue)
{
try
{
if (FileExist(xmlpath, xmlsinglenode))
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(xmlpath);
XmlNode xmlNode = xmlDoc.SelectSingleNode(xmlsinglenode);

int count = xmlNode.ChildNodes.Count;
count++;

XmlElement xmlEle = xmlDoc.CreateElement(xmlfirstnode);//创建一个 <User> 节点
xmlEle.SetAttribute( "id ", count.ToString());//设置该节点id属性 编码

for (int i = 0; i < firstnodename.Length; i++)
{
xmlEle.SetAttribute(firstnodename[i], firstnodevalue[i]);//登录ID
}

for (int i = 0; i < arryname.Length; i++)//arryname.Length
{
XmlElement xml = xmlDoc.CreateElement(arryname[i]);
xml.InnerText = arryvalue[i];
xmlEle.AppendChild(xml);
}

xmlNode.AppendChild(xmlEle);
xmlDoc.Save(xmlpath);
}

return true;
}
catch (Exception ex)
{
Log.WriteErrorLog(ex.Message);
return false;
}
}

这个,可以修改成符合你要求