- 博客(30)
- 收藏
- 关注
转载 在工作表左侧中添加TreeView控件
开发环境基于VSTO:visual studio 2010,VB .Net,excel 2007,文档级别的定制程序。需求是在sheet的左侧停靠System.Windows.Forms.TreeView控件,实现类似资源浏览器的效果,另外,tree节点使用自定义的图标,支持复选框。首先准备好树节点的图标,使用visual studio 2010自带的图标可以省去很多麻烦(在安装目录\C...
2016-04-14 23:34:00
458
转载 thread_local变量
thread_local变量是C++ 11新引入的一种存储类型。它会影响变量的存储周期(Storage duration),C++中有4种存储周期:automaticstaticdynamicthread有且只有thread_local关键字修饰的变量具有线程周期(thread duration),这些变量(或者说对象)在线程开始的时候被生成(allocated),在线程结束的时候被销...
2016-01-12 00:00:00
707
转载 ANSI与Unicode的转换
最近遇到中文路径访问的问题,又重新学习了一遍ansi与Unicode的知识,博文记录下来以供后续参考。ANSI 编码 ANSI是一种字符代码,为使计算机支持更多语 言,通常使用0x80~0xFF 范围的2 个字节来表示1 个字符。不同的国家和地区制定了不同的标准,由此产生了GB2312、GBK、GB18030、Big5、Shift_JIS 等各自的编码标准。 这些使用多个字节来代...
2015-12-27 22:51:00
452
转载 Excel开发学习笔记:查找与创建worksheet
开发环境基于VSTO,具体配置:visual studio 2010,VB .Net,excel 2007,文档级别的定制程序。如题,我在ThisWorkbook.vb中添加了一个public函数来完成查找功能。 入参:待查找的sheet名称 返回:如果存在则返回worksheet对象,如果不存在则返回nothingPublicFunctionWorksheetExist(...
2015-12-09 00:05:00
247
转载 Python中调用设置环境变量的bat
工作中用到一个python脚本,自动化运行某目录下的多个vc工程代码。 编译工程代码的命令如下,直接运行会失败,系统找不到devenv,我们需要添加devenv.exe所在的目录到环境变量中。os.system('devenv'+name+'.sln/project'+name+'.vcproj/Rebuild"debug|win32"/Out'+name+...
2015-10-27 23:19:00
447
转载 VC散列表
vc下有2个版本的散列表类,hash_map和unordered_map,hash_map位于stdext命名空间,unordered_map在std命名空间(vs2008及其之后的版本可用),官方推荐使用unordered_map,前者是一个旧的非标版本。2者使用起来很类似,但构造函数有明显不同。 在使用int之类的值类型作为key的情况下,后几个参数可以使用默认值,无需提供has...
2015-08-09 15:10:00
94
转载 Excel开发学习笔记:根据工作表worksheet内容控制按钮的状态
开发环境基于VSTO,具体配置:visual studio 2010,VB .Net,excel 2007,文档级别的定制程序。 在Ribbon工具栏中有2个功能按钮,它们是否可用取决于worksheet(sheet1)中的内容。 button1需要在sheet1中存在某个关键字(比如“默认勾选”)的时候可用,在sheet1初始化和内容变更事件中添加代码,下面的Ribbon1.Butt...
2015-08-02 18:49:00
155
转载 混搭下的C与C++内存操作
源自最近遇到一个的问题,先介绍一下背景。项目中混用了C与C++编程范式,鉴于项目成员背景不一,每个模块的负责人可以自行2选1。同时为了提高效率,C范式的模块被允许使用STL库的部分容器(其实也就仅仅大量使用了vector而已)。开发环境是visual studio 2005 wiht sp1。那么问题来了,在部分模块中,纯C结构体和包含C++类的结构体共存,但它们的内存布局是不同的,所需...
2015-04-19 12:53:00
115
转载 求n对括号的合法组合
一道经典的面试题,求n对括号有多少种合法的组合。抽象为2n个位置,每个位置可以有2种取值,总共有2^2n个组合,附加约束条件是要符合括号的语法,用来剪枝。 括号语法的合法性条件:初始化左括号和右括号的剩余数量为n,在给2n个位置赋值的过程中,需要保持剩余的'('小于等于剩余的')'遍历的过程中,每个位置先尝试左括号,再尝试右括号 。//l表示剩余的左括号数量,r表示剩余的右括号数量,第三...
2015-04-15 18:15:00
630
转载 Excel开发学习笔记:文件选择控件、查找匹配项、单元格格式及数据有效性
一个自用的基于excel的小工具。开发环境基于VSTO,具体配置:visual studio 2010,VB .Net,excel 2007,文档级别的定制程序。 PrivateOpenFileDialog1AsNewOpenFileDialogPrivateSubtest()OpenFileDialog1.Filter="cfgfile|*.sr...
2015-03-15 23:14:00
157
转载 根据标识符分割字符串
常常遇到根据某个标识符分割字符串,并将分割的结果保存到字符串数组中。遇到过以下几种需求:分隔符是一个字符集和,以便处理不同的输入格式,比如用tab或逗号分隔的输入处理2个分隔符之间的内容为空的情况,2种需求,输出空字符串或者忽略掉处理字符串末尾的回车符,2种需求,忽略或删除c语言的strtok函数支持分割字符串,它在遇到分隔符之间的内容为空的时候会忽略掉空元素,往前推进返回下个非空的字符...
2015-03-15 22:51:00
329
转载 求无向连通图的割点
求一个连通图的割点,割点的定义是,如果除去此节点和与其相关的边,图不再连通。 连通图的定义:如果图中任意两点都是连通的,那么图被称作连通图。如果此图是有向图,则称为强连通图(注意:需要双向都有路径) 割点:在无向连通图中,删除一个顶点v及其相连的边后,原图从一个连通分量变成了两个或多个连通分量,则称顶点v为割点,同时也称关节点 (Articulation Point)。多连通图没有割点...
2015-02-11 23:14:00
446
转载 Excel开发学习笔记:读取xml文件及csv文件
遇到一个数据处理自动化的问题,于是打算开发一个基于excel的小工具。在业余时间一边自学一边实践,抽空把一些知识写下来以备今后参考,因为走的是盲人摸象的野路子,幼稚与错误请多包涵。开发环境基于VSTO,具体配置:visual studio 2010,VB .Net,excel 2007,文档级别的定制程序。读取xml文件 有好多种读取xml的方式,xmlDOM比较常见,我使用了另外一...
2015-02-07 22:40:00
170
转载 Excel开发学习笔记:VB.net的一些杂项
遇到一个数据处理自动化的问题,于是打算开发一个基于excel的小工具。在业余时间一边自学一边实践,抽空把一些知识写下来以备今后参考,因为走的是盲人摸象的野路子,幼稚与错误请多包涵。开发环境基于VSTO,具体配置:visual studio 2010,VB .Net,excel 2007,文档级别的定制程序。 动态数组vb自带的简单数组增删元素和改变大小不方便,.net提供的List...
2015-01-25 22:54:00
135
转载 Excel开发学习笔记:界面交互与控件的布局
遇到一个数据处理自动化的问题,于是打算开发一个基于excel的小工具。在业余时间一边自学一边实践,抽空把一些知识写下来以备今后参考,因为走的是盲人摸象的野路子,幼稚与错误请多包涵。开发环境基于VSTO,具体配置:visual studio 2010,VB .Net,excel 2007,文档级别的定制程序。 除了业务逻辑之外,比较耗时耗力的就是人机交互了。在编写excel定制程序...
2015-01-20 22:59:00
526
转载 Excel开发学习笔记:新建文档级的excel解决方案
工作中遇到一个数据处理自动化的问题,于是打算开发一个基于excel的小工具。在业余时间一边自学一边实践,最近终于完成了雏形。抽空把一些知识写下来以备今后参考,因为走的是盲人摸象的野路子,幼稚与错误请多包涵。开发环境基于VSTO(没有用VBA),具体配置:visual studio 2010,VB .Net,excel 2007,文档级别的定制程序。Excel的开发方式有很多,比如VBA...
2015-01-14 22:58:00
140
转载 Excel开发学习笔记:发布VSTO下的Excel开发项目
遇到一个数据处理自动化的问题,于是打算开发一个基于excel的小工具。在业余时间一边自学一边实践,抽空把一些知识写下来以备今后参考,因为走的是盲人摸象的野路子,幼稚与错误请多包涵。开发环境基于VSTO,具体配置:visual studio 2010,VB .Net,excel 2007,文档级别的定制程序。 因为是自用的小工具,对部署的要求很低,有个安装文件即可,也不要求兼容老版本的o...
2015-01-13 22:47:00
188
转载 字符串的最长连接
看到的一道面试题:有n个长为m+1的字符串,如果某个字符串的最后m个字符与某个字符串的前m个字符匹配,则两个字符串可以联接,问这n个字符串最多可以连成一个多长的字符串,如果出现循环,则返回错误。根据网友的思路,可以用拓扑排序来求解,抽空实现了一次,大致如下。首先转化为图论问题,每个字符串抽象为1个节点,如果2个字符串能联接则表示一条有向边。问题转换为找到最长的一条路...
2015-01-04 23:51:00
239
转载 求和最大的子矩阵
/*求一个矩阵中最大的二维矩阵(元素和最大).如:120342345111530中最大的是:4553*/#include<limits>//假设寻找的子矩阵是大小为n的方阵,不限于二维。//先对行求和,得到矩阵sumMat[row-n+1][col],里面每个元素都对应了n行的和//然后对sumMat的每行求最大的子序列...
2014-12-31 00:09:00
181
转载 删除单链表中的重复元素
很老的一道面试题,经典解法是用哈希表求解。如果不允许申请额外的存储空间,我能想到的就是用归并排序来搞,在归并的比较过程中删除重复元素,但成立的前提是允许改变原始链表元素的顺序。用链表做归并排序有个方便的地方,就是不用像处理普通数组那样额外申请空间, 正好满足问题的附加条件。不方便的地方在于把规模n的问题分解为n/2子问题的时候,没法直接求得中点。简单粗暴的做法是分解问题时先遍历到中点,...
2014-12-23 23:47:00
195
转载 很老的一道面试题,要求下排输出的每个数都是先前上排输入数在下排出现的次数...
根据上排给出十个数,在其下排填出对应的十个数要求下排每个数都是先前上排那十个数在下排出现的次数。上排的十个数如下:【0,1,2,3,4,5,6,7,8,9】举一个例子,数值: 0,1,2,3,4,5,6,7,8,9分配: 6,2,1,0,0,0,1,0,0,00 在下排出现了 6 次,1 在下排出现了 2 次,2 在下排出现了 1 次,3 在下排出现了 0 次......
2014-09-29 00:11:00
170
转载 笔记:整数计算溢出
读《深入理解计算机系统》 第二章 信息的表示与处理检查2个无符号数相加是否溢出1 bool checkUAddOverflow(unsigned int x,unsigned int y)2 {3 return x+y < x;4 }检查2个有符号数相加是否溢出 1 bool checkAddOverflow...
2013-08-30 20:42:00
119
转载 笔记:无符号数与有符号数
读《深入理解计算机系统》第二章 信息的表示与处理无符号数的编码就是简单的二进制编码,有符号数采用补码。补码:0001 = -23*0 + 22*0 + 21*0 + 20*1 = 11111 = -23*1 + 22*1 + 21*1 + 20*1 = -1最高有效位(符号位)的权重是-2w-1,其中w是二进制长度补码的非:数字x的补码的非就是其加法逆元...
2013-08-10 16:40:00
161
转载 全排列的递归与非递归实现
问题:输入一个序列(元素无重复),输出其全排列一般采用经典的递归解法,后来想将其改造为非递归代码,思考很久后觉得并不好写,手工模拟递归栈的行为容易出错。然后上网搜索了一下众网友的非递归代码,发现很多人的非递归代码是各种全新的求解算法,而不是相同算法的非递归实现,和我想要的不一样。递归解法:假设输入序列[0,1,2,3],将其分解为4个子问题0+[1,2,3],1+[0...
2013-07-30 20:34:00
257
转载 笔记:位运算
读《深入理解计算机系统》第二章 信息的表示与处理利用异或实现变量交换(习题2.10),使用以下函数时需注意的地方是不要让2个入参指向同一个地址,会返回0(习题2.11);1 void swap(int *x,int *y)2 {3 *y = *x^*y;4 *x = *x^*y;5 *y = *x^*y;6 } 转载于:h...
2013-07-20 16:48:00
105
转载 笔记:大小端与移位
读《深入理解计算机系统》第二章 信息的表示与处理字节序:大多数intel兼容机采用小端字节序:低字节存放在存储器的低地址,注意是以字节为单位。12345(十进制)低地址--------->高地址0x0000303939 30 00 00 00 网络协议采用大端字节序:高字节存放...
2013-06-20 20:30:00
377
转载 笔记:C语言数据类型在32位与64位机器上的字节数
读《深入理解计算机系统》第二章 信息的表示与处理32位与64位的典型值,单位字节声明32位机器 64位机器char11short int22int44long int48(4?)long long int88char*48f...
2013-06-17 20:33:00
118
转载 笔记:10进制转换16进制
读《深入理解计算机系统》第二章 信息的表示与处理10进制转换16进制十进制x转换16进制,可以反复用16除x,x=q*16+r,得到的余数r作为16进制的低位,商q作为新的x,反复迭代直到商为0.314156 = 19634*16+12 (C)19634 = 1227*16+2(2)1227 = 76*16+11 (B)76 ...
2013-06-17 19:51:00
153
转载 笔记:并发与并行
读《深入理解计算机系统》第一章并发concurrent:有多个活动在时间上重叠,称为并发,并不一定要求活动同时执行,可以是交替执行的。并行parallelism:多个活动同时执行。并行的3个层次:1、线程级并行单处理器系统线程只能通过交替执行模拟并行,并发。此外还有超线程,是允许一个cpu执行多个控制流的技术。cpu的某些硬件有多份,比如程序计数器和寄存器,而...
2013-06-16 19:55:00
93
转载 笔记:进程
读《深入理解计算机系统》第一章进程是操作系统对一个正在运行的程序的抽象,一个系统可以同时运行多个进程,而每个进程都好像在独占地使用硬件。是计算机最重要和成功的概念之一。一个进程由一个或多个称为线程的执行单元组成,运行在进程的上下文中(操作系统跟踪进程所需的所有状态信息,比如寄存器及主存的内容),线程共享同样的代码和全局数据,有独立的堆栈和程序计数器。转载于:https:/...
2013-06-16 17:06:00
91
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人