Как опустить лишние биты в файле?
Я хочу, чтобы опустить дополнительный бит в TXT file.eg ....ÿ 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();
}
2 ответа
Проходить CFile::typeBinary
в CFile::Open
когда вы строите bitstream
, В противном случае проверьте, что создает CString (m_B
). Дополнительный символ, который вы видите, выглядит как знак порядка байтов....
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);
}