用C#中的“Unit Separator”(0x1f)替换平面文件中的制表符(“ t”)
我一直无法找到“单位分隔符”的元字符来替换平面文件中的选项卡。
到目前为止我有这个:
File.WriteAllLines(outputFile, File.ReadLines(inputFile) .Select(t => t.Replace("t", " x1f"))); //this does not work
我也尝试过:
File.WriteAllLines(outputFile, File.ReadLines(inputFile) .Select(t => t.Replace("t", "u"))); //also doesn't work
和
File.WriteAllLines(outputFile, File.ReadLines(inputFile) .Select(t => t.Replace("t", 0x1f))); //also doesn't work
如何正确使用hex作为参数? 另外,“单位分隔符”的元字符是什么?
单位分隔符的元字符是
U+001f
你应该可以像使用它一样
File.WriteAllLines(outputFile, File.ReadLines(inputFile) .Select(t => t.Replace("t", "u001f")));
编辑:由于关于控制角色的讨论开始发生,我为了后人的缘故添加了这个定义。
一种特殊的非打印字符,用于开始,修改或结束function,事件,操作或控制操作。 ASCII字符集定义了32个控制字符。 最初,这些代码旨在控制电传打字机。 然而,现在它们通常用于控制显示监视器,打印机和其他现代设备。
从这里 。
另外,这里是单位分隔符的描述
要存储在数据库中的最小数据项在ASCII定义中称为单元。 我们现在称他们为田地。 单元分隔符在串行数据存储环境中分隔这些字段。 大多数当前的数据库实现要求大多数类型的字段具有固定长度。 记录中有足够的空间来存储每个字段的最大可能成员,即使在大多数情况下不需要这样做。 在许多情况下,这会花费大量空间。 美国控制代码允许所有字段具有可变长度。 如果数据存储空间有限 – 就像六十年代那样 – 这是保护宝贵空间的好方法。 另一方面,串行存储远远低于现代表驱动RAM和磁盘实现的效率。 我无法想象现代SQL数据库使用存储在纸带或磁性卷轴上的数据运行的情况……
从这里 。
这应该可以让你到达你需要的地方:
char unitSeperatorChar = (char)Convert.ToInt32("0x1f", 16); string contents = File.ReadAllText(inputFile); string convertedContents = contents.Replace('t', unitSeperatorChar); File.WriteAllText(outputFile, convertedContents);
我加载到一个字符串,转换,并重新保存。 您可以将它们组合在一起,以便在字符串管理中提
我认为在C#中编码unicode字符的正确方法是使用unnnn
格式。 您可以尝试使用字符串u001f
替换它,如下所示:
File.WriteAllLines(outputFile, File.ReadLines(inputFile) .Select(t => t.Replace("t", " 01f")));
那样有用吗?
上述就是C#学习教程:用C#中的“Unit Separator”(0x1f)替换平面文件中的制表符(“ t”)分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/956979.html