C#获取ini文件中全部Section,获取Section下全部Key
2021-02-16 05:19
标签:== builder div post lis empty c# int section C#获取ini文件中全部Section,获取Section下全部Key 标签:== builder div post lis empty c# int section 原文地址:https://www.cnblogs.com/gavinliu1982/p/8416979.htmlusing System;
using System.Text;
using System.IO;
using System.Runtime.InteropServices;
using System.Collections.Generic;
public class OperateIniFile
{
private static String filePath = "";
#region API函数声明
[DllImport("kernel32")]
private static extern long WritePrivateProfileString(string section, string key,
string val, string filePath);
//需要调用GetPrivateProfileString的重载
[DllImport("kernel32", EntryPoint = "GetPrivateProfileString")]
private static extern long GetPrivateProfileString(string section, string key,
string def, StringBuilder retVal, int size, string filePath);
[DllImport("kernel32", EntryPoint = "GetPrivateProfileString")]
private static extern uint GetPrivateProfileStringA(string section, string key,
string def, Byte[] retVal, int size, string filePath);
#endregion
public static Liststring> ReadSections()
{
return ReadSections(filePath);
}
public static Liststring> ReadSections(string iniFilename)
{
Liststring> result = new Liststring>();
Byte[] buf = new Byte[65536];
uint len = GetPrivateProfileStringA(null, null, null, buf, buf.Length, iniFilename);
int j = 0;
for (int i = 0; i )
if (buf[i] == 0)
{
result.Add(Encoding.Default.GetString(buf, j, i - j));
j = i + 1;
}
return result;
}
public static Liststring> ReadKeys(String SectionName)
{
return ReadKeys(SectionName, filePath);
}
public static Liststring> ReadKeys(string SectionName, string iniFilename)
{
Liststring> result = new Liststring>();
Byte[] buf = new Byte[65536];
uint len = GetPrivateProfileStringA(SectionName, null, null, buf, buf.Length, iniFilename);
int j = 0;
for (int i = 0; i )
if (buf[i] == 0)
{
result.Add(Encoding.Default.GetString(buf, j, i - j));
j = i + 1;
}
return result;
}
public static void SetFilePath(String filepath)
{
filePath = filepath;
}
#region 读Ini文件
public static string ReadIniData(string Section, string Key, string NoText)
{
return ReadIniData(Section, Key, NoText, filePath);
}
public static string ReadIniData(string Section, string Key, string NoText, string iniFilePath)
{
if (File.Exists(iniFilePath))
{
StringBuilder temp = new StringBuilder(1024);
GetPrivateProfileString(Section, Key, NoText, temp, 1024, iniFilePath);
return temp.ToString();
}
elsereturn String.Empty;
}
#endregion
#region 写Ini文件
public static bool WriteIniData(string Section, string Key, string Value)
{
return WriteIniData(Section, Key, Value, filePath);
}
public static bool WriteIniData(string Section, string Key, string Value, string iniFilePath)
{
if (File.Exists(iniFilePath))
{
long OpStation = WritePrivateProfileString(Section, Key, Value, iniFilePath);
if (OpStation == 0)
return false;
elsereturn true;
}
elsereturn false;
}
#endregion
}
文章标题:C#获取ini文件中全部Section,获取Section下全部Key
文章链接:http://soscw.com/index.php/essay/55951.html