本人也是初学者,整理的不知道对不对,希望能帮到那些像我之前同样有困惑的小菜鸟~~(建议先看看C#相关的基础)
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();//是有.NET平台自动执行的,是做一些初始化的工作,
//例如: 初始化FORM,上面的控件,加载资源,分配资源等大部分加载的是 xxx.designer.cs 里的东西
}
//语音识别部分
//声明读写INI文件(initialization file)的API(应用程序编程接口Application Programming Interface)函数
[DllImport("kernel32")]//引入kernel32.dll这个动态连接库,这个动态连接库里面包含了很多WindowsAPI函数,如果你想使用这面的函数,就需要这么引入
private static extern bool WritePrivateProfileString(string section, string key, string val, string filePath);//写入.ini文件
//WritePrivateProfileString()就是一个属于kernel32.dll里的一个函数
[DllImport("kernel32")]
private static extern int GetPrivateProfileString(string section, string key, string def, byte[] retVal, int size, string filePath);//读.ini文件
static string FileName = Application.StartupPath + "\\Config.ini"; //获取名为Congig.ini文件,即是Config窗口中textbox写入的信息保存形成的ini文件
//section(节名)key(项名)val(项的值)byte[] retVal(缓冲区),size(装到缓冲区的最大字节数)filePath(ini文件的完整路径)
public string ReadIni(string Section, string Ident, string Default)//读取文件函数
{
Byte[] Buffer = new Byte[65535];//??KB
int bufLen = GetPrivateProfileString(Section, Ident, Default, Buffer, Buffer.GetUpperBound(0), FileName);
//GetUpperBound可以获取数组的最高下标,而且GetUpperBound(0)中参数为0,说明只有一维数组的第一位
string s = Encoding.GetEncoding(0).GetString(Buffer);//Encoding(编码)与其配合的一种程序叫做decoding,即“解码”程序
//GetEncoding()返回与指定代码页标识符关联的编码。GetStrting():这个方法是传递你要获取的列的索引做参数,比如你返回了ID,Name,Age三列
//这时你想获取Name,那么传递1做参数就可以了(索引从0开始)
s = s.Substring(0, bufLen);//字符串截取函数substring(int beginIndex, int endIndex) 返回一个新的字符串,它是此字符串的一个子字符串。
//该子字符串始于指定索引处的字符,一直到此字符串末尾。beginIndex - 起始索引(包括)。从0开始endIndex - 结束索引(不包
//括)。"unhappy".substring(2) returns "happy""hamburger".substring(4, 8) returns "urge"
return s.Trim();//各种 trim 函数的语法如下:LTRIM(字串):将字串左边的空格移除。RTRIM(字串): 将字串右边的空格移除。TRIM(字串): 将字串首
//尾两端的空格移除,作用等于RTRIM和LTRIM两个函数共同的结果。ALLTRIM(字串):将字串左右边两边的空格移除。
}
|