<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[记录我的技术成长轨迹]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/hapure1</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; hapure1]]></copyright><item><title><![CDATA[python 字符串 换 字典]]></title><link>https://blog.youkuaiyun.com/hapure1/article/details/94601166</link><guid>https://blog.youkuaiyun.com/hapure1/article/details/94601166</guid><author>hapure1</author><pubDate>Wed, 19 Jan 2022 16:02:26 +0800</pubDate><description><![CDATA[&gt;&gt;&gt; import json
&gt;&gt;&gt; user_info= '{"name" : "john", "gender" : "male", "age": 28}'
&gt;&gt;&gt; user_dict = json.loads(user_info)
&gt;&gt;&gt; user_dict
{u'gender': u'male', u'age': 2...]]></description><category></category></item><item><title><![CDATA[awk 用法（使用入门）]]></title><link>https://blog.youkuaiyun.com/hapure1/article/details/71515341</link><guid>https://blog.youkuaiyun.com/hapure1/article/details/71515341</guid><author>hapure1</author><pubDate>Wed, 10 May 2017 10:47:06 +0800</pubDate><description><![CDATA[变量名    含义 
ARGC   命令行变元个数 
ARGV   命令行变元数组 
FILENAME   当前输入文件名 
FNR   当前文件中的记录号 
FS   输入域分隔符，默认为一个空格 
RS   输入记录分隔符 
NF   当前记录里域个数 
NR   到目前为止记录数 
OFS   输出域分隔符 
ORS   输出记录分隔符 

1、awk '/101/']]></description><category></category></item><item><title><![CDATA[awk 计算 uv]]></title><link>https://blog.youkuaiyun.com/hapure1/article/details/71515288</link><guid>https://blog.youkuaiyun.com/hapure1/article/details/71515288</guid><author>hapure1</author><pubDate>Wed, 10 May 2017 10:42:20 +0800</pubDate><description><![CDATA[awk 'BEGIN {count=0;revsum=0;bdnum=1;click = 0;} {if($1!=0){bdid[count,0]=$1; bdid[count++,1]=$9;}; dis_bdid[0]=bdid[0,0]} 
END{
    for(i=0;i
     {
       for(j=0;j
        {
          if (bdi]]></description><category></category></item><item><title><![CDATA[vim tab设置为4个空格]]></title><link>https://blog.youkuaiyun.com/hapure1/article/details/54091762</link><guid>https://blog.youkuaiyun.com/hapure1/article/details/54091762</guid><author>hapure1</author><pubDate>Thu, 05 Jan 2017 11:56:00 +0800</pubDate><description><![CDATA[在.vimrc中添加以下代码后，重启vim即可实现按TAB产生4个空格：
set ts=4  (注：ts是tabstop的缩写，设TAB宽4个空格)
set expandtab
对于已保存的文件，可以使用下面的方法进行空格和TAB的替换：
TAB替换为空格：
:set ts=4
:set expandtab
:%retab!
空格替换为TAB：
:set ts=4
:set n]]></description><category></category></item><item><title><![CDATA[protobuf windows 下的使用配置]]></title><link>https://blog.youkuaiyun.com/hapure1/article/details/53484890</link><guid>https://blog.youkuaiyun.com/hapure1/article/details/53484890</guid><author>hapure1</author><pubDate>Tue, 06 Dec 2016 11:25:24 +0800</pubDate><description><![CDATA[我已经试验过，不过protobuf 源码不是在谷歌下载的。网上说下载不能下载了，一个好心网友的网盘里下载的
 
欢迎转载，转载请注明原文地址：http://blog.youkuaiyun.com/majianfei1023/article/details/45371743


protobuf的使用和原理，请查看：http://blog.youkuaiyun.com/majianfei1023/article/]]></description><category></category></item><item><title><![CDATA[与容器共有的 string 操作]]></title><link>https://blog.youkuaiyun.com/hapure1/article/details/52983419</link><guid>https://blog.youkuaiyun.com/hapure1/article/details/52983419</guid><author>hapure1</author><pubDate>Mon, 31 Oct 2016 16:26:01 +0800</pubDate><description><![CDATA[s.insert(p, t) 

在迭代器
p 指向的元素之前插入一个值为
t 的新元素。返回指向新插入元素的迭代器

s.insert(p, n, t)

在迭代器
p 指向的元素之前插入
n 个值为
t 的新元素。返回
void
s.insert(p, b, e)

在迭代器
p 指向的元素之前插入迭代器
b 和
e 标记范围内所有的元素。返回
void]]></description><category></category></item><item><title><![CDATA[C/C++之宏、内联函数和普通函数的区别]]></title><link>https://blog.youkuaiyun.com/hapure1/article/details/52979819</link><guid>https://blog.youkuaiyun.com/hapure1/article/details/52979819</guid><author>hapure1</author><pubDate>Mon, 31 Oct 2016 09:42:51 +0800</pubDate><description><![CDATA[内联函数的执行过程与带参数宏定义很相似，但参数的处理不同。带参数的宏定义并不对参数进行运算，而是直接替换；内联函数首先是函数，这就意味着函数的很多性质都适用于内联函数，即内联函数先把参数表达式进行运算求值，然后把表达式的值传递给形式参数。

    内联函数与带参数宏定义的另一个区别是，内联函数的参数类型和返回值类型在声明中都有明确的指定；而带参数宏定义的参数没有类型的概念，只有在宏展开以后，]]></description><category></category></item><item><title><![CDATA[模板类的使用- 简单使用]]></title><link>https://blog.youkuaiyun.com/hapure1/article/details/52956913</link><guid>https://blog.youkuaiyun.com/hapure1/article/details/52956913</guid><author>hapure1</author><pubDate>Fri, 28 Oct 2016 16:57:47 +0800</pubDate><description><![CDATA[/* 
类模板，但是在类外定义成员函数的时候，需要使用函数模板 
*/  
#include   
using namespace std ;  
template class T>  
class Base  
{  
public :      
    T a ;  
    Base(T b)  
    {  
        a = b ;      
   ]]></description><category></category></item><item><title><![CDATA[<stdexcept> 头文件中定义的标准异常类]]></title><link>https://blog.youkuaiyun.com/hapure1/article/details/52953774</link><guid>https://blog.youkuaiyun.com/hapure1/article/details/52953774</guid><author>hapure1</author><pubDate>Fri, 28 Oct 2016 10:07:20 +0800</pubDate><description><![CDATA[exception
The most general kind of problem.
最常见的问题。
runtime_error
Problem that can be detected only at run time.
运行时错误：仅在运行时才能检测到问题
range_error
Run-time error: result generated outside the rang]]></description><category></category></item><item><title><![CDATA[string 的几个接口函数，包括拼接复制等]]></title><link>https://blog.youkuaiyun.com/hapure1/article/details/52909129</link><guid>https://blog.youkuaiyun.com/hapure1/article/details/52909129</guid><author>hapure1</author><pubDate>Mon, 24 Oct 2016 10:00:53 +0800</pubDate><description><![CDATA[strlen(s) Returns the length of
s, not counting the null.
   返回
s 的长度，不包括字符串结束符
null
strcmp(s1, s2)
Compares 
s1 and
s2 for equality. Returns 0 if
s1 == s2,
positive value if s1 > s2, negati]]></description><category></category></item><item><title><![CDATA[string 类 判断字符的一些函数]]></title><link>https://blog.youkuaiyun.com/hapure1/article/details/52901096</link><guid>https://blog.youkuaiyun.com/hapure1/article/details/52901096</guid><author>hapure1</author><pubDate>Sun, 23 Oct 2016 12:53:14 +0800</pubDate><description><![CDATA[isalnum(c)
True if c is a letter or a digit.
如果 c 是字母或数字，则为 True。
isalpha(c)
true if c is a letter.
如果 c 是字母，则为 true。
iscntrl(c)
true if c is a control character.
如果 c 是控制字符，则为 true
isdigit(c]]></description><category></category></item><item><title><![CDATA[有时间细读这些书]]></title><link>https://blog.youkuaiyun.com/hapure1/article/details/52809764</link><guid>https://blog.youkuaiyun.com/hapure1/article/details/52809764</guid><author>hapure1</author><pubDate>Thu, 13 Oct 2016 20:23:39 +0800</pubDate><description><![CDATA[1、《Windows程序设计(第5版 珍藏版)》：这是很经典的一本介绍Win32 API编程的书了，基本介绍到了大多数关于Windows程序设计的基本内容。

2、《Windows程序设计-王艳平版》：这本和上一本的区别在于，他讲到了WIN32编程很重要的HOOK技术，与及如何动态在DLL中查找所需函数等，需要一定的数据结构基础和操作系统的基本知识。


3、《Windows网络编程》，]]></description><category></category></item><item><title><![CDATA[使一个非模态对话框随另一个对话框的移动而移动]]></title><link>https://blog.youkuaiyun.com/hapure1/article/details/52790993</link><guid>https://blog.youkuaiyun.com/hapure1/article/details/52790993</guid><author>hapure1</author><pubDate>Tue, 11 Oct 2016 19:38:18 +0800</pubDate><description><![CDATA[主对话框A， 非模态对话框B。 使移动A时， B 随着A 的移动而移动


在A中添加B 的指针变量
mydlg *dlg ;



某个按钮显示代码
       dlg = new mydlg();
dlg->Create(IDD_DIALOG1, this);
dlg->ShowWindow(SW_SHOW| SW_NORMAL);

 A 中添加虚函数


]]></description><category></category></item><item><title><![CDATA[创建非模态对话框]]></title><link>https://blog.youkuaiyun.com/hapure1/article/details/52790598</link><guid>https://blog.youkuaiyun.com/hapure1/article/details/52790598</guid><author>hapure1</author><pubDate>Tue, 11 Oct 2016 18:39:59 +0800</pubDate><description><![CDATA[mydlg *dlg = new mydlg();
dlg->Create(IDD_DIALOG1, this);
dlg->ShowWindow(SW_SHOW| SW_NORMAL);]]></description><category></category></item><item><title><![CDATA[MFC 客户区 模拟标题栏 功能 ，实现窗体拖动]]></title><link>https://blog.youkuaiyun.com/hapure1/article/details/52786425</link><guid>https://blog.youkuaiyun.com/hapure1/article/details/52786425</guid><author>hapure1</author><pubDate>Tue, 11 Oct 2016 11:25:50 +0800</pubDate><description><![CDATA[移动标准窗口是通过用鼠标单击窗口标题条来实现的，但对于没有标题条的窗口，就需要用鼠标单击窗口标题条以外区域来移动窗口。有两种方法可以达到这一目标。

 

方法一：

 
  当窗口确定鼠标位置时，Windows向窗口发送WM_NCHITTEST消息，可以处理该消息，使得只要鼠标在窗口内，Windows便认为鼠标在标题条上。这需要重载CWnd类处理WM_NCHITTEST消息的OnN]]></description><category></category></item><item><title><![CDATA[sprintf 实现 其他类型到字符串的拼接]]></title><link>https://blog.youkuaiyun.com/hapure1/article/details/52778118</link><guid>https://blog.youkuaiyun.com/hapure1/article/details/52778118</guid><author>hapure1</author><pubDate>Mon, 10 Oct 2016 15:24:50 +0800</pubDate><description><![CDATA[字符串格式化命令，主要功能是把格式化的数据写入某个字符串中。sprintf 是个变参函数。





int _tmain(int argc, _TCHAR* argv[])
{  
char *s = new char[20];
char* who = "I";
char* whom = "优快云";
sprintf(s, "%s love %s.", who, whom]]></description><category></category></item><item><title><![CDATA[简单的按钮贴图]]></title><link>https://blog.youkuaiyun.com/hapure1/article/details/52757303</link><guid>https://blog.youkuaiyun.com/hapure1/article/details/52757303</guid><author>hapure1</author><pubDate>Sat, 08 Oct 2016 16:08:51 +0800</pubDate><description><![CDATA[现引入bmp文件ID为IDB_BITMAP 

其中m_ctrlButton为按钮地绑定成员变量

在C*dlg类里添加protected:成员

HICON m_hIcon;

在OnInitDialog()函数中添加如下代码


//C*dlg.cpp
BOOL CDemoDlg::OnInitDialog()
{

//添加BS_BITMAP风格
m_ctrl]]></description><category></category></item><item><title><![CDATA[MFC 改变对话框的背景色]]></title><link>https://blog.youkuaiyun.com/hapure1/article/details/52757235</link><guid>https://blog.youkuaiyun.com/hapure1/article/details/52757235</guid><author>hapure1</author><pubDate>Sat, 08 Oct 2016 15:46:20 +0800</pubDate><description><![CDATA[重载OnCtlColor (CDC* pDC, CWnd* pWnd, UINT nCtlColor)，即WM_CTLCOLOR消息。
具体 步骤如下：
---- ①在CExampleDlgDlg的头文件中，添加一CBrush的成员变量：
class CExampleDlgDlg : public CDialog
{
protected:
CBrush m_brush;
};
--]]></description><category></category></item><item><title><![CDATA[一个简单的用户自定义消息传参的实例  postMessage  和 SendMessage]]></title><link>https://blog.youkuaiyun.com/hapure1/article/details/52700716</link><guid>https://blog.youkuaiyun.com/hapure1/article/details/52700716</guid><author>hapure1</author><pubDate>Thu, 29 Sep 2016 12:01:37 +0800</pubDate><description><![CDATA[.h


        afx_msg void OnBnClickedButton1();
afx_msg LONG OnMessageTest(WPARAM wParam, LPARAM lParam);







.cpp
#define  WM_TEST_MESSAGE WM_USER+2120


BEGIN_MESSAGE_MAP(CtestDlg]]></description><category></category></item><item><title><![CDATA[windows常用消息大全（系统消息、通告消息、用户消息）]]></title><link>https://blog.youkuaiyun.com/hapure1/article/details/52700447</link><guid>https://blog.youkuaiyun.com/hapure1/article/details/52700447</guid><author>hapure1</author><pubDate>Thu, 29 Sep 2016 11:22:48 +0800</pubDate><description><![CDATA[附录A Windows 常用消息大全

表A-1  Windows消息分布






消息范围



说 明





0 ～ WM_USER – 1



系统消息





WM_USER ～ 0x7FFF



自定义窗口类整数消息





WM_APP ～ 0xBFFF



应用程序自定义消息
]]></description><category></category></item></channel></rss>