programmer_ada 2023-05-26 10:04 采纳率: 4.3%
浏览 23

关于#c++#的问题:需要加入一句话(SeekToEnd)

该问题来自社区帖: https://bbs.csdn.net/topics/615547012.为符合问答规范, 该问题经过ChatGPT优化
问题:如何实现追加写入 RTF 文件? 解决方法:使用 StreamOut 的方式写入 RTF 文件。需要加入一句话(SeekToEnd),否则每次都会重新写文件,无法追加写入。但加入这句话则文件大小会增大很多。以下是写文件的相关代码: ```cpp BOOL CESSCTermTestDoc::OnSaveDocument(LPCTSTR lpszPathName) { //TODO: 在此添加专用代码和/或调用基类 CMainFrame *pFrame = (CMainFrame*)AfxGetMainWnd(); CESSCTermTestView *pEditView = (CESSCTermTestView *)pFrame->m_wndSplitter.GetPane(0, 1); CFile cFile; cFile.Open(lpszPathName, CFile::modeCreate | CFile::modeWrite | CFile::modeNoTruncate); EDITSTREAM es; es.dwCookie = (DWORD)&cFile; es.pfnCallback = StreamOutCallback; pEditView->m_richEditCtrl->StreamOut(SF_RTF, es); SetModifiedFlag(FALSE); return TRUE;; } //流出回调函数 DWORD CESSCTermTestDoc::StreamOutCallback(DWORD dwCookie, LPBYTE pbBuff, LONG cb, LONG *pcb) { CFile* pFile = (CFile*)dwCookie; pFile->SeekToEnd(); pFile->Write(pbBuff, cb); *pcb = cb; return 0; } ```
  • 写回答

1条回答 默认 最新

      报告相同问题?

      相关推荐 更多相似问题

      问题事件

      • 创建了问题 5月26日

      悬赏问题

      • ¥15 vivado如何支持多维打包数组模式
      • ¥15 请问第13题到底应该怎么做
      • ¥15 stable diffusion报错问题
      • ¥20 数据可视化综合运用 导入npz文件以及读取内容
      • ¥15 倒计时汇编语言RTC实时时钟
      • ¥15 CCS安装出现Failed to create the part's controls
      • ¥15 请问有digital Fortran编译器吗
      • ¥15 用cst怎么仿真同轴馈线
      • ¥15 如何在lammps中添加气液边界条件?
      • ¥20 具有每日记账功能的简易日历程序