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,当且仅当 ...
随机推荐
- 【HackerRank】Sherlock and MiniMax
题目连接:Sherlock and MiniMax Watson gives Sherlock an array A1,A2...AN. He asks him to find an integer ...
- Struts2笔记02——Struts2 概述(转)
原始内容:https://www.tutorialspoint.com/struts_2/basic_mvc_architecture.htm Struts2是基于MVC设计模式的一种流行.成熟的We ...
- js 职责链模式简要介绍
定义: 使多个对象都有机会处理请求,避免发送者与接受者之间的耦合关系,将对象连成一条链,沿着这条链传递请求,直到有一个对象处理它. 如何把对象串联起来?解决方法通常是将另一个对象作为新创建对象的参数, ...
- java深入探究13-js,ajax
链接:http://pan.baidu.com/s/1c2D0cAs 密码:uwm6 1.js 1)三种基本类型: var num=100; var str="哈哈"; var f ...
- C#将字符转换成utf8编码 GB321编码转换
public static string get_uft8(string unicodeString) { UTF8Encoding utf8 = new UTF8Encoding(); Byte[] ...
- Codeforces Round #373 (Div. 2) E. Sasha and Array 矩阵快速幂+线段树
E. Sasha and Array time limit per test 5 seconds memory limit per test 256 megabytes input standard ...
- Linux上SFTP用法
SFTP简介 sftp是一个交互式的文件传输协议,类似于ftp,但它进行加密传输,比ftp更安全. SFTP用法 localhost 从远程主机获取文件或目录到本地目录下 sftp>get /h ...
- 怎么用API网关构建微服务
选择将应用程序构建为微服务时,需要确定应用程序客户端如何与微服务交互.在单体应用程序中,只有一组端点.而在微服务架构中,每个微服务都会暴露一组通常是细粒度的端点.在本文中,我们将讨论一下这对客户端与应 ...
- phalcon: 开启模板缓存和缓存路径
/** * 设置view */ $di->set('view', function () use ($config) { $view = new \Phalcon\Mvc\View(); $vi ...
- Linux命令之awk_1
简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再 ...