MoltenMercury/Interop/INILoader.cs
(开头部分) 2KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
namespace MoltenMercury.Interop
{
public class INILoader
{
const String GROUP_REGEX = @"\[(?<groupname>.+)\]";
const String VALUE_REGEX = @"(?<key>[^ =]+?)([ ]*)=([ ]*)(?<value>.+)";
public class INIGroup
{
internal Dictionary<String, String> m_values = new Dictionary<string, string>(StringComparer.CurrentCultureIgnoreCase);
public String Name { get; set; }
public String this[String key]
{
get
{
if (m_values.ContainsKey(key))
return m_values[key];
else
throw new KeyNotFoundException();
}
}
}
private Dictionary<String, INIGroup> m_groups = new Dictionary<string, INIGroup>();
public INILoader(String[] iniLines)
{
String currentGroup = "Default";
foreach (String line in iniLines)
{
if (line.Replace(" ", "").Length == 0) continue;
if (Regex.IsMatch(line, VALUE_REGEX))
{
Match m = Regex.Match(line, VALUE_REGEX);
String key = m.Result("${key}");
String val = m.Result("${value}");
if (!m_groups.ContainsKey(currentGroup))
m_groups.Add(currentGroup, new INIGroup() { Name = currentGroup });
m_groups[currentGroup].m_values.Add(key, val);
}
else if (Regex.IsMatch(line, GROUP_REGEX))
{
Match m = Regex.Match(line, GROUP_REGEX);
currentGroup = m.Result("${groupname}");
}
}
}
public INIGroup this[String index]
后面还有 8 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。