使用CStdioFile对象hfile读取一行,怎么删除改行或者替换改行里面的一段字符串???

解决方案 »

  1.   

    最笨的方法建立一个文件,重原来读一行后就写一行到新建立的文件,对于要删除的不写就是,替换可以用CString类的函数操作
      

  2.   

    读出文件内容到字符串,找到该行,删除之,写回文件。
    替换一样,找到该行,用CString的Replace,然后写回文件
      

  3.   

    我想重建一个文件,然后重新写。
    判断是否存在哪个文件然后删除,然后建立怎么判断是否存在哪个文件?用下面的方法吗?
    if( !hfile.Open(lpFileName, CFile::modeRead) )
    {
    AfxMessageBox("can not open file!");
    return;
    }
    然后用Remove方法移除文件?
    创建文件呢?用哪个阿?
      

  4.   

    to : lixiaosan(小三) 怎么删除一行?我找了 CStdioFile 得类成员好像没有删除德阿
      

  5.   

    //CFile::modeCreate 创建新的文件或把已存在的文件长度截为0
    file.Open("abc.txt",CFile::modeWrite|CFile::modeCreate,NULL);
      

  6.   

    判断一个文件是否存在
    CFileFind find;
    if (!find.FindFile("Yourfile.exe"))
      // 不存在
    find.Close();
      

  7.   

    你可以用CStringArray类先把文件中所有信息读入到CStringArray对象,然后add,然后查找到有关键字的行,用RemoveAt删除之。然后再把RemoveAt对象中的内容写回到文件中
      

  8.   

    假如你有文件c:\\1.txt
    内容为
    00 11
    key
    01 22
    key
    02 33
    现在要删除带key 关键字的行 CStringArray strarray;
    CStdioFile file;
    if( !file.Open("c:\\1.txt", CFile::modeRead) )
    {
    AfxMessageBox("can not open file!");
    return;
    }
    CString strLine;
    while(file.ReadString(strLine))
    {
    strarray.Add(strLine);
    }
    file.Close();

    CString str;
    int nCount=strarray.GetSize();
    for(int i=0; i<nCount; i++)
    {
    str = strarray[i];
    if( str.Find("key") != -1)
    {
    strarray.RemoveAt(i);
    nCount--;
    i--;
    }
    }
    if( !file.Open("c:\\1.txt", CFile::modeCreate|CFile::modeWrite) )
    {
    AfxMessageBox("can not open file!");
    return;
    }
    for(i=0; i<strarray.GetSize(); i++)
    {
    str = "";
    str = strarray[i] + "\n";
    file.WriteString(str);
    }
    file.Close();