C#怎么循环读取ini文件里的数据 数据在一个域下

 我来答
wfe52lzh
2012-07-04 · TA获得超过572个赞
知道小有建树答主
回答量:114
采纳率:0%
帮助的人:109万
展开全部
ini文件可以用记事本直接打开,所以可以直接像读取记事本文件一样读取它就行了,需要用到这两个类:
FileStream类,将文件读取到资料流
StreamReader类,读取资料流
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Jacke_159
2012-07-12 · TA获得超过196个赞
知道小有建树答主
回答量:128
采纳率:100%
帮助的人:107万
展开全部
class IniReadWrite
{
[DllImport("kernel32")]
public static extern int GetPrivateProfileString(string section, string key, string def, byte[] retVal, int size, string filePath);
private static void GetStringsFromBuffer(Byte[] Buffer, int bufLen, List<string> Strings)
{
Strings.Clear();
if (bufLen != 0)
{
int start = 0;
for (int i = 0; i < bufLen; i++)
{
if ((Buffer[i] == 0) && ((i - start) > 0))
{
String s = Encoding.GetEncoding(0).GetString(Buffer, start, i - start);
Strings.Add(s);
start = i + 1;
}
}
}
// 下面完成和上面循环一样的内容
/*
string temp = System.Text.Encoding.Default.GetString(Buffer);
temp = temp.Replace('\0', ' ');
temp = temp.TrimEnd();
string[] arrstring = temp.Split();
*/
}

//从Ini文件中,将指定的Section名称中的所有Ident(key)添加到列表中
public static List<string> ReadKeys(string Section, string filename)
{
List<string> Idents = new List<string>();
Byte[] Buffer = new Byte[16384];
//Idents.Clear();
int bufLen = IniReadWrite.GetPrivateProfileString(Section, null, null, Buffer, Buffer.GetUpperBound(0),
filename);
//对Section进行解析
GetStringsFromBuffer(Buffer, bufLen, Idents);
return Idents;
}
public static string GetValue(string Section, string Key, string filename)
{
string value = "";
Byte[] temp = new Byte[500];
int i = IniReadWrite.GetPrivateProfileString(Section, Key, "", temp, 500, filename);
value = System.Text.Encoding.Default.GetString(temp).Replace('\0', ' ');
return value.TrimEnd();
}
}
这个是读取ini文件某个域下的所有key 和 相应 key 的 value ,这是以前学习ini文件操作写的,有问题欢迎一起讨论。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式