Может кто-нибудь сказать, почему предыдущие данные по-прежнему отображаются при сохранении данных с помощью StreamWriter - PullRequest
0 голосов
/ 07 апреля 2011

Я сохраняю данные в имя файла с помощью Stream Writer, но если я запускаю код во второй раз, те же данные добавляются к предыдущим данным, но я хотел бы очистить старые данные и записать данные

Данные, которые я должен иметь в текстовом файле, должны быть следующими:

101 435435345 3445454541104021031A094101                                                      
52251               1                   1         CCD1         110402110402   1111000020000001
6281110000251                00000000011              1                     1 0111000020000001
822500000100111000020000000000010000000000001                                  111000020000001
 9000001000001000000010011100002000000000001000000000000                                       

Мой пример кода

if (i == 0)
{
  index++;
  string m_strDate = DateTime.Now.ToString("yyyy/MM/dd");
  m_strDate = m_strDate.Replace("/", "");
  StrFilePath = "log" + m_strDate + index + ".txt";
}
  using (StreamWriter sw = new StreamWriter(StrFilePath,true))
    {
     using (StreamReader sr = new StreamReader(new MemoryStream(System.Text.Encoding.ASCII.GetBytes(strLine))))
    {
        while (sr.Peek() >= 0)
         {
           strReadLine = sr.ReadLine();
          if (strReadLine.StartsWith("1"))
           {
                if (i == 0)
              {
                  strFileHeader = strReadLine;
                  sw.WriteLine(strFileHeader);
               }
          }
   if (strReadLine.StartsWith("5"))
     {
     strBatchHeader = strReadLine;
      if (i == 0)
    {
         Btchno = Convert.ToInt32(strBatchHeader.Substring(87, 7));
        BatchCnt = Convert.ToInt16(Btchno);
       }
     if (i > 0)
    {
           BatchCnt++;
           strBatchHeader = strBatchHeader.Substring(0, 87) + Convert.ToString(BatchCnt.ToString().PadLeft(7, (char)48));
      }
    sw.WriteLine(strBatchHeader);
  }
   }
 }
 }

Ответы [ 2 ]

6 голосов
/ 07 апреля 2011

Вы передаете true как параметр append в конструкторе StringWriter.

1 голос
/ 07 апреля 2011

Второй параметр здесь: new StreamWriter(StrFilePath,true) имеет значение true, что означает добавление в файл.Установите для этого параметра значение false, и оно будет работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...