c#如何遍历ini文件中Section下所有项,很急,谢谢。

[A]a=0b=1c=200怎么得到A下的所有项,谢谢,xml我会,可别人用的是ini,没办法,求救。你们都没答对。还是自己解决了。这样做的。http://hi.baid... [A]
a=0
b=1
c=200

怎么得到A下的所有项,
谢谢,xml我会,可别人用的是ini,没办法,求救。
你们都没答对。还是自己解决 了。
这样做的。
http://hi.baidu.com/%C9%AB%B1%E9%CC%EC%CF%C2%C3%C0%C5%AE/blog/item/bfe0a696d6fe7d6155fb9698.html

看你最诚实,分给你好了。
展开
 我来答
naoh1220
2010-04-06 · 超过17用户采纳过TA的回答
知道答主
回答量:117
采纳率:0%
帮助的人:44.3万
展开全部
c#如何读INI文件中的设置信息

--------------------------------------------------------------------------------

把下面的代码改动一下,就可以在你的程序中使用,当然
别忘记加上名字空间哦。
using System;
using System.IO;
using System.Runtime.InteropServices;
using System.Text;

namespace Sx_Mdi
{

/// <summary>
/// Summary description for Class1.
/// </summary>
public class IniFile
{
//文件INI名称
public string Path;

////声明读写INI文件的API函数
[DllImport("kernel32")]

private static extern long WritePrivateProfileString(string section,string key,string val,string filePath);

[DllImport("kernel32")]

private static extern int GetPrivateProfileString(string section,string key,string def,StringBuilder retVal,int size,string filePath);

//类的构造函数,传递INI文件名
public IniFile(string inipath)
{
//
// TODO: Add constructor logic here
//
Path = inipath;
}

//写INI文件
public void IniWriteValue(string Section,string Key,string Value)
{
WritePrivateProfileString(Section,Key,Value,this.Path);

}

//读取INI文件指定
public string IniReadValue(string Section,string Key)
{
StringBuilder temp = new StringBuilder(255);
int i = GetPrivateProfileString(Section,Key,"",temp,255,this.Path);
return temp.ToString();

}

}
}

我复制的

参考资料: 不记得了

他大姨
2010-04-06 · TA获得超过415个赞
知道小有建树答主
回答量:248
采纳率:50%
帮助的人:165万
展开全部
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
using System.IO;

namespace backgroundWA
{
public class INIClass
{
public string inipath;
[DllImport("kernel32")]
private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);
[DllImport("kernel32")]
private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath);
/// <summary>
/// 构造方法
/// </summary>
/// <param name="INIPath">文件路径</param>
public INIClass(string INIPath)
{
inipath = INIPath;
}
/// <summary>
/// 写入INI文件
/// </summary>
/// <param name="Section">项目名称(如 [TypeName] )</param>
/// <param name="Key">键</param>
/// <param name="Value">值</param>
public void IniWriteValue(string Section, string Key, string Value)
{
WritePrivateProfileString(Section, Key, Value, this.inipath);
}
/// <summary>
/// 读出INI文件
/// </summary>
/// <param name="Section">项目名称(如 [TypeName] )</param>
/// <param name="Key">键</param>
public string IniReadValue(string Section, string Key)
{
StringBuilder temp = new StringBuilder(500);
int i = GetPrivateProfileString(Section, Key, "", temp, 500, this.inipath);
return temp.ToString();
}
/// <summary>
/// 验证文件是否存在
/// </summary>
/// <returns>布尔值</returns>
public bool ExistINIFile()
{
return File.Exists(inipath);
}
}
}
INIClass ini = new INIClass(@"C:\Program Files\360\360Safe\updatecfg.ini");
//读出文件updatecfg.int中360.dat下的ver的值
string fileIni = ini.IniReadValue("360.dat", "ver");
kernel32.dll里有一个读取Section的函数GetPrivateProfileSection,可惜的是用c#调用的话,不能得到所有key,只能得到第一行,原因他的返回值是"每个字串都用一个NULL分隔,最后一个字串用两个NULL字符中止",c#的话如果遇到null就结束了,导致只能取到第一个key.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xuejianxiyang
2010-04-06 · TA获得超过694个赞
知道小有建树答主
回答量:357
采纳率:0%
帮助的人:117万
展开全部
StreamReader sr = new StreamReader("d:\\a.ini",Encoding.Default);
while (sr.Peek() > 0)
{
MessageBox.Show(sr.ReadLine());
}
试试这个看能不能循环弹出每行的值,如果可以稍微改下应该就ok了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
think客
2010-04-06 · TA获得超过1282个赞
知道小有建树答主
回答量:231
采纳率:0%
帮助的人:0
展开全部
你可以使用下边这个函数读出所有项,然后根据NULL的个数计算各个子项。
DWORD GetPrivateProfileSection(
LPCTSTR lpAppName,
LPTSTR lpReturnedString,
DWORD nSize,
LPCTSTR lpFileName
);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yzai520
2019-09-11
知道答主
回答量:55
采纳率:0%
帮助的人:15.4万
展开全部
你好,请问下你是怎么解决的,我也遇上了这个问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式