您的位置:首页 > 编程语言

VC编程实现:删除一个文本文件中的空行

2013-04-08 20:45 295 查看
文本文件中的空白行,可能是一个空字符串;也可能是空格、制表符组成的空白行,删除时要注意!

//
// 统计一个字符串是否全部是白字符 (0x09–0x0D 或者 0x20)组成
//
bool IsAllSpace(CString &str)
{
int len = str.GetLength();
int k = 0;
bool bAllSpace = true;
for (int i=0; i<str.GetLength(); i++)
{
if (isspace(str[i]))
k++;
}

if(k == len)
return true;
else
return false;

}

//
// 打开含有空行的文件,处理完毕保存
//
void CTestDlg::OnButton1()
{
CStdioFile fpIn, fpOut;
if( fpIn.Open("TestIn.c", CFile::typeText ) )
{
CString strLine;
CStringArray arry;

//遍历输入文件每一行
while(fpIn.ReadString(strLine))
{
if (strLine.IsEmpty())
{
//如果是空行,跳过!
}
else if(IsAllSpace(strLine))
{
//如果该行全部是白字符,跳过!
}
else
{
//剩下的,该行有内容,保存!
arry.Add(strLine);
}
}

//保存到文件中
if (fpOut.Open("TestOut.c", CFile::modeCreate| CFile::modeWrite | CFile::typeText ))
{
for (int i=0; i<arry.GetSize(); i++)
{
fpOut.WriteString(arry[i]);
fpOut.WriteString("\n");
}
fpOut.Close();
}
else
{
AfxMessageBox("输出文件未找到");
}

fpIn.Close();
}
else
{
AfxMessageBox("输入文件未找到");
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: