【问题标题】:how to omit extra bits in a file?如何省略文件中的额外位?
【发布时间】:2010-06-07 04:05:53
【问题描述】:

我想在 txt 文件中省略额外的位。例如 ....ÿ 0111111110111101100011011010010001 在这个字符串中我们想要省略额外的位 ÿ,当我们保存二进制字符串时出现。保存乐趣如下。请帮帮我。

void LFSR_ECDlg::Onsave() 
{
    this->UpdateData();

    CFile bitstream;
    char strFilter[] = { "Stream Records (*.mpl)|*.mpl| (*.pis)|*.pis|All Files (*.*)|*.*||" };

    CFileDialog FileDlg(FALSE, ".mpl", NULL, 0, strFilter);



    if( FileDlg.DoModal() == IDOK )
    {
        if( bitstream.Open(FileDlg.GetFileName(), CFile::modeCreate | CFile::modeWrite) == FALSE )
            return;
        CArchive ar(&bitstream, CArchive::store);


        CString txt;
        txt="";
        txt.Format("%s",m_B);//by ANO
        AfxMessageBox (txt);//by ANO
        txt=m_B;//by ANO
        ar <<txt;//by ANO

        ar.Close();
    }
    else
        return;

    bitstream.Close();
}

【问题讨论】:

  • 我不使用 Microsoft 库,所以我可能无法帮助您,但我建议您简化此代码(删除问题不必要的 CFileDialog 之类的内容)和告诉我们'm_B'是什么。这将有助于我们重现问题。
  • @Beta:你知道 m_B 是一个 LPCTSTR 因为 %s。
  • @Billy:其实你希望它是个野兽。

标签: c++ mfc cstring


【解决方案1】:

在构造bitstream 时将CFile::typeBinary 传递给CFile::Open。否则检查创建 CString (m_B) 的内容。您看到的额外字符看起来像字节顺序标记....

【讨论】:

    【解决方案2】:

    void LFSR_ECDlg::Onsave() { this->UpdateData();

    CFile bitstream;
    char strFilter[] = { "Stream Records (*.mpl)|*.mpl| (*.pis)|*.pis|All Files (*.*)|*.*||" };
    
    CFileDialog FileDlg(FALSE, ".mpl", NULL, 0, strFilter);
    

    //插入//通过 TTT

    CFile cf_object;
    if( FileDlg.DoModal() == IDOK ){
    cf_object.Open( FileDlg.GetFileName(), CFile::modeCreate|CFile::modeWrite);
    //char szText[100];
    //strcpy(szText, "File Write Test");
        CString txt;
        txt="";
        txt.Format("%s",m_B);//by ANO
        AfxMessageBox (txt);//by ANO
    int mB_size=m_B.GetLength();
    cf_object.Write (m_B,mB_size); 
    

    }

    【讨论】:

      猜你喜欢
      • 2018-07-29
      • 1970-01-01
      • 1970-01-01
      • 2013-02-26
      • 1970-01-01
      • 2021-06-20
      • 2012-08-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多