各位好:
小弟写了一个小程序:将一个文本文件按列分别存入不同文件中(次序不能乱)!
程序能运行但性能显示cpu利用率接近100%,而且任务管理器显示“未运行”。有人提议用多线程解决,由于小弟对这方面不是很了解,请各位高手赐教!比较急!!!今天程序就要用了!!!!!!请赐教!for(k=0;k<len/i;k++)
{ m_SourceFile.Seek(k*(i+2),CFile::begin);
for(hh=1;hh<=m;hh++)
{
name=_ltoa(hh,buff,10);
name+=_T("_");
if (!destFile1.Open(_T(newpath + name+ m_SourceFile.GetFileTitle()+".obj"),
CFile::modeReadWrite |
// CFile::shareDenyNone |
CFile::modeNoTruncate |
// CFile::shareCompat |
CFile::typeBinary , &ex)) {
TCHAR szError[1024];
ex.GetErrorMessage(szError, 1024);
::AfxMessageBox(szError);
m_SourceFile.Close();
return 1;
}
destFile1.Seek(k,CFile::begin);
if(i%8)//l=i%8
{
if(hh!=m)//hh文件的个数。。m=i%8或i%8+1 ->位数整的前几个文件处理方式
{
dwRead = m_SourceFile.Read(mbuffer, 8);
ybuffer[0]=BinaryToDecimal(mbuffer);
destFile1.Write(ybuffer,1);
destFile1.Close();
}
else
{
dwRead=m_SourceFile.Read(mbuffer,l);//l为余数
int t;
t=l;
do{
mbuffer[++t]='0';
}while(t<8);
ybuffer[0]=BinaryToDecimal(mbuffer);
destFile1.Write(ybuffer,1);
destFile1.Close();
}
/* for(int t=0;t<8-l;t++)
{
mbuffer[l+t]='0';
}
ybuffer[0]=BinaryToDecimal(mbuffer);
destFile1.Write(ybuffer,1);
destFile1.Close();
}*/
}
else
{ dwRead = m_SourceFile.Read(mbuffer, 8);
ybuffer[0]=BinaryToDecimal(mbuffer);
destFile1.Write(ybuffer,1);
destFile1.Close();
}
}
//if((len/i)>(i/8))
//{
pProgress.SetRange(0, len/i);
// Set the position
pProgress.SetPos(k);
//}} // close source m_SourceFile.Close();
小弟写了一个小程序:将一个文本文件按列分别存入不同文件中(次序不能乱)!
程序能运行但性能显示cpu利用率接近100%,而且任务管理器显示“未运行”。有人提议用多线程解决,由于小弟对这方面不是很了解,请各位高手赐教!比较急!!!今天程序就要用了!!!!!!请赐教!for(k=0;k<len/i;k++)
{ m_SourceFile.Seek(k*(i+2),CFile::begin);
for(hh=1;hh<=m;hh++)
{
name=_ltoa(hh,buff,10);
name+=_T("_");
if (!destFile1.Open(_T(newpath + name+ m_SourceFile.GetFileTitle()+".obj"),
CFile::modeReadWrite |
// CFile::shareDenyNone |
CFile::modeNoTruncate |
// CFile::shareCompat |
CFile::typeBinary , &ex)) {
TCHAR szError[1024];
ex.GetErrorMessage(szError, 1024);
::AfxMessageBox(szError);
m_SourceFile.Close();
return 1;
}
destFile1.Seek(k,CFile::begin);
if(i%8)//l=i%8
{
if(hh!=m)//hh文件的个数。。m=i%8或i%8+1 ->位数整的前几个文件处理方式
{
dwRead = m_SourceFile.Read(mbuffer, 8);
ybuffer[0]=BinaryToDecimal(mbuffer);
destFile1.Write(ybuffer,1);
destFile1.Close();
}
else
{
dwRead=m_SourceFile.Read(mbuffer,l);//l为余数
int t;
t=l;
do{
mbuffer[++t]='0';
}while(t<8);
ybuffer[0]=BinaryToDecimal(mbuffer);
destFile1.Write(ybuffer,1);
destFile1.Close();
}
/* for(int t=0;t<8-l;t++)
{
mbuffer[l+t]='0';
}
ybuffer[0]=BinaryToDecimal(mbuffer);
destFile1.Write(ybuffer,1);
destFile1.Close();
}*/
}
else
{ dwRead = m_SourceFile.Read(mbuffer, 8);
ybuffer[0]=BinaryToDecimal(mbuffer);
destFile1.Write(ybuffer,1);
destFile1.Close();
}
}
//if((len/i)>(i/8))
//{
pProgress.SetRange(0, len/i);
// Set the position
pProgress.SetPos(k);
//}} // close source m_SourceFile.Close();
发给我,我给你改啊
[email protected]