我有这种制表符分隔的文本文件
我需要格式化为.CSV和Iam这样读它
public static void ReadDelimitedFile(string docPath)
{
using (var writer = File.CreateText(@"outputFile.csv"))
{
using (var file = new StreamReader(docPath))
{
string line;
while ((line = file.ReadLine()) != null)
{
if (!string.IsNullOrEmpty(line))
{
var delimiters = new char[] { '\t' };
var segments = line.Split(delimiters, StringSplitOptions.RemoveEmptyEntries);
foreach (var segment in segments)
{
writer.Write(segment+";");
}
writer.WriteLine();
}
}
}
}
}
我尝试使用静态方法
if (!string.IsNullOrEmpty(line))
但它不会忽略NUL线,我怎么能摆脱它们呢?这个符号甚至意味着什么?
谢谢
答案 0 :(得分:2)
尝试使用
line = line.Trim('\0');
if (!String.IsNullOrEmpty(line))
....
修剪应从字符串中删除任何前导或尾随nul
- 字符。要完全确定只删除某行 end 的nul
,请使用
line = line.TrimEnd('\0');
答案 1 :(得分:2)
我会将其更改为:
if (!string.IsNullOrEmpty(line) && line.First() != 0x00)
答案 2 :(得分:0)
尝试与System.Text.Encoding.ASCII.GetChars(new byte[] {00})
或Convert.ToChar(0)
进行比较。这应该给你空字符(' \ 0')与。