1

在过去的 2 个小时里,我一直在谷歌上搜索,要么我失去了与关键字的联系,要么我是唯一一个遇到这个问题的人。

我需要一个制表符分隔的文件

        StringBuilder sb = new StringBuilder();
        foreach (Transaction line in lines)
        {
            sb.AppendFormat("{0}\t{1}\t{2}\t{3}\t{4}\r\n", 
                                    line.portfolio_id, line.cp_client_id, line.instrument_id, line.sign_id, line.currency_id);

        }

        using (StreamWriter w = new StreamWriter(filefullpath,true))
        {                
            w.Write(sb.ToString());
            w.Flush();
            w.Close();
        }

上面的代码,产生

PROD.3264-PAYMENTS;CUST.406;CASH-PAYMENT-DI;Pay;USD;

我不确定分号是从哪里来的。

请问外面的人可以提供一些启示...

谢谢您的帮助

4

1 回答 1

2

我引用的其中一个库中有一个扩展名(并且明确放错了位置)。一定有人写过,以避免将制表符分隔的文件发送出去。事实上,在调用 ToString() 方法之前,我的代码中的行、stringbuilder 内容都很好,这意味着几乎不可能调试它。

public static string ToString(this StringBuilder sb)
    {
        return sb.ToString().Replace("\t", ";");            
    }

我开始对文档有了新的尊重

所以要注意扩展(我很喜欢扩展,但是当你遇到这样的问题时,它会变得有点困难——只有一个小时)

于 2012-09-04T22:17:24.397 回答