Как я могу добавить новый строитель строк, который был в другом классе - PullRequest
0 голосов
/ 06 сентября 2010

Привет всем, у меня есть форма, а именно addbatch, и у меня будет несколько текстовых полей и 3 кнопки, а именно, отмена отмены addentry. Когда я задаю какие-то значения в форме, я проверю условие как

   if(file.Length<95)
   {
      // I will raise an error
    }

Когда пользователь нажимает кнопку Addentry, я хотел бы показать новую форму, и если использование заполняет какие-то подробности, и нажмите кнопку Сохранить, я хотел бы добавить все данные в предыдущую форму после последней записи предыдущего форма.

У меня есть файл класса для партии следующим образом

public bool saveBatchHeader(string m_strPath)
    {
        StringBuilder sb = new StringBuilder();
        sb.AppendLine();
        sb.Append(m_strRecordTypeCode.PadLeft(1, '0'));
        sb.Append(m_strServiceClassCode.PadLeft(3, '0'));
        sb.Append(m_strCompanyName.PadRight(16, ' '));
        sb.Append(m_strCompanyDiscretionaryData.PadRight(20, ' '));
        sb.Append(m_strCompanyIdentification.PadRight(10, ' '));
        sb.Append(m_strStandardEntryClassCode.PadRight(3, ' '));
        sb.Append(m_strCompanyEntryDescription.PadRight(10, ' '));
        string m_strCompanyDescripDate = m_strCompanyDescriptiveDate.Replace("/", "");
        sb.Append(m_strCompanyDescripDate.PadLeft(6, '0'));
        string m_strEffDate = m_strEffectiveEntryDate.Replace("/", "");
        sb.Append(m_strEffDate.PadLeft(6, '0'));
        sb.Append(m_strJulianDate.PadRight(3, ' '));
        sb.Append(m_strOriginatorStatusCode.PadRight(1, ' '));
        sb.Append(m_strOriginationDFIIdentification.PadLeft(8, '0'));
        sb.Append(m_strBatchNumber.PadLeft(7, '0'));
        sb.Replace("\r\n", String.Empty);
        **int len = sb.Length;
        if (len < 95)
        {
            m_flag = false;
        }**
        else
        {
            StreamWriter sw = File.AppendText(m_strPath);
            sw.Write(sb);
            sw.Close();

        }
        return m_flag;
    }

Как добавить следующие данные формы в этот построитель строк и как я могу сохранить свой файл

Привет, это мой второй код

   public bool saveEntry(string strPath)
    {
        m_flag = true;
        string FileName = strPath;
        string m_strDate = DateTime.Now.ToString("MM/dd/yyyy");
        m_strDate = m_strDate.Replace("/", "");
        strPath += "/CCD_EntryDetailRecord_" + m_strDate + ".txt";

        using (TextWriter tw = new StreamWriter(strPath))
        {
            tw.Write(m_strRecordTypeCode.PadLeft(1, '0'));
            tw.Write(m_strTransactionCode.PadLeft(2, '0'));
            tw.Write(m_strRecievingDFIIdentification.PadLeft(9, '0'));
            tw.Write(m_strDFIAccountNumber.PadRight(17, ' '));
            tw.Write(m_strAmount.PadLeft(10, '0'));
            tw.Write(m_strIdentificationNumber.PadRight(15, ' '));
            tw.Write(m_strRecievingcompanyName.PadRight(22, ' '));
            tw.Write(m_strDiscretionaryData.PadRight(2, ' '));
            tw.Write(m_strAddendaRecordIndicator.PadLeft(1, '0'));
            tw.Write("TTTTBBBBZZZZZZZ");
            tw.WriteLine();
            tw.Flush();
            tw.Close();
    }

Все введенные здесь данные следует добавлять после sb.Append (m_strBatchNumber.PadLeft (7, '0')); что было в первом коде. После того, как я должен перепроверить свое состояние, если оно в порядке, я запишу его в требуемый файл ..

1 Ответ

1 голос
/ 06 сентября 2010

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

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