返回首页

的TXT并不#39,T显示我informtion ................帮助我:


DateTime current_time = DateTime.Now;

string date = current_time.ToString("yyyyMMddHHmm");

string filename = string.Format("{0}", "RR" + date + ".rmt");

string path = Path.Combine("C:\\", filename);

StreamWriter str = new StreamWriter(path);

while (u<modemcount)>

{ 

  if (ReadModemData[u].Datas != null)

  {

    arr[0] = digit(ReadModemData[u].Datas[0]);  //0.0.2 

    arr[1] = current_time.ToString(",yyMMdd,");

    arr[2] = current_time.ToString("HHmm,");

    arr[3] = digit2(ReadModemData[u].Datas[1]) + ",";   //5.0.     

    arr[4] = digit2(ReadModemData[u].Datas[2]) + ",";    //5.0.1

    arr[5] = digit2(ReadModemData[u].Datas[3]) + ",";      //5.0.2

    arr[6] = "-1,";

    arr[7] = digit2(ReadModemData[u].Datas[4]) + ","; //6.0.0

    arr[8] = digit(ReadModemData[u].Datas[5]);                          //8.0.1

    array = (arr[0] + arr[1] + arr[2] + arr[3] + arr[4] + arr[5] + arr[6] + arr[7] + arr[8]);

    MessageBox.Show(array);

    str.WriteLine(array + "\r");

  } 

  else

  { str.Write(""); }

  u++; 
MessageBox中显示我的信息,但文本文件不显示任何东西。

回答

评论会员:游客 时间:2012/02/06
首先,你应该使用如下,你可以尝试加入一个刷新语句(虽然没有严格要求)包装的StreamWriter。{C}请问你的进程创建一个空文件或文件没有呢?另外,不要在数组声明:或许应该为:codeprestr.WriteLine(spanclass="code-keyword"array/span.ToString());/pre/code的在任何情况下,可以考虑使用StringBuilder的数据收集在一起,更容易的格式,可以直接使用试图通过这种阅读:imgsrc=
LanFanNinja:确定为第一关解决方案1作者说,你要么需要包装在using语句中或之后的StreamWriter循环str.Close调用()和str。 Dispose()方法; StreamWriter对象从内存中删除。第二,如果使用Windows Vista或Windows 7确保您没有创建在C:\文件名的文件的权限问题。第三注意的str.Flush();下面的代码:

{体C3}
我也不能确定你需要的"\ R"{的C4}或
{C5的}
评论会员:游客 时间:2012/02/06
BobJanova:您需要关闭的StreamWriter。文件输出缓冲,并没有得到书面直到作家在一般情况下,被关闭。(您可以刷新,但在这里变得毫无意义。)包装使用条款马克建议将导致它的使用范围得到封闭,也应该解决您的问题。你要始终把文件代码里面使用{5233}...或尝试/终于:{C7-}...否则文件I/O代码将导致文件中的异常处理没有被关闭的文件暂时无法访问(包括您的应用程序),直到该进程终止。我也同意与马克,如果建立这样一个文本输出的字符串,你应该使用StringBuilder。使用一个数组,你是有道理的,如果你出于某种原因需要使用的部分分开,但你只是用它来构建的文本行,以便使用基于文本类工作
phil.o
评论会员:游客 时间:2012/02/06
尽量不要把您的硬盘驱动器的根文件,作为UAC可以防止这样的方案。是一个很好的实践Zhang使用您的用户文件夹,在那里你可以读/写任何你想