如何制作有组织的文本文档

时间:2017-10-17 22:25:08

标签: c#

我目前正在为我的朋友和我制作一个D& D计划。除了我的朋友将所有的统计数据添加到程序中这将是非常困难的事实之后,它已经完成了。我目前正在将.txt文档中的人物角色的所有信息存储起来并将其调用到我的程序中,如下所示。

labelCharisma.Text = line[0];
labelStrength.Text = line[1];

但是我的问题在于我的朋友无法遵循的格式。他们必须查看我的程序代码,并找出哪个标签或文本框与文本文档中的哪一行相关联。有没有办法让我在.txt文档中添加某种指示符之前的值,以显示它们需要放在.txt文档中的位置? IE (第0行是魅力):16 (第0行是强度):14 但是当调用该行时,除了价值外,一切都会消失。 我意识到这将更容易使用数据库,但此时我想通过使用.txt文档来保持简单。 或者有没有办法引用.xlsx?

2 个答案:

答案 0 :(得分:1)

简单的设置格式是好的*.INI format。它看起来像这样:

  

[SECTION1]
  设置1 =值1
  设置2 =值2

     

[另一部分]
  设置3 =值3
  魅力=高中   强度= 2

虽然XML或JSON等其他格式更通用,并且允许构建复杂的层次结构,但每个人都很容易理解INI文件,即使是非程序员也是如此。

您可以编写一个类来访问这些设置,例如

public class IniSettings
{
    private string _filename;

    public IniSettings(string filename)
    {
        _filename = filename;
    }

    [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 string this[string section, string key]
    {
        get
        {
            StringBuilder sb = new StringBuilder(1024);
            GetPrivateProfileString(section, key, String.Empty, sb, 1024, _filename);
            return sb.ToString();
        }
        set
        {
            WritePrivateProfileString(section, key, value, _filename);
        }
    }
}

像这样使用:

var settings = new IniSettings(myIniFile);
string charisma = settings["Another section", "Charisma"];

答案 1 :(得分:0)

根据您使用的技术,您可能希望使用XML或JSON。 这些都是结构化文本文件,并且在导航,访问和扩展其内容方面具有很大的支持。 如果您使用的是Microsoft技术,我建议使用XML,如果它是网站类型的应用程序,我建议您查看JSON。我个人更喜欢XML,因为我觉得它更清洁,更容易维护。

你的结构在xml中的外观如下所示......

<character>
  <name>Wizard King</name>
  <strength>3</strength>
  <intelligence>9</intelligence>
etc.
希望它有所帮助。