文字处理
文章平均质量分 68
清水迎朝阳
多年windows下c++客户端开发,或多或少踩了很多坑,积累了一些经验
展开
-
正则,找出无标点符号章节名字
场景:文字如下:找出下面两段的标题 佃户争占耕牛 海阳县九都乡下,有一石姓人家,名曰石尚友。专喜卖小牛,租与人养,牛大便取回孳生。时一邻人吴茂正无牛耕田,乃托相知人,到石尚友家,讨一牛去养。议定三年供大交还。谁知养到二年,牛一发长大肥壮,又生一不牛。吴茂心中欢喜,又得牛耕田,又有利息,愈加爱惜甚重。及至养至三年,石尚友见吴茂牛大,又生了子,遂来取回。吴茂见财起心,遂对石曰:「这牛白白养他两年,今才得用,尔便要取去,可将一两辛苦钱还我。若肯再与我养两年,我便贴尔一两银子。」石曰:「前..原创 2021-09-25 16:01:35 · 540 阅读 · 0 评论 -
正则中的或规则
目录一 场景二 正则中 易混淆的运算1、基本正则文法2、小括号()含义3、中括号 [] 含义4、大括号{}一 场景如下面网页,如果使用下面这种方法的话,使用正则 去除标签, 提取HTML 纯文本标题会出现两次,显然不符合期望。所以得想办法,既能将head部分的标题去掉,又能去掉所有的html标签。<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-CN"><head&g.原创 2021-09-14 15:31:07 · 13805 阅读 · 0 评论 -
KMP算法
在介绍KMP算法之前,先介绍一下BF算法。一.BF算法 BF算法是普通的模式匹配算法,BF算法的思想就是将目标串S的第一个字符与模式串P的第一个字符进行匹配,若相等,则继续比较S的第二个字符和P的第二个字符;若不相等,则比较S的第二个字符和P的第一个字符,依次比较下去,直到得出最后的匹配结果。 举例说明: S: ababcababa P: ababa转载 2012-10-15 14:27:35 · 826 阅读 · 0 评论 -
汉字UNICODE编码范围
基本多文种平面是Unicode中的一个编码区段。编码从U+0000至U+FFFF。常用汉字在此区间对应。 对应关系如下:3400-4DBF:CJK 统一表意符号扩展 A (CJK Unified Ideographs Extension A)4DC0-4DFF:易经六十四卦符号 (Yijing Hexagrams Symbols)4E00-9FBF:原创 2012-06-25 10:46:05 · 8643 阅读 · 0 评论 -
CString保存所有节点信息及读取CString中的节点信息
1 将信息保存在CString 变量中,以便以后保存到文档中CString 保存的信息格式如下:2_0_1_3_4其中2 表示有2个值 一个值为 另一个为 程序如下: struct Node{ int nStart; int nEnd; }; std::vector numInfoVector; Node node;原创 2011-12-06 15:27:44 · 1817 阅读 · 0 评论 -
ASCII 转换为UNICODE
方法一: 使用MultiByteToWideChar CFile file(strPath,CFile::modeRead|CFile::typeBinary); int num=file.GetLength(); // 得到的是文件字节(BYTE)的数目,而不是字数char *read;read=new char[num];file.R原创 2010-06-30 22:18:00 · 8601 阅读 · 0 评论 -
多字节与宽字节字符串的相互转换
读取UNICODE文件 保存在宽字节字符串中, 而DLL中的参数为char* , 所以必须进行宽字节到多字节的转换 CFile nFile_Read; //读取数据if(!nFile_Read.Open(L"e:\\1.xml",CFile::modeRead|CFile::typeBinary)){ MessageBox(L"未能打开");}UINT n原创 2012-09-06 17:12:51 · 13422 阅读 · 0 评论 -
C++实现unicode码转换成UTF-16的加码和解码函数
Unicode的实现方式不同于编码方式。一个字符的Unicode编码是确定的,但是在实际存储和传输过程中,由于不同系统平台的设计不一定一致,以及出于节省空间的目的,对Unicode编码的实现方式有所不同。Unicode的实现方式称为Unicode转换格式(UnicodeTransformation Format,简称为UTF)。 对Unicode编码的主要有UTF-16BE原创 2012-08-14 17:14:57 · 5714 阅读 · 1 评论 -
unicode中的几大区间
基本平面 平面0 (0000–FFFF): 基本多文种平面(Basic Multilingual Plane, BMP).unicode基本平面区的编码区间含义 第一辅助平面 第一辅助平面又称多文种补充平面(Supplementary Multilingual Plane,缩写SMP,或简称Plane 1),摆放拼音文字(主要为现时已不再使用的文字)和音符等符号。转载 2012-08-07 14:56:25 · 4747 阅读 · 0 评论 -
搜索字符串的三种方法
FILE *fp=_tfopen(szXmlFilePath,L"rb"); if (fp==NULL) return; fseek(fp,0,SEEK_END); UINT nLen=ftell(fp); fseek(fp,0,SEEK_SET); // 宽字符类型 wchar_t* pStr_Read = new wchar_t[nLen原创 2012-10-15 14:37:34 · 6026 阅读 · 1 评论 -
读写INI文件
写INI文件: //写INI文件 CString pathSet; pathSet=m_exePath+L"UnionPicSet.ini"; CString leftMargin,rightMargin,topMargin,bottomMargin,middleMargin; leftMargin.Format(L"%d",m_LeftMargin); right原创 2012-03-09 14:04:40 · 1094 阅读 · 0 评论 -
VC 判断CString字符串中各位是数字,大小写字母,符号,汉字
// UNICODE字符集CString str = L"0123abc中文字符、/"; CString shuzi,biaodianfuhao,hanzi,daxiezimu,xiaoxiezimu; for (int i = 0 ; i <str.GetLength();i++) { int unicode = (int)str.GetAt(i); if转载 2013-05-13 17:48:16 · 7995 阅读 · 0 评论 -
发布一个文字界面库 解放文字显示 几分钟使你的对话框OR视图文字呈现多彩效果
解放文字显示 几分钟使你的对话框OR视图文字呈现多彩效果解放文字显示处理不要再将宝贵时间浪费在文字显示处理上,几分钟使您的文字显示呈现多彩效果示例 :在对话框CStatic控件上,显示一段文字信息:代码:shuhuaDLL使用说明:对话框程序中添加VIEW视图:对话框上放一个文本控件CStatic IDC_STATIC原创 2014-11-30 23:11:50 · 1192 阅读 · 0 评论 -
Tokenize 获取用分隔符标记的每个字符串
本文由 代码助手软件 整理发布 内容与本软件无关 更惬意的读、更舒心的写、更轻松的发布一TokenizeFindsthenexttokeninatargetstringCStringTTokenize(PCXSTRpszTokens,int& iStart)const;ParameterspszT原创 2015-03-23 15:57:21 · 5110 阅读 · 0 评论 -
按行读取文件 并按分隔符解析字符串
本文由 代码助手软件 整理发布 内容与本软件无关 更惬意的读、更舒心的写、更轻松的发布1 文件保存第十一回 ??高塔入云盟九鼎????快招如电显双鹰|173639CFilefile;CreatePathFolder(path);原创 2015-03-23 16:14:11 · 4080 阅读 · 0 评论 -
CFile::modeNoTruncate 参数详细说明
MSDN上说到:CFile::modeNoTruncate Combine this value with modeCreate. If the file being created already exists, it is not truncated to 0 length. Thus the file is guaranteed to open, either as a newly cr转载 2010-08-13 15:35:00 · 31391 阅读 · 0 评论 -
中文在unicode中的编码范围
以前写过一篇贴子是写中文在unicode中的编码范围unicode中文范围,但写的不是很详细,今天再次研究了下unicode,并给出详细的unicode取值范围。本次研究的unicode对象是unicode 5.2.0版本。现在最新的是6.0版对于这次研究的unicode把编码分为以下几个平面(英文中是plane,可以认为就是不同的区位)Unicode可以逻辑分为17平面(P转载 2012-08-07 14:53:46 · 56821 阅读 · 0 评论 -
发布一个文字库,和随意 横竖显示文字
将自己之前折腾的快乐课堂、任性动图、古典小说朗读等一些软件中用到的核心东西:文字显示 ,提取下,提炼出基本的文字显示功能。整体上, 文字以 文本体--段落--行--文字 结构组织实现上, 以列表进行数据结构操作功能上, 精确控制每个字的位置, 提供 横排显示、竖排显示、 横竖转换、 重置文字 等功能git地址:https://github.com/gudianxiaoshuo/VT......原创 2019-09-18 11:11:24 · 505 阅读 · 0 评论 -
汉字UNICODE范围
在网上搜索了一下汉字的Unicode范围,普遍给出了“U+4E00..U+9FA5”。但事实上这个范围是不完整的,甚至连基本的全角(中文)标点也未包含在内。根据最新的Unicode 5.0版整理如下:注:在绝大多数应用场合中,我们可以仅用(1)、(2)、(3)、(4)、(5)的集合作为CJK判断的依据。1)标准CJK文字http://www.unicode.org/Public/UNI转载 2012-08-07 14:40:59 · 6247 阅读 · 0 评论 -
UNICODE 0x3000 -- 0x303f 中日韩符号
CJK 符号和标点(CJK Symbols and Punctuation) Unicode 编码表[范围(3000-303F)共64个]显示:⊕⊘ ⊖ Unicode 编码字符Unicode 编码字符Unicode 编码字符Unicode 编码字符转载 2012-08-07 14:30:55 · 4096 阅读 · 0 评论 -
Unicode 编码范围表
文字部分( U+0000 – U+007F) 基本拉丁字符 ( U+0080 – U+00FF) 增补拉丁字符集 1 ( U+0100 – U+017F) 拉丁字符扩展集 A ( U+0180 – U+024F) 拉丁字符扩展集 B ( U+0370 – U+03FF) 希腊文字中的科普特字符 ( U+0370 – U+03FF) 希腊字符 (转载 2012-08-07 14:25:07 · 3130 阅读 · 0 评论 -
获得TrueType字体文件 的相关信息
本文章主要解决的问题是: 如何获知TTF文件包含哪些字符,进而判断给定字符是否在此TTF字库中。使用的API 函数为 : GetGlyphIndicesThe GetFontUnicodeRanges function returns information about which Unicode characters are supported by a font. The inf原创 2012-05-04 17:03:35 · 4142 阅读 · 0 评论 -
文件读写: 二进制方式和文本方式的区别
首先要明白一点,就是无论你用哪种语言进行程序设计,也无论你用哪个函数进行文件操作(库函数也好,直接操作系统API也好),最终的文件打开的操作都是由操作系统来进行的,因此各种语言的情况从本质上来说都是相同的。 用二进制模式打开一个文件的时候,文件本身的内容和你编写程序时用函数读到的内容完全相同(或者说和磁盘上的内容完全相同)。 但是如果用了文本模式,那么操作系统在将文件内容传给上转载 2011-09-08 14:48:44 · 4316 阅读 · 0 评论 -
MultiByteToWideChar
MultiByteToWideChar 前些日子了解了一下UTF-8怎么变UNICODE,之后又想到怎么把GB2312变成UNICODE,发现WINAPI函数可以帮我们做这个动作,根本没必要知道GB2312编码表啊,直接就可以转,估计是WINDODS的API函数把他封装起来了。 由于这个在BXC有人写过这样的TOOL,所以没有必要写了,只要知道他是怎么实现的就行了,看了下面转载 2009-10-27 17:04:00 · 3865 阅读 · 1 评论 -
解决UNICODE字符集下CStdioFile的Writestring无法写入中文的问题
以下代码文件以CStdioFile向无法向文本中写入中文(用notepad.exe查看不到写入的中文)CStdioFile file;file.Open(…);file.WriteString(_T("abc你好"));//只能写入abc解决办法:使用setlocale语句设定区域#include //头文件CStdioFile file;file.Open(…转载 2010-08-13 15:44:00 · 979 阅读 · 2 评论 -
WideCharToMultiByte
---Unicode轉ANSI(GB2312) 說過了MultiByteToWideChar函數,也把WideCharToMultiByte函數也說一下吧。他們的功能是相反的。這個函數能把一個UNICODE型的字串轉成ANSI(GB2312)的字串。 看過下面的code,我想你會知道,怎麼去寫一個Unicode文本文件轉為GB2312文本文件的小tool了。大概思转载 2009-10-27 17:06:00 · 1625 阅读 · 0 评论 -
MFC文件读写技巧
一、读写文本文件CStdioFile rfile,wfile;if(rfile.Open(_T("c://dd.txt"),CFile::modeRead | CFile::typeText)) return 1;if(!wfile.Open(_T("c://ee.txt"),CFile::modeWrite|CFile::modeCreate|CFile::modeNoTru转载 2010-08-13 15:37:00 · 2815 阅读 · 0 评论 -
MFC中的文件读写操作
由于要写个游戏工具方便编程,要用到文件类的操作,看到这篇文章不错,特转载 计算机室如何管理自身所存放着的大量的信息的呢?windows的磁盘管理程序为我们提供了一套严密而又高效的信息组织形式--硬盘上的信息是以文件的形式被管理的。面向存储的文件技术什么是文件?计算机中,一篇文章、一幅图片、一个程序等都是以文件的形式存储在磁盘上的,每个文件都有一个文件名。计算机就是对文件转载 2010-08-13 15:41:00 · 1818 阅读 · 1 评论 -
ansi工程下CString 转换为 const wchar*
这是GDI+中的Image函数的命名 Image myImage2(L"D:\\2.jpg");这样是成功的。但是我想用一个变量来表示"D:\\2.jpg",比如CString 的 Pic,就会提示无法从CString 转化为const WCHAR *,我试了几种方式转换都没有成功,有人了解怎么转换吗? 这说明你的工程是ansi的需要转载 2011-07-21 17:13:17 · 2704 阅读 · 0 评论 -
unicode文本 转换为CString对象
封装函数:BOOL txtFileToCString(CString filePath,CString &fileContent){ CStdioFile readFile; if (!readFile.Open(filePath,CFile::modeReadWrite|CFile::typeBinary)) return FALSE; ULONGLONG len原创 2012-05-31 10:55:30 · 949 阅读 · 0 评论 -
文本块的操作
文本按块进行保存:TXT文件中,是类似[RECT=1>第一段 TXT文件中 分块号码升序如:[RECT=1>第一段[RECT=2>第2段[RECT=3>第三段[RECT=4>第四段 问题: 当加入新块时, 如何使得文档仍然有序 解决算法: IF(文件未被创建) 则创建此文件,直接将此分块写入 ELSE(文件已经被创建),原创 2012-06-01 15:50:24 · 927 阅读 · 0 评论 -
Unicode5.1字符编码分布表——标点符号类
Unicode5.1字符编码分布表——标点符号类 标点符号数学符号符号专用符号通用标点符号数字和数字符号综合符号控制符集合:C0(U+0000– U+001F,U+007F)、C1(U+0080– U+009F)ASCII标点符号(U+0020–转载 2012-08-07 15:08:56 · 7002 阅读 · 1 评论 -
基本多文种平面
基本多文种平面是Unicode中的一个编码区段。编码从U+0000至U+FFFF。 Unicode 基本多文种平面的示意图。每个写着数字的格子代表256个码点。右图是基本多文种平面的示意图。 定义 基本多文种平面,BMP(Basic Multilingual Plane),或称第零平面(Plane 0),是Unicode中的一个编码区段。编码从U+0000至U+FFFF转载 2012-08-07 14:28:21 · 2602 阅读 · 0 评论 -
键盘键功能键与Unicode编码对照表
功能键 Backspace 8 Tab 9 Clear 12 Enter 13 Shift 16 Control 17 Alt 18 Cap转载 2012-06-25 10:35:18 · 6815 阅读 · 0 评论 -
Unicode编码及其实现:UTF-16、UTF-8,and more
田海立@CSDN2012-04-25本文主要讨论Unicode的编码及其各种实现,着重讨论UTF-16,UTF-8的实现规则,以及Big-endian和Little-Endian的存储顺序。一、Unicode编码 Unicode出现之前已经有各种编码标准:ANSI、ISO8859-1、GB2312、GBK以及BIG-5等。Unicode试图统一转载 2012-06-20 16:45:12 · 1367 阅读 · 0 评论 -
去除文本中的标记
文本分为很多块 每一块都有一个编号 标记如下: [RECT=12>文本内容。。。 或 [RECT=12>Duplicate_1 而,现在要做的是把这些标识去掉, 如果有重复的,则在重复.txt中查找重复的内容,用重复的内容替换掉重复标志 EraseTxtMark(byte *pByte,int len){ CString conte原创 2012-05-24 13:04:15 · 846 阅读 · 0 评论 -
从1开始编号,和从0开始编号的含义
一 从1开始编号 1,2,。。。,N,N+1,。。。 索引为N 表示:从开始到索引N(包括索引N) 一共有N个元素 二 从0开始编号 0,1,2,。。。,N,N+1,。。。 索引为N表示: 索引N的左侧(不包括索引N),共有N个元素 编程中,经常会遇到从0编号和从1编号的情况,理解了这两种含义,不至于太混乱 下面以CStri原创 2012-05-24 13:55:38 · 7108 阅读 · 0 评论 -
文本分块操作的几个函数
1 TXT文本转换为字符串 //TXT文本转换为字符串 BOOL txtFileToCString(CString filePath,CString &fileContent); BOOL txtFileToCString(CString filePath,CString &fileContent){ CStdioFile readFile; if (!readF原创 2012-06-01 16:05:25 · 1166 阅读 · 0 评论 -
使用CStdioFile 读写UNICODE文档
一:写文档1 创建文档并写入内容 CString filePath=L"C:\\unicode.txt"; CStdioFile wfile; if (!wfile.Open(filePath,CFile::modeCreate|CFile::modeWrite|CFile::typeBinary)) { AfxMessageBox(L"文件无法修改");原创 2011-11-21 14:53:14 · 7180 阅读 · 0 评论 -
对话框中 嵌入RICHEDITView视图 设置垂直文本
这个垂直文本,网上很多人都询问过,可惜没有人能给出正确解决这个问题的方法。 几经曲折,终于想出了解决垂直排列文字的策略。 一开始我的想法 是使用VS2005中的 CRichEditCtrl 控件来做, 但是此控件是2.0版本,不支持垂直文本。 后来,查了许多资料,谈到,RICHEDIT 4.1版本支持垂直版本 因此,我就想找个4.1版本的C原创 2011-10-31 16:12:40 · 2532 阅读 · 2 评论