您的位置:首页 > 编程语言 > C#

小议C#下文本文件与resources资源文件的相互转换

2007-02-17 07:32 621 查看
 
 由于这些天比较闲 (也许吧),就把前些日子写的一段有关文本文件与资源文件转换的小程序整理了一下,这个主要是先前研究动态生成HTML页面和另一个WINDOWS主题生成软件时为方便生成模板资源附带写的,没多大技术含量,只是方便使用,如果有研究这方面的也可以拿去看下,样例程序(含源码)在我的共享空间(http://my.mofile.com/yzyxfzh)的.NET相关目录下,下面大体说下主要的几个函数,剩余的代码也很简单。

Resources属于二进制资源文件,它内部的资源成员是有以1键对应1值得形式保存的,资源的类型可以是很多种类,不过因为本人只用到了字符串类型资源,所以其他类型的也没研究不过相关资料网上到是有许多,并且其余类型资源的封装实际都是大同小异的。

文本转resources资源文件(由于这个是参考网上的其他资料写的就不多说了):


ResourceiWriter rw = new ResourceWriter(s);        //s为文件保存路径


string Theme = v;                              //v是resources资源文件里字符串键的值,实际是文本文件的内容


rw.AddResource(str,Theme);                     //str为字符串键的键名


rw.Generate(); 


rw.Close();



resources资源文件转文本(可以将资源文件中的全部字符串资源遍历读取出来,非字符串资源将丢失):


ResourceReader rr = new ResourceReader(s); 


IDictionaryEnumerator en = rr.GetEnumerator();


while (en.MoveNext())                                //循环遍历资源文件中的每个可用资源




...{

4000


    Key += "主键 = ["+en.Key.ToString()+"]"+" ";


    Value+= "值 = ["+en.Value.ToString()+"]"+" ";         //这里只要将获取的值保存为文本即可


}


rr.Close();                                           //释放资源



以上两个方法就是resources资源文件的生成与读取,不过本人感觉resources资源文件不如resX文件使用着那么顺手(虽说MSDN上好像是强烈推荐resources资源文件,但本人不那么认为,尤其是字符串型资源文件,不知是不是因为本人是新人的缘故),resources资源文件是可以转换成resX资源文件的,但实际上对于字符串类型resX文件来说,直接在VS编译环境下是可以直接将字符串写到resX文件里的,因为resX文件实际上属于XML文件,如果是图片等就需要先将其转化为二进制resources文件再转换为resX文件,这点好像麻烦些,但resX资源文件可以直接封装到程序内部,而resources文件确是另外生成一个文件,不过resX资源文件使用方法在网上没发现,虽说最后自己弄出来了(仅用了2行代码@_@),但原理还是没搞明白(新人果然还是不行).........

  好了,有用的没用的就说这些了,欢迎高手前来指点,谢谢! 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息