C#设置中的标签字符

时间:2017-02-03 07:35:08

标签: c# .net application-settings

我正在尝试将\t这样的制表符添加到C#应用程序的settings中(如char)。 我到目前为止失败了。 我还尝试使用其他序列化作为Binaryor XML,但没有让它起作用。

所以我的简单问题是,你能以某种方式将标签字符放入C#中的应用程序/用户设置吗?

更新:

这是.NET 4.5.2

看起来,string类型也有错误。当我从例如粘贴标签时notepad ++,它在app.config中添加了一个新行和一些空格字符,但没有制表符: enter image description here

3 个答案:

答案 0 :(得分:5)

在配置文件

中使用	\\t代替\t

答案 1 :(得分:3)

要通过VS UI执行此操作,请使用几乎适用于所有应用程序和案例的标准技巧,包括以下内容:在剪贴板上放置一个选项卡,然后将其粘贴到目标应用程序中。

答案 2 :(得分:2)

对于其他正在寻找如何在配置中保存“ TAB”或“ SPACE”等的人...

您可以简单地使用ASCII表(http://www.asciitable.com/)中的十进制值。例如,对于空格字符,其值为32;对于制表符,其值为9。一些示例...:

示例1:

在App.config中保存单个标签

  

配置部分:

<setting name="OneTabString" serializeAs="String">
    <value>9</value>
</setting>
  

应用程序部分:

char tab = Convert.ToChar(int.Parse(Properties.Settings.Default.OneTabString));
string stringTab = tab.ToString();

示例2:

在配置中保存多标签字符串(有很多方法,例如...)

  

配置部分

<setting name="MultiTabString" serializeAs="String">
    <value>9;9;9;9;9</value>
</setting>
  

应用程序部分:

char[] tabs = Properties.Settings.Default.MultiTabString.GetCharsByDecimal(new char[] { ';' });
string stringTabs = string.Join(string.Empty, tabs);

//Extension method for getting chars by decimal from our string
public static char[] GetCharsByDecimal(this string inputString, char[] delimiters)
    {
        int[] charsDecimals = inputString.Split(delimiters, StringSplitOptions.RemoveEmptyEntries).Select(s => int.Parse(s)).ToArray();
        char[] resultChars = new char[charsDecimals.Length];

        for (int i = 0; i < charsDecimals.Length; i++)
        {
            resultChars[i] = Convert.ToChar(charsDecimals[i]);
        }

        return resultChars;
    }

//Or safer variant of our extension method
public static char[] GetCharsByDecimal(this string inputString)
    {
        int[] charsDecimals = Regex.Split(inputString, @"\D+").Select(s => int.Parse(s)).ToArray();
        char[] resultChars = new char[charsDecimals.Length];

        for (int i = 0; i < charsDecimals.Length; i++)
        {
            resultChars[i] = Convert.ToChar(charsDecimals[i]);
        }

        return resultChars;
    }

示例3:

在配置文件中保存定界符(包括标签)

  

配置部分

<setting name="Delimiters" serializeAs="Xml">
  <value>
    <ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <string>59</string>
      <string>44</string>
      <string>9</string>
      <string>45</string>
      <string>124</string>
      <string>32</string>
    </ArrayOfString>
  </value>
</setting>
  

应用部分

char[] delimiters = Properties.Settings
                              .Default
                              .Delimiters
                              .Cast<string>()
                              .Select(s => Convert.ToChar(int.Parse(s))).ToArray();