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