MFC实现删除txt文件某一行数据并将后面的数据向前移动删除的行数
时间: 2023-08-01 13:06:33 浏览: 224
可以通过以下步骤实现:
1. 打开要操作的txt文件,读取其中的数据
2. 找到要删除的行数,将其从数据中删除
3. 关闭文件
4. 重新打开文件,将删除后的数据写入txt文件中
以下是一个示例代码:
```
BOOL DeleteLineFromFile(CString strFilename, int nLine)
{
// 打开要操作的文件
CStdioFile file;
if (!file.Open(strFilename, CFile::modeReadWrite | CFile::shareDenyNone))
return FALSE;
// 读取文件中的数据
CStringArray arrData;
CString strLine;
while (file.ReadString(strLine))
arrData.Add(strLine);
// 关闭文件
file.Close();
// 删除指定行数的数据
if (nLine >= arrData.GetSize())
return FALSE;
arrData.RemoveAt(nLine);
// 重新打开文件,写入修改后的数据
if (!file.Open(strFilename, CFile::modeCreate | CFile::modeWrite | CFile::shareDenyNone))
return FALSE;
for (int i = 0; i < arrData.GetSize(); i++)
{
// 将数据写入文件中
CString strData = arrData.GetAt(i);
file.WriteString(strData + _T("\n"));
}
// 关闭文件
file.Close();
return TRUE;
}
```
在调用该函数时,需要传入要操作的txt文件名和要删除的行数。例如:
```
DeleteLineFromFile(_T("test.txt"), 2);
```
这将删除test.txt文件中的第三行数据,并将后面的数据向前移动一行。