Сохраните файл в одном текстовом файле, а также по указанному пути - PullRequest
1 голос
/ 23 июля 2010

Привет всем, я сделал код для сохранения моего файла следующим образом

       if (m_strStandardEntryClassCode == "PPD")
        {
            m_strPath += "/PPD_BatchHeader_" + m_strDate + ".txt";
        }
        else
        {
            m_strPath += "/CCD_BatchHeader_" + m_strDate + ".txt";
        }
        using (TextWriter tw = new StreamWriter(m_strPath))
        {
            tw.Write(m_strRecordTypeCode.PadLeft(1, '0'));
            tw.Write(m_strServiceClassCode.PadLeft(3, '0'));
            tw.Write(m_strCompanyName.PadRight(16, ' '));
            tw.Write(m_strCompanyDiscretionaryData.PadRight(20, ' '));
            tw.Write(m_strCompanyIdentification.PadRight(10, ' '));
            tw.Write(m_strStandardEntryClassCode.PadRight(3, ' '));
            tw.Write(m_strCompanyEntryDescription.PadRight(10, ' '));
            tw.Write(m_strCompanyDescriptiveDate.PadLeft(6, '0'));
            string m_strEffDate = m_strEffectiveEntryDate.Replace("/", "");
            tw.Write(m_strEffDate.PadLeft(6, '0'));
            tw.Write(m_strOriginatorStatusCode.PadRight(1, ' '));
            tw.Write(m_strOriginationDFIIdentification.PadLeft(8, '0'));
            tw.Write(m_strBatchNumber.PadLeft(7, '0'));
            tw.Flush();
            tw.Close();
        }

Теперь я хотел бы сохранить эти два файла в один файл, а также в виде нескольких файлов. Может кто-нибудь сказать, как это сделать ...

Ответы [ 2 ]

1 голос
/ 23 июля 2010

Вы бы хотели что-то вроде этого.

Ваши данные выглядят одинаково каждый раз (или, по крайней мере, я не вижу, как эти данные различаются), но я уверен, что вы получите суть.

Вам нужно использоватьFile.Append для добавления новых данных в файл и File.Open для очистки и записи новых данных.Вызовите MergedDataWrite дважды.Если вам нужно написать несколько файлов к нему.

public void SeparateDataWrite()
{
  if (m_strStandardEntryClassCode == "PPD")
  {
    m_strPath += "/PPD_BatchHeader_" + m_strDate + ".txt";
  }
  else
  {
    m_strPath += "/CCD_BatchHeader_" + m_strDate + ".txt";
  }

  using (StreamWriter w = File.Open(m_strPath, FileMode.Create)
  {
    WriteData(w);
    w.close();
  }
}

public MergedDataWrite()
{
  using (StreamWriter w = File.Append("somefilename.txt")
  {
    WriteData(w);
    w.Close();
  }
}

public void WriteData(TextWriter tw)
{
            tw.Write(m_strRecordTypeCode.PadLeft(1, '0'));
            tw.Write(m_strServiceClassCode.PadLeft(3, '0'));
            tw.Write(m_strCompanyName.PadRight(16, ' '));
            tw.Write(m_strCompanyDiscretionaryData.PadRight(20, ' '));
            tw.Write(m_strCompanyIdentification.PadRight(10, ' '));
            tw.Write(m_strStandardEntryClassCode.PadRight(3, ' '));
            tw.Write(m_strCompanyEntryDescription.PadRight(10, ' '));
            tw.Write(m_strCompanyDescriptiveDate.PadLeft(6, '0'));
            string m_strEffDate = m_strEffectiveEntryDate.Replace("/", "");
            tw.Write(m_strEffDate.PadLeft(6, '0'));
            tw.Write(m_strOriginatorStatusCode.PadRight(1, ' '));
            tw.Write(m_strOriginationDFIIdentification.PadLeft(8, '0'));
            tw.Write(m_strBatchNumber.PadLeft(7, '0'));
            tw.Flush();
}
0 голосов
/ 23 июля 2010

Различные способы сделать это, я бы посоветовал.

  1. Скопируйте файл № 1 в файл, называемый так, как должен называться один объединенный файл.
  2. Откройте новыйфайл (единственный объединенный файл) для добавления.
  3. Открыть файл № 2 для чтения и прочитать все содержимое.
  4. Запишите только что прочитанные данные в один объединенный файл.

Эта ссылка содержит простой пример кода для выполнения чего-либо подобного.

Другой вариант - сохранить все данные в памяти и затем записать 3 файла.прямо из памяти.

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