Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# c“如何停止控制台显示”&引用;而StreamWriter则从数据表复制大量数据_C#_Console_Streamwriter - Fatal编程技术网

C# c“如何停止控制台显示”&引用;而StreamWriter则从数据表复制大量数据

C# c“如何停止控制台显示”&引用;而StreamWriter则从数据表复制大量数据,c#,console,streamwriter,C#,Console,Streamwriter,我有一个控制台应用程序,它接收数百个小文件,将它们放入临时数据表,然后将数据复制到单个StreamWriter。那很好 但是,控制台输出在StreamWriter复制过程中不断添加“…”,这有点烦人 有没有办法把它关掉,或者干脆换成别的东西,像眨眼一样糟糕 下面是所用代码的精简版本: Console.WriteLine("Writing to TA_{0}", fileType); var streamMaster = new StreamWrit

我有一个控制台应用程序,它接收数百个小文件,将它们放入临时数据表,然后将数据复制到单个StreamWriter。那很好

但是,控制台输出在StreamWriter复制过程中不断添加“…”,这有点烦人

有没有办法把它关掉,或者干脆换成别的东西,像眨眼一样糟糕

下面是所用代码的精简版本:

            Console.WriteLine("Writing to TA_{0}", fileType);
            var streamMaster = new StreamWriter(Settings.WorkingDirectory + "TA_" + fileType, true);
            streamMaster.Flush();

            foreach (var tempFile in filesList)
            {
                var isZipped = tempFile.Contains(".gz");
                var dtTempFile = InternalUtils.GetTable(tempFile, isZipped);

                foreach (DataRow row in dtTempFile.Rows)
                {
                    if(dtTempFile.Rows.IndexOf(row) != 0) streamMaster.WriteLine(String.Join(",", row.ItemArray));
                }
                streamMaster.Write(dtTempFile.Copy());

                dtTempFile.Dispose();
            }

            streamMaster.Close();
            streamMaster.Dispose();
            Console.WriteLine("TA_{0} Complete", fileType);
输出看起来很像这样:


有什么想法吗?

要了解进展情况,您可以为此显示
控制台动画。它只处理一些符号,如斜杠等。您可以设置光标位置,使其像动画一样旋转

  Console.WriteLine("Writing to TA_{0}", fileType);
  using(var streamMaster = new StreamWriter(Settings.WorkingDirectory + "TA_" + fileType, true))
   {     
       streamMaster.Flush();
       int counter = 0;

       foreach (var tempFile in filesList)
       {
            ShowAnimation(++counter);
            var isZipped = tempFile.Contains(".gz");
            var dtTempFile = InternalUtils.GetTable(tempFile, isZipped);

            foreach (DataRow row in dtTempFile.Rows)
            {
                if(dtTempFile.Rows.IndexOf(row) != 0) 
                    streamMaster.WriteLine(String.Join(",", row.ItemArray));
            }
            streamMaster.Write(dtTempFile.Copy());
            dtTempFile.Dispose();
        }
    }
    Console.WriteLine("TA_{0} Complete", fileType);
显示动画方法

public void ShowAnimation (int counter)
{              
    switch (counter % 4)
    {
        case 0: Console.Write("/"); break;
        case 1: Console.Write("-"); break;
        case 2: Console.Write("\\"); break;
        case 3: Console.Write("|"); break;
    }
    Console.SetCursorPosition(Console.CursorLeft - 1, Console.CursorTop);
}

结果是有一个函数在几个层中实现了这一点

        If m_intRecord Mod 1000 = 0 Then
            Console.Write(".")
        End If

我一定是完全忽略了它!哎呀

您的清单中似乎没有写入控制台的代码……没有,这是奇怪的部分!我认为这与StreamWriter类有关:/您正在控制台上编写“…”的地方?要么您的列表不完整,要么有人不愿意承担单一责任。看看
InternalUtils.GetTable
。有很多程序员只会把代码推到任何地方去“使事情正常工作”。@德扎蒙多:请考虑删除这个问题,因为它没有UnthANKS哈桑,我可以用这个代替代码:“你为什么发布这个代码?”它不能回答这个问题question@musefan. 它满足要求。我通过OP
将注意力集中在这一行上,有没有办法关闭它,或者用其他东西代替它,比如闪烁“?
@hassansar:我不知道。。问题是“为什么它会这样做”,答案是因为一些代码甚至没有包含在问题中。在我看来,这不是一个很好的问题opinion@musefan. 是的,你是对的。请建议,我应该删除答案吗?这就是在VB.Net中编写时发生的情况