VC++6.0自定义实现日志记录到文件及界面显示

1,实现日志记录到文件,支持日志文件大小限制,节省空间

void CController::LogWriteRecord(CString strText,CString strFileName)
{CStdioFile csFile;try{BOOL bRet = csFile.Open(strFileName,CFile::modeCreate|CFile::modeNoTruncate|CFile::modeReadWrite|CFile::shareDenyNone|CFile::typeText);csFile.SeekToEnd();CString strWriteText=strText+"\r\n";csFile.WriteString(strWriteText);//csFile.Write(strWriteText.GetBuffer(strWriteText.GetLength()),1);strWriteText.ReleaseBuffer();DWORD64 dwFileLen = csFile.GetLength();if(!bRet){TRACE("Open failed exception\r\n");	}if(dwFileLen > constIFileMaxLen){csFile.Seek(-constIFileMaxLen,CFile::end);char *pcBuf = new char[constIFileMaxLen];memset(pcBuf,0,constIFileMaxLen);csFile.Read(pcBuf,constIFileMaxLen);int iLoop = 0;for( iLoop = 0;iLoop<constIFileMaxLen;iLoop++){if(0x0a == pcBuf[iLoop]){break;			}}iLoop++;csFile.SeekToBegin();csFile.Write(pcBuf+iLoop,constIFileMaxLen-iLoop);csFile.SetLength((DWORD)constIFileMaxLen-iLoop);delete [] pcBuf;pcBuf = NULL;}csFile.Flush();csFile.Close();}catch (...){csFile.Close();TRACE("Write log exception\r\n");	}
}
void CController::LogWriteOneRecord(CString strFunction,CString strType,CString strText)
{CDuplicatefilesclearDlg *pDlg = (CDuplicatefilesclearDlg*)m_pDlg;//LogWriteRecord("["+ CTime::GetCurrentTime().Format("%Y-%m-%d %H:%M:%S")+"]"+strText,GetLogFileName());TRACE(strText);TRACE("\r\n");m_strWriteText=("["+ CTime::GetCurrentTime().Format("%Y-%m-%d %H:%M:%S")+"]"+strFunction+"() "+strType+strText);LogWriteRecord(m_strWriteText,GetLogFileName());//显示到界面pDlg->AppendLog(strText);}

2,实现记录到UI Edit控件

2.1使用Edit控件,使用多行模式

2.2 编写ApendLog UI函数

void CDuplicatefilesclearDlg::AppendLog(CString str)
{CString strText;GetDlgItemText(IDC_EDIT_Msg,strText);strText += "\r\n";strText += str;if(strText.GetLength() > 10240){strText= strText.Right(strText.GetLength()/2);}SetDlgItemText(IDC_EDIT_Msg,strText);int nLen = ((CEdit*)GetDlgItem(IDC_EDIT_Msg))->SendMessage(WM_GETTEXTLENGTH);((CEdit*)GetDlgItem(IDC_EDIT_Msg))->SetSel(nLen, nLen, FALSE);
}

2.3 使用代码

	m_pControl = new CController(this);m_pControl->LogWriteOneRecord("CDuplicatefilesclearDlg::OnInitDialog()","[I] "," CDuplicatefilesclearDlg::OnInitDialog()函数...");

2.5运行结果

完整代码上传到资源,欢迎下载!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/12919.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

不相交集合的数据结构

一、不相交集合的操作 不相交集合的数据结构维护了一组不相交动态集的集合 &#xff0c;用集合中的某个成员作为代表标识集合。 集合在没有修改的情况下每次访问代表得到的答案是相同的&#xff0c;此外在其它一些应用中&#xff0c;可能按照规定选择集合的代表&#xff0c;例如…

【CSS基础】

4.CSS基础 4.1css的介绍 层叠样式表(英文全称:Cascading Style Sheets),是一种对web文档添加样式的简单机制&#xff0c;属于表现层的布局语言.4.2css基础语法 CSS语法由两部分组成&#xff1a;选择符、声明。 声明包括&#xff1a;属性和属性值选择符 {属性: 属性值 ;属性:…

docker 配置文件使用经验,后续持续增加

1. 容器中如何访问主机服务 在docker容器、docker compose 中如何访问主机服务呢&#xff1f; docker容器 20.10.0 版本在 linux 新增 host.docker.internal 支持&#xff1a; docker run -it --add-hosthost.docker.internal:host-gateway alpine cat /etc/hosts 127.0.0.…

leetcode hot100_part28_图论

目录 200.岛屿数量 DFS bfs 并查集 994.腐烂的橘子 207.课程表 DFS BFS 208.实现Trie&#xff08;前缀树&#xff09; 做完了这四题&#xff0c;总结一下&#xff0c;还是要掌握基本的dfs&#xff0c;bfs模版&#xff0c;都是在这些基础上变换的。 模版&#xff1a; …

项目-坦克大战

增加功能 我方坦克在发射的子弹消亡后&#xff0c;才能发射新的子弹。同时实现发多颗子弹 1&#xff0c;在按下J键&#xff0c;我们判断当前hero对象的子弹&#xff0c;是否已经销毁2&#xff0c;如果没有销毁&#xff0c;就不去触发shotEnemyTank3&#xff0c;如果已经销毁&…

WebSocket or SSE?即时通讯的应用策略【送源码】

最近在研究H5推送&#xff0c;发现除了我们常用的WebSocket以外&#xff0c;其实还有一种协议也能实现H5推送&#xff0c;那就是SSE协议。 而且&#xff0c;当前主流的大模型平台&#xff0c;比如ChatGPT、通义千问、文心一言&#xff0c;对话时采用的就是SSE。 什么是SSE协议…

文件上传OSS实现

1). 定义OSS相关配置 在sky-server模块 application-dev.yml sky:alioss:endpoint: oss-cn-hangzhou.aliyuncs.comaccess-key-id: LTAI5tPeFLzsPPT8gG3LPW64access-key-secret: U6k1brOZ8gaOIXv3nXbulGTUzy6Pd7bucket-name: sky-take-outapplication.yml spring:profiles:a…

100m/s高速轧制钢材 八轴测径仪检测毫无压力

关键词&#xff1a;八轴测径仪,在线测径仪,钢材测径仪,高速轧制 随着技术的提升&#xff0c;钢材的生产速度越来越快&#xff0c;一些高速生产的钢材&#xff0c;生产速度甚至达到了100m/s&#xff0c;这是一个非常快的速度。 如果汽车以120公里/小时的速度行驶&#xff0c;那么…

Unity WebGL全屏显示

一、删除footer节点 二、删除最下面点击事件绑定 修改Canvas宽高 canvas.style.width "960px"; canvas.style.height "600px"; 改成 canvas.style.width document.documentElement.clientWidth"px"; canvas.style.height document.document…

行为驱动开源免费接口测试框架:karate

什么是行为驱动测试&#xff1a; 行为驱动测试&#xff08;Behavior-Driven Testing&#xff0c;简称 BDT&#xff09;是一种测试方法&#xff0c;旨在通过描述系统行为和功能来编写测试用例。BDT的重点是从用户的角度出发&#xff0c;描述系统应该如何行为&#xff0c;而不是专…

计算机视觉全系列实战教程:(二)Opencv4+VS2022开发环境搭建

1.下载和安装 VS2022下载&#xff1a;https://visualstudio.microsoft.com/zh-hans/vs/ Opencv下载&#xff1a;https://opencv.org/releases/ Opencv安装有多种方式&#xff0c;一般学习者直接下载.exe傻瓜式安装即可 2.VS2022配置opencv4开发环境 &#xff08;1&#xff0…

Ubuntu设置中文教程

一、前言 Ubuntu是一款广受欢迎的Linux发行版&#xff0c;其界面友好、易用性强&#xff0c;并且拥有庞大的用户群体和丰富的社区资源。对于使用非英文操作系统的用户来说&#xff0c;将Ubuntu设置为中文界面是非常必要的。本文将介绍如何在Ubuntu中设置中文环境。 二、准备工…

DiskANN数据布局

_mem.index.data&#xff1a;和sift_base.fbin一模一样。0-3字节是总向量数&#xff0c;4-7是每个向量的特征数。后面就是依次放置的每个向量。 _disk.index&#xff1a;是存储的图&#xff0c;但是不光包含图也包含原始向量。前4KB不知道存的是啥。从第0x1000开始存放的是原始…

国内企业更喜欢私有化部署的 6 大原因

今天在 V 站看到一篇题为《为什么国内企业会更倾向于接受私有部署而不是 SaaS&#xff1f;》的帖子&#xff0c;觉得很有启发&#xff0c;这里把网友的观点稍作整理和总结&#xff0c;分享给大家参考。 在技术日益发展的今天&#xff0c;国内企业的软件部署方式似乎呈现出与欧…

【机器学习】机器学习:人工智能中实现自动化决策与精细优化的核心驱动力

&#x1f512;文章目录: &#x1f4a5;1.概述 ❤️2.机器学习基本原理 &#x1f6e4;️2.1定义与关键概念 &#x1f6e3;️2.2 机器学习算法 ☔3.自动化决策中的机器学习应用 &#x1f6b2;4.精细优化与机器学习的结合 &#x1f44a;5.挑战与前景 &#x1f4a5;1.概述 …

样式表单MIME 类型 “text/plain“ 不是 “text/css“问题处理

样式表单www.*.com/static/js/*.css未载入&#xff0c;因为它的 MIME 类型 "text/plain" 不是 "text/css"。 原因是服务器返回的MIME类型为 "text/plain"&#xff0c;而预期应该是 "text/css"。MIME类型是一种标准&#xff0c;用于定…

基于微信小程序+JAVA Springboot 实现的【房屋租赁管理系统】app+后台管理系统 (内附设计LW + PPT+ 源码+ 演示视频 下载)

项目名称 项目名称&#xff1a; 基于微信小程序的房屋租赁管理系统 在本次项目开发中&#xff0c;我们成功构建了一款基于微信小程序的房屋租赁管理系统&#xff0c;旨在通过现代化信息技术提升房屋租赁服务的效率和质量。以下是对本项目的全面总结&#xff1a; 项目背景与目…

js之选项卡制作实例

大家好&#xff0c;今天给大家书写选项卡实例&#xff0c;话不多说&#xff0c;直接上干货 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, in…

nginx中,location匹配规则解析

一.location匹配规则解析 1.默认"/"配置规则 server{listen 90;# /后面在html目录下能够配置就可以直接访问到 location /{root html;index index.html;} }2.精确"="匹配 server{listen 90;#精确匹配只能匹配到"/home/imooc/img/face1.png"这…

Redis-分片集群存储及读取数据详解

文章目录 Redis分片集群是什么&#xff1f;Redis分片集群的存储及读取数据&#xff1f; 更多相关内容可查看 Redis分片集群是什么&#xff1f; Redis分片集群是一种分布式部署方式&#xff0c;通过将数据分散存储在多个Redis节点上&#xff0c;从而提高了系统的性能、扩展性和…