读取文本文件时忽略NULL值

时间:2014-10-31 11:43:32

标签: c# export-to-csv

我有这种制表符分隔的文本文件

enter image description here

我需要格式化为.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线,我怎么能摆脱它们呢?这个符号甚至意味着什么?

谢谢

3 个答案:

答案 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')与。

进行比较