AfxExtractSubString 函数的相关问题
AfxExtractSubString函数的用法
注:本文系rainy8758原创,转载请注明出处:http://blog.hjenglish.com/rainy8758/articles/1010963.html
在我做加密软件时,需要给加密后的文件加个后缀(比如.zq),然后解密时又需要去掉后缀,还原本来的后缀,并在文件名后加“解密”二字,我采取的就是这 个比较不常用的MFC分割字符串的函数AfxExtractSubString(CString& rString, LPCTSTR lpszFullString,int iSubString, TCHAR chSep = '\n'),下面大概说一下它的用法:
注:本文系rainy8758原创,转载请注明出 处:http://blog.hjenglish.com/rainy8758/articles/1010963.html
参数说明:
rString 得到的字符串;lpszFullString 待分割的字符串;iSubString 要得到第几个字符串;chSep 个子串之间的分隔符
例如,有一个字符串strFullString = "abcd-efg-hijkl-mn";则有:
CString strTmp;
AfxExtractSubString( strTmp, (LPCTSTR)strFullString, 0, '-');//strTmp的内容为abcd
AfxExtractSubString( strTmp, (LPCTSTR)strFullString, 2, '-');//strTmp的内容为hijkl
感觉蛮好用的。
注:本文系rainy8758原创,转载请注明出处:http://blog.hjenglish.com/rainy8758/articles/1010963.htm
AfxExtractSubString应 用实例 然后我想要的结果也就可以通过这个函数来实现:比如得到一个字符串m_savefile = "C:\Downloads\1.txt.zq"; CString m_cd,m_sd,m_savefile; AfxExtractSubString(m_cd, (LPCTSTR)m_savefile, 0, '.');
AfxExtractSubString(m_sd, (LPCTSTR)m_savefile, 1, '.');
m_savefile=m_cd+"解密."+m_sd; 这样现在的m_savefile="C:\Downloads\1解密.txt"; 只是这样会有一个问题,就是万一在文件夹中带有".",比如(C:\Downloads(1.0)\1.txt)这样得出的结果就不是原来想像的那样,而是(C:\Downloads(1解密.0)\1.txt),要是没这样一个路径, 解密程序会报错的,所以还得想个改进的方法。这样的话,等忙完这段时间,我再好好想想,找个更好的方法和函数来实现这个功能。 =================================== 附上两篇文章: VC 用字符串截取字符串的函数(比AfxExtractSubString更好)
AfxExtractSubString是截取字符串的函 数,很好用,不过美中不足的地方在与它只能使用单个字符作为分割符。
但是这种情况在很多时候都行不通,如果分割符需要是两个字符 以上呢?
之前因为这个问题试了很久,也在网上搜索过。不过可惜的是, 网上的大部分关于VC截取字符串的文章都是那么同样的几篇,都是写的满复杂然后可以实现了AfxExtractSubString功能而已的,也就是只能 用单个字符截取,但是标题却写着用字符串截取字符串,好笑!
不找了,自己写吧。CString里面有Find,然后再组 成数组。
void Split(CString source, CStringArray& dest, CString division)
{
dest.RemoveAll();
int pos = 0;
int pre_pos = 0;
while( -1 != pos ){
pre_pos = pos;
pos = source.Find(division,(pos+1));
dest.Add(source.Mid(pre_pos,(pos-pre_pos)));
} }
CString source是需要截取的原字符串,
CStringArray& dest 是最终结果的数组
CString division 是用来做分割符的字符串
使用方式:
CStringArray dest;
Split(strViewString, dest, "<div id="pro_detail">"); 转自:http://blog.csdn.net/jaketseng/archive/2007/11/25/1901623.aspx
实 现VC程序启动时最小化到任务栏(完美解决闪烁问题)
之前写的一个VC应用程序,是程序启动时就直接出现在任务栏,
窗体不出现,等用户点击任务栏图标再出现窗口。和一些防火墙什么的软件类似。
这种效果实现并不是很困难的,硬是找不到最好的。为什么呢?
首先,在网络上找到的大部分说法都是:
BOOL CBBBApp::InitInstance()
{
...
m_pMainWnd->ShowWindow(SW_HIDE); // 原来是m_pMainWnd->ShowWindow(SW_SHOW);
....
}
这样虽然可以实现效果,但是会在启动瞬间快速显示一下窗口,然后再隐藏。给人一种闪烁一下的感觉,
然后继续在网上找,有些人建议可以先把窗口设成1X1大小,然后再点击显示的时候再还原成原来大小。但是不知道为什么我的程序做不到,调了1X1但 是窗口大约有200x200大小
终于在今晚找到了最好的解决方法:
首先在CBBBApp::InitInstance()去掉m_pMainWnd->ShowWindow(SW_SHOW); 这样窗口就不会出现
然后在CMainFrame::OnCreate中加上AfxGetApp()->m_nCmdShow = SW_HIDE;
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
return -1;
AfxGetApp()->m_nCmdShow = SW_HIDE;
........
return 0;
}
好了,终于可以完美解决这个闪烁的问题了。
PS:任务栏图标使用的TrayIcon.cpp类,又是另外的话题了。
AfxExtractSubString 函数的相关问题的更多相关文章
- js 时间函数 及相关运算大全
js 时间函数 及相关运算大全 var myDate = new Date(); myDate.getYear(); //获取当前年份(2位) myDate.getFullYear(); ...
- python06-列表表达式、生成器表达式及其面试题、解耦简单介绍、函数递归相关
目录: 一.列表推导式 二.生成器表达式 三.集合生成器 四.生成器面试题 五.解耦简单介绍 六.函数递归相关 一.列表推导式 需求:将[1,3,5]中的每个元素平方 正常思路: new_list = ...
- C++ 获取当前正在执行的函数的相关信息(转)
该功能用在日志打印中 原文地址:C++ 获取当前正在执行的函数的相关信息
- 关于getchar-scanf函数的相关坑!
首先,我们编写如下所示的代码: #include <stdio.h> void test(int n) { ; ; ; a = b; b = c; c = n; printf(" ...
- Pycharm中F4查看函数的相关小BUG
我们都知道在Pycharm中我们要快速查看某个函数或者模块的源码,可以在该函数上按F4快捷键,其可以打开源码相关的.py文件,这两天偶然发现起打开的文件不一定是对的. -代码如下: import os ...
- Linux C 创建目录函数mkdir相关(转-清新居士)
I.Linux C 创建目录函数mkdir的mode设置问题 函数原型: #include <sys/stat.h> int mkdir(const char *path, mode_t ...
- [php]php数组函数的相关
1.8.26---list与extract的作用区别extractextract -- 从数组中将变量导入到当前的符号表 说明int extract ( array var_array [, int ...
- VB读写INI文件的四个函数以及相关API详细说明
WritePrivateProfileString函数说明 来源:http://blog.csdn.net/wjb9921/article/details/2005000 在我们写的程序当中,总有一 ...
- java中Pattern.compile函数的相关解释
Pattern.compile函数:Pattern Pattern.compile(String regex, int flag) flag的取值范围如下: Pattern.CANON_EQ,当且仅当 ...
随机推荐
- HASH、HASH函数、HASH算法的通俗理解
之前经常遇到hash函数或者经常用到hash函数,但是hash到底是什么?或者hash函数到底是什么?却很少去考虑.最近同学去面试被问到这个问题,自己看文章也看到hash的问题.遂较为细致的追究了一番 ...
- Dubbo框架入门介绍
背景 随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进. 单一应用架构 当网站流量很小时,只需一个 ...
- 【HackerRank】Manasa and Stones
Change language : Manasa 和 她的朋友出去徒步旅行.她发现一条小河里边顺序排列着带有数值的石头.她开始沿河而走,发现相邻两个石头上的数值增加 a 或者 b. 这条小河的尽头有一 ...
- .babelrc参数小解
.babelrc是用来设置转码规则和插件的,这种文件在window上无法直接创建,也无法在HBuilder中创建,甚至无法查看,但可以在sublime text中创建.查看并编辑. 当我们使用es6语 ...
- poj 1273 ---&&--- hdu 1532 最大流模板
最近在换代码布局,因为发现代码布局也可以引起一个人的兴趣这个方法是算法Edmonds-Karp 最短增广路算法,不知道的话可以百度一下,基于Ford-Fulkerson算法的基础上延伸的 其实我不是很 ...
- Kubernetes TLS认证
转自: https://mritd.me/2018/01/07/kubernetes-tls-bootstrapping-note/ 前段时间撸了一会 Kubernetes 官方文档,在查看 TLS ...
- HIVE HSQL 基本操作命令
创建表: hive>create table tablename(id int,name string,password string); 创建一个名字为tablename的表,表的属性有int ...
- boot小知识
lg 大, md 中等, sm 小, xs 极小. 可以单独用,也可以混合用,不同的屏幕用不同的比例. push ,pull 推拉.这个不实用. row里面可以嵌套实用row. 挤不下的时候,就会自动 ...
- Android之动画1
点此下载 package com.example.animationdemo; import java.util.Timer; import java.util.TimerTask; import a ...
- AIM Tech Round 4 (Div. 2)ABCD
这一场真的是血崩,a,b都被hack,还好结束前重交都过了 A:题意:找出得到k个不同的字符,所要更改的最小字符数 题解:首先如果k>字符串长度,直接impossible,然后直接记录一下不重复 ...