我有一个包含多个名称的List,我想借助ini文件添加或删除其中一些名称。我更喜欢ini文件,但如果不可能或者只是非常难以使用其他类型的配置文件。
如果有任何帮助,这是我的ini课程的代码。
private string _filePath;
[DllImport("kernel32")]
private static extern long WritePrivateProfileString(string section,
string key,
string val,
string filePath);
[DllImport("kernel32")]
private static extern int GetPrivateProfileString(string section,
string key,
string def,
StringBuilder retVal,
int size,
string filePath);
public clsINI(string filePath)
{
_filePath = filePath;
}
public void Write(string section, string key, string value)
{
try
{
WritePrivateProfileString(section, key, value, _filePath);
}
catch {}
}
public string Read(string section, string key)
{
try
{
var sb = new StringBuilder(255);
GetPrivateProfileString(section, key, "", sb, 255, _filePath);
return sb.ToString();
}
catch
{
return null;
}
}
目前我可以使用我的ini文件编辑字符串和整数,但我还想添加或删除列表中的项目,但我不知道如何。
这里我添加字符串用户名作为示例:
制作文件:
`_cINI = new clsINI(Path.Combine(Application.StartupPath, "settings.ini"));`
写文件:
`username = "";
_cINI.Write("Settings", "UserName", username);
要阅读文件:
`username = _cINI.Read("Settings", "Username"); `
`
答案 0 :(得分:0)
Ini-File中的元素是字符串。要创建一个包含字符串列表的字符串,您需要决定一个分隔符。
有几个字符浮现在脑海中,最自然的是Tab
和VTab
字符:\t
和\v
。其他也有可能,见下文!唯一的问题是,确保它们不会出现在数据中。
因此,当你不确切知道自己的意愿以及你所赢得的内容时,经常使用的commas
和semicolons
并不是很好的选择。
让我们举个例子:
我们从一个奇怪而神秘的名单开始:
List<string> EC = new List<string>()
{ "FX Huberman", "Kitty Collins", "Swede Anderson", "Cody Jarrett", };
现在我们以Tab
字符作为分隔符加入它们,并将它们写入我们的文件::
_cINI.Write("Settings", "EoC", string.Join("\t", EC.ToArray()));
最后我们可以把它读回来,也许可以读到另一个列表,然后用Tab
字符再次拆分:
List<string> FC = _cINI.Read("Settings", "EoC").Split('\t').ToList();
有关其他合适控制字符的讨论,请参阅here:
数据结构
分隔符(文件,组,记录和单位:FS,GS,RS和US)是 通常在磁带上构建数据,以便进行模拟 打孔卡。介质结束(EM)警告磁带(或其他 记录媒体)即将结束。虽然许多系统使用CR / LF和TAB 结构化数据,可能会遇到分隔符控件 需要结构化的数据中的字符。分隔符控件 字符不会超载;除了以外没有一般用途 将数据分成结构化分组。他们的数值是 与空间角色相邻,可以被视为成员 该组,作为单词分隔符。