C#怎么循环读取ini文件里的数据 数据在一个域下
2个回答
展开全部
ini文件可以用记事本直接打开,所以可以直接像读取记事本文件一样读取它就行了,需要用到这两个类:
FileStream类,将文件读取到资料流
StreamReader类,读取资料流
FileStream类,将文件读取到资料流
StreamReader类,读取资料流
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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文件操作写的,有问题欢迎一起讨论。
{
[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文件操作写的,有问题欢迎一起讨论。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询