C# 读取ini文件里的内容
用的是使用window的api导入dll读取的方式,写了一个GetConfig()的函数,在这个函数里使用GetPrivateProfileString()方法读值是没有问题的,但是如果我把GetPrivateProfileString()方法写到另一个函数SetDouble(string str,double dnum)里,其中str作为GetPrivateProfileString()方法string key的参数,dnum是我要获取的值,在GetConfig()函数里使用SetDouble(string str,double dnum),就会发现读不到值,可能说的绕,下面贴上代码
代码重新简写了一下,可能有些错误没检查到,不是直接贴的,大概就是上面那段代码表达的意思,GetPrivateProfileString()中第二个参数string key,作为自定义函数的参数传进去,在函数的函数里调用就发现读不到值
[DllImport("kernel32")]
private static extern int GetPrivateProfileString(string section,
string key, string def, StringBuilder retVal,
int size, string filePath);
string szConfig;
string szDirectory = Environment.CurrentDirectory;
double dnum;
double dnumok;
private void GetConfig()
{
szConfig = szDirectory + @"\config.ini";
StringBuilder sbtemp = new StringBuilder();
GetPrivateProfileString("Section", "doubleok", "0.0", sbtemp, 20, szConfig);
dnumok = Convert.ToDouble(sbtemp.ToString()); //这里是没有问题的,可以读到值
SetDouble("dnum",dnum);
MessageBox.Show(dnum.ToString()); //发现dnum全是0,读不到ini文件里的值
// SetDebug(); //如果直接在该函数里把string key直接进去,发现可以读到ini文件里的值
}
public void SetDouble(string strkey, double dnum)
{
StringBuilder sbtmp = new StringBuilder();
GetPrivateProfileString("Section", strkey, "0.0", sbtmp, 20, szConfig);
dnum= Convert.ToDouble(sbtmp.ToString());
}
public void SetDebug()
{
StringBuilder sbtmp = new StringBuilder();
GetPrivateProfileString("Section", "dnum", "0.0", sbtmp, 20, szConfig);
dnum= Convert.ToDouble(sbtmp.ToString());
}
代码重新简写了一下,可能有些错误没检查到,不是直接贴的,大概就是上面那段代码表达的意思,GetPrivateProfileString()中第二个参数string key,作为自定义函数的参数传进去,在函数的函数里调用就发现读不到值
...全文
相关推荐
C#简单读写ini文件.docx
程序设计中为文件(File)操作方法
C# INI文件的读取
下面举一个常见例子,数据库连接配置INI文件,首先创建config.ini文件,输入如下: [Database] Server=127.0.0.1 DB=test_bak User=sa Password=123456 创建一个类,如ReadIni,C#使用Ini文件时需要使用API函数。#region API函数声明 [DllImport("kernel32")]//返回
C#如何高效读取和解析INI配置文件
第三方库如IniParser为处理INI文件提供更简洁易用的API。这些库通常包含了INI文件语法的解析、错误处理和读写功能。使用第三方库可以降低代码复杂度,提高开发效率。解析器的核心功能在于将INI文件的文本内容转换成程序能够理解的数据结构。它应该能够识别INI文件中的节(Section)、键(Key)和值(Value),并支持基本的读取操作。为了便于维护和扩展,解析器的设计应该遵循面向对象设计原则,如单一职责原则、开闭原则等。解析器的结构通常包含以下几个主要部分:INIFile。
szmVideo.rar
可通过config.ini文件设置视频路径,还有背景图片,wpf版本,源码里有通讯控制代码
c# 无API读写INI文件
不使用API读写INI文件,借花献佛。。。


