不同的方法
问题:ini文件读写字符串时,如果遇到多行字符串,写入到文件后,重新读回来时发现只有第一行。
解决方法:在写入第二行时,换成其他标示符,然后写在同一行,读回来时再转成换行符。
//写入
strTemp = m_sSerialNumText;
CString sOld("\r\n");
CString sNew("!newline!");
strTemp.Replace(sOld, sNew);
::WritePrivateProfileString(_T("OtherSetting"),_T("SerialNumberText"),strTemp,strFileName);
//读取
GetPrivateProfileString(_T("Setting"),_T("Text"),_T("test"),strTemp,MAX_LENGTH,strFileName);
m_sSerialNumText = strTemp;
CString sNew("\r\n");
CString sOld("!newline!");
m_sSerialNumText.Replace(sOld, sNew);
问:有无其他更简单的方法。
[解决办法]
ini就是简单的配置文件 WritePrivateProfileString和GetPrivateProfileString同样是简单的读取
ini 你要实现识别换行 不用这种替换的方式 那就只有自己实现一个特定格式的文件 自己怎么写就怎么读
[解决办法]
都一个意思
但以前的做法是
改key名加尾缀,比如原字段名叫key
保存的时候就按行存为key line 0,key line 1,key line 2
之前的考虑是相对在value里加转义字符(串),这种做法更安全,以防数据本来就包含转义字符(串))的case