怎的将读取txt文件中的16进制数形成图片,改为直接读取数组中的数形成?求高手!
怎样将读取txt文件中的16进制数形成图片,改为直接读取数组中的数形成?求高手!!
读取txt文件中的16进制数形成图片的程序如下:
void C***Dlg::OnBtnselfile()
{
// TODO: Add your control notification handler code here
CString strPathName;
char lpbuf[3];
CFileDialog m_FileDialg(true,_T(".txt"),NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,_T("文本文件(*.txt)|*.txt|All Files (*.*)|*.*||"),NULL);
CFileException e;
char path[MAX_PATH];
GetCurrentDirectory(MAX_PATH,path);
CString str=path;
str = str +_T("\\test.jpg");
if(m_FileDialg.DoModal()==IDOK)
{
strPathName = m_FileDialg.GetPathName();
CFile m_file_in,m_file_out;
unsigned char temp[3];
m_file_out.Open(str,CFile::modeReadWrite |CFile::modeCreate |CFile::typeBinary,NULL);
if(m_file_in.Open(strPathName,CFile::modeRead,&e))
{
m_file_in.SeekToBegin();
for(DWORD dl=0;dl<m_file_in.GetLength();)
{
m_file_in.Read(lpbuf,3);
temp[0] = strToHex(lpbuf[0])*16+strToHex(lpbuf[1]);
m_file_out.Write(temp,1);
dl = dl+3;
}
}
m_file_in.Close();
m_file_out.Close();
m_pic.LoadFromFile(str);
}
}
菜鸟求高手,不知道在哪里改~~
------解决方案--------------------
char lpbuf[nBytes];
for(DWORD dl=0;dl<nBytes;)
{
temp[0] = strToHex(lpbuf[dl])*16+strToHex(lpbuf[dl+1]);
m_file_out.Write(temp,1);
dl = dl+3;
}
------解决方案--------------------
楼主理解这段代码了么??
3个字符移动的原因是. 两个字符+一个空格。
------解决方案--------------------
读代码一部分一部分来吧
先确定打开文件什么的是否正确
再一个个测试函数的功能
读取txt文件中的16进制数形成图片的程序如下:
void C***Dlg::OnBtnselfile()
{
// TODO: Add your control notification handler code here
CString strPathName;
char lpbuf[3];
CFileDialog m_FileDialg(true,_T(".txt"),NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,_T("文本文件(*.txt)|*.txt|All Files (*.*)|*.*||"),NULL);
CFileException e;
char path[MAX_PATH];
GetCurrentDirectory(MAX_PATH,path);
CString str=path;
str = str +_T("\\test.jpg");
if(m_FileDialg.DoModal()==IDOK)
{
strPathName = m_FileDialg.GetPathName();
CFile m_file_in,m_file_out;
unsigned char temp[3];
m_file_out.Open(str,CFile::modeReadWrite |CFile::modeCreate |CFile::typeBinary,NULL);
if(m_file_in.Open(strPathName,CFile::modeRead,&e))
{
m_file_in.SeekToBegin();
for(DWORD dl=0;dl<m_file_in.GetLength();)
{
m_file_in.Read(lpbuf,3);
temp[0] = strToHex(lpbuf[0])*16+strToHex(lpbuf[1]);
m_file_out.Write(temp,1);
dl = dl+3;
}
}
m_file_in.Close();
m_file_out.Close();
m_pic.LoadFromFile(str);
}
}
菜鸟求高手,不知道在哪里改~~
------解决方案--------------------
char lpbuf[nBytes];
for(DWORD dl=0;dl<nBytes;)
{
temp[0] = strToHex(lpbuf[dl])*16+strToHex(lpbuf[dl+1]);
m_file_out.Write(temp,1);
dl = dl+3;
}
------解决方案--------------------
楼主理解这段代码了么??
3个字符移动的原因是. 两个字符+一个空格。
------解决方案--------------------
读代码一部分一部分来吧
先确定打开文件什么的是否正确
再一个个测试函数的功能