C#设置中的制表符

问题描述 投票:2回答:3

我正在尝试将像\t这样的制表符放入C#应用程序的settings(如char)。我到目前为止失败了。我也尝试使用其他序列化,因为Binaryor XMLbut没有让它工作。

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

更新:

这是.NET 4.5.2

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

c# .net application-settings
3个回答
6
投票

在配置文件中使用	\\t而不是\t


3
投票

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


2
投票

对于其他人将寻找如何在配置中保存'TAB'或'SPACE'等...

您可以从ASCII表(http://www.asciitable.com/)中简单地使用它的十进制值。因此,例如对于空格字符,它的值为32,对于tab,它的值为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();
© www.soinside.com 2019 - 2024. All rights reserved.