分类
杂谈

杂谈——能源与社会

石油为什么会成为战略物资?成为美元与之捆绑的对象?
能源利用效率和速度是否决定了人类社会的终极限制?
人类的几次工业革命,是不是伴随着能源利用率/能源利用速度的提升?
是能源利用率/利用速度的提升导致了工业革命吗?
纵观人类发展的历史长河,人类发展的几个关键点:
直立行走——解放双手,更方便的获取食物
用火——有助消化,减少疾病
建立社会制度体系——社会分工,优化人力资源配置
蒸汽机——让机器给人干活
电力——让更多的机器给人干活
信息产业——让机器替人干活
以上的每一步,阁主觉得都能算作能源利用率/利用速度的提升。
阁主认为,纵观人类社会几千年的历史,都没能够脱离金字塔结构的范畴,在金字塔底部的,是直接能源利用率最高的,越往上,逐级递减。人类社会整体构成了一个耗散系统,我们利用各种各样的能源和资源,来维持和提高自己的生活水平。但是如果没有革命性的能源利用率/利用速度的提升,整个人类社会的耗散系统会维持在一定的高度呈现接近稳定的状态,各个阶层的生活水平也会出现固化。
阁主还依稀记得小时候,灶房里的煤油灯昏黄的火苗,一闪一闪。
阁主还记得小时候,家里堆麦秸垛、玉米秆垛、苞谷芯子、豆杆、树叶子、树枝儿。为的就是做饭生火用。《向往的生活》里面,彭彭每天要劈的木柴,我们一般是不用的,只有过年时候才会用。
现在,家里用液化气,和电。阁主在宿舍,吹着空调。听着机箱的嘶吼,码着字儿。
我们比着父辈那一代人的那个年龄,生活条件有了巨大的改善。是单纯努力造就的吗?他们不努力吗?
当前,贸易战已经全面开打。我们应该如何基于已有技术,提高能源利用效率和利用速度?

分类
杂谈

随感

今天小满。
昨天是国际计量日。

2019年世界计量日主题活动在京举行
发布时间:2019-05-20 17:36 信息来源:市场监管总局
国际单位制基本单位新定义在中国正式实施5月20日,在第20个世界计量日到来之际,近500名来自计量领域的中外嘉宾、院士、专家学者代表齐聚在北京的中国科技会堂,参加由市场监管总局、中国计量科学研究院、中国计量测试学会、中国计量协会、中国质量标准出版社传媒有限公司共同举办的2019年“世界计量日”主题活动。

但这些跟我似乎都没啥太大关系~

昨晚看完了龙妈之死,也算死得其所?她致力于建立一个新的世界,打破父死子继,兄终弟及的封建轮回。要武装解放全世界的无产者,打破他们的锁链,这个意识实在是超前了些。我怀疑龙妈是不是偷偷学过马克思的《资本论》,接受过美国共产主义者的洗脑,但是我没有证据。

2DB说了,维斯特洛大陆不允许有这么牛逼的人存在。所以,龙妈必须死。于是,山姆,布兰,三傻,二丫,瓦利斯,提里昂轮番上阵,jon,你不姓史塔克,你姓坦格利安,你叫伊耿,你才是真龙血脉,七国之王~balabala~。然后,always know nothing的jon就在小恶魔的忽悠下对自己的姑姑、爱人、女王下了黑手。实现了自己坑死所有人的心愿~一个敢于牺牲生命来拯救敌人的人,被人三言两语就激起了杀心,一面“you are my queen”,然后将匕首捅进爱人的胸膛。孟德·snow。

5月21日没写完,5-22日更新。

然后,再说中美贸易争端。中美争端不可避免。

阁主觉得,数千年来,人类世界的构成,没有脱离金字塔结构,顶端的依靠低于自身的对其输血。古代统治阶级,依靠的是军队,君权神授来一文一武,对下层进行一级级剥削。而美国,依靠的是坚船利炮和美国主导建立的经济体系以及文化和意识形态输出,对其他国家进行剥削抽脂。

中国的适当发展,美国是乐于见到的;但中国的想达到美国的发展水平,是美国人不愿意见到的。就像地主,家里养一些护院,还需要再养一些长工。没有长工,谁来给地主干活呢?地主老爷嘛,工作是不可能的,这辈子都不可能的。那就只有长工来干喽。长工要干活,就得给他饭吃,不吃饭,没力气,也就不出活。但是呢,又不能让长工吃得太饱,长得太壮实。长工之间,还必须不能是一条心,不然,哪天长工之间串通一气,革了自己的命,抄了自己的家可咋整。来观全球各地的各种国家或者民族或者地区争端,美利坚人民都要热情的插上一脚,扒开大门,挤进去。朝韩、中日、中韩、两岸、南海、中东……,世界警察的身影随处可见,只是为了把一汪水搅浑好坐享其成,渔翁得利。而中国人民,也绝不甘心永远为他人做嫁衣,也都想要自己的生活富足。这几乎是双方不可调和的矛盾。

特朗普要么成为千古一帝,要么遗臭万年。个人感觉,特朗普大搞退群,贸易战,制造业回流,是意识到了美国在这些方面的风险。

再来说能源。阁主觉得,人类的发簪历程,就是利用,转化能源的手段进步的过程。我们用人力、畜力、水力,再到蒸汽、内燃、风力、水力,再到核能、太阳能,无一不是在提高能源的利用率和利用量,减少能源的使用成本。所以,人类最终还是感谢太阳吧。

说回中美贸易争端,经济就是人心。我们对自己有信心,对同胞有信心,才能取得胜利,砸开锁链。对自身的信心,要求我们要能够正视自己的不足,并有信心补足;对同胞的信心,要求我们通力合作,共克时艰。

分类
杂谈

软件推荐——微力同步(verysync)

多年前,金山推出了一款网盘,名叫“金山快盘”,阁主用它来做办公文档的备份和同步,直到2016年八月,金山关闭了快盘的个人服务。令人非常遗憾。

快盘停止服务后,阁主先后尝试了百度云同步盘,seafile,resilio sync等,使用起来各有不便。

对计算机略有了解的阁主,知道把鸡蛋放在一个篮子中的隐患。所以阁主需要对办公文档进行自动备份和同步。当年金山快盘还没关闭的时候,使用金山快盘是很方便的。

百度云同步:客户端长期未更新,同步效果不理想,速度慢。

seafile:需要架设服务器。而且windows服务端不再更新,文件存储为加密块,要使用专用客户端。

resilio sync:同步速度快,阁主也曾长期使用,不足就是互联网传输容易掉速度,而且免费版本不支持多版本备份。

前段时间,阁主购买了一台矿渣(二手小电脑),有四个可抽取硬盘位,非常适合自己DIY一台NAS。于是,阁主装了黑群晖,使用起来还挺方便的。PC机终于可以适当的休息一下了。

然而,当阁主想在NAS中使用Resilio sync来做同步的时候,却遇到了无法同步的问题。

Resilio sync在互联网同步的时候,需要连接中继服务器,但他的服务器都在国外,由于国内的互联网现状,中继服务器基本上处于无法连接的状态。

于是,阁主想起了之前在使用Resilio sync时候了解到的微力同步(Verysync)。经过实验,微力同步能够很好的满足阁主的现在需求。

分类
VBA

分享一些VBA例程

卷 VBA精粹(修订版) 的文件夹 PATH 列表
卷序列号为 7839-3C48
I:.
├─VBA精粹修订版—示例文件
│  ├─第1篇 Excel VBA基础
│  │  └─第1章 VBA基础
│  │          技巧1 录制宏并获取有效的代码_1.xls
│  │          技巧1 录制宏并获取有效的代码_2.xls
│  │          技巧2 执行宏(调用过程)的5种方式_1.xls
│  │          技巧2 执行宏(调用过程)的5种方式_2.xls
│  │          技巧2 执行宏(调用过程)的5种方式_3.xls
│  │          技巧2 执行宏(调用过程)的5种方式_4.xls
│  │          技巧2 执行宏(调用过程)的5种方式_5.xls
│  │          
│  ├─第2篇 操作Excel对象
│  │  ├─第2章 窗口和应用程序
│  │  │      技巧10 隐藏Excel主窗口_1.xls
│  │  │      技巧10 隐藏Excel主窗口_2.xls
│  │  │      技巧11 隐藏工作簿窗口.xls
│  │  │      技巧12 禁止触发相关Excel事件.xls
│  │  │      技巧13 个性化Excel状态栏信息.xls
│  │  │      技巧14 Excel中的“定时器”.xls
│  │  │      技巧15 实现倒计时功能.xls
│  │  │      技巧16 制作精美的数字秒表.xls
│  │  │      技巧17 宏代码运行中的“暂停”.xls
│  │  │      技巧18 防止用户干预宏代码的运行.xls
│  │  │      技巧19 调用变量名称指定的宏过程.xls
│  │  │      技巧20 捕捉特定键或特定的组合键输入.xls
│  │  │      技巧21 模拟手工选定单元格中的部分内容.xls
│  │  │      技巧22 巧妙捕获用户中断.xls
│  │  │      技巧23 更换Excel标题栏图标.zip
│  │  │      技巧24 控制新建工作簿的工作表名称.xls
│  │  │      技巧6 个性化Excel标题栏.xls
│  │  │      技巧7 最大化应用程序窗口.xls
│  │  │      技巧8 真正的全屏显示.xls
│  │  │      技巧9 限定工作簿窗口大小.xls
│  │  │      
│  │  ├─第3章 工作表和工作簿
│  │  │      技巧26 在工作簿中轻松添加新工作表.xls
│  │  │      技巧27 防止更改工作表的名称.xls
│  │  │      技巧28 删除工作表时不显示警告信息.xls
│  │  │      技巧29 批量删除未选中的工作表.xls
│  │  │      技巧30 判断工作表是否为空工作表.xls
│  │  │      技巧31 判断工作簿中是否存在指定名称的工作表.xls
│  │  │      技巧32 按名称排序工作表.xls
│  │  │      技巧33 限制工作表滚动区域.xls
│  │  │      技巧34 操作受保护的工作表.xls
│  │  │      技巧35 不显示双击被保护单元格时出现的提示信息框.xls
│  │  │      技巧36 在指定单元格区域中禁止显示右键菜单.xls
│  │  │      技巧37 只对工作表中的指定区域执行重新计算.xls
│  │  │      技巧38 快速全选工作簿中的所有工作表.xls
│  │  │      技巧39 显示唯一工作表.xls
│  │  │      技巧40 轻松判断是否存在指定名称的工作簿.xls
│  │  │      技巧41 新建仅包含一张工作表的工作簿.xls
│  │  │      技巧42 打开工作簿时不显示更新链接对话框.zip
│  │  │      技巧43 打开指定路径下的所有工作簿文件.xls
│  │  │      技巧44 按特殊要求打开文本文件.zip
│  │  │      技巧45 打开包含VBA代码的工作簿时禁用宏.zip
│  │  │      技巧46 使用宏代码保存工作簿的3种方法.xls
│  │  │      技巧47 保存指定工作表到新的工作簿文件.xls
│  │  │      技巧48 禁止工作簿文件另存.xls
│  │  │      技巧49 关闭工作簿不显示保存对话框.xls
│  │  │      技巧50 控制工作簿只能通过代码关闭.xls
│  │  │      技巧52 定义隐藏的名称.xls
│  │  │      技巧53 带“自杀”功能的工作簿.xls
│  │  │      技巧54 限制工作簿的使用次数.xls
│  │  │      技巧55 禁用宏则关闭工作簿.xls
│  │  │      技巧56 奇偶页打印.xls
│  │  │      技巧57 打印预览时不触发BeforePrint事件.xls
│  │  │      
│  │  ├─第4章 使用Range对象
│  │  │      技巧100 判断是否选中整行.xls
│  │  │      技巧101 工作表中一次插入多行.xls
│  │  │      技巧102 控制插入单元格区域的格式.xls
│  │  │      技巧103 批量删除偶数行.xls
│  │  │      技巧104 剔除空单元格后重排数据.xls
│  │  │      技巧105 超过3个关键字的数据排序.xls
│  │  │      技巧106 按单元格颜色排序.xls
│  │  │      技巧107 利用自定义序列进行排序.xls
│  │  │      技巧108 包含合并单元格的数据列表排序.xls
│  │  │      技巧58 在宏代码中引用单元格区域的5种方法.xls
│  │  │      技巧59 获得指定行(或列)中最后一个非空单元格.xls
│  │  │      技巧61 随心所欲复制单元格区域.xls
│  │  │      技巧62 仅复制数值到另一区域.xls
│  │  │      技巧63 获取两个单元格区域的交叉区域.xls
│  │  │      技巧64 联合多个单元格区域.xls
│  │  │      技巧65 判断一个区域是否包含在另一个区域中.xls
│  │  │      技巧66 设置字符格式.xls
│  │  │      技巧67 以毫米为单位设置单元格行高列宽.xls
│  │  │      技巧68 所见即所得-将数字格式的显示结果作为单元格数值.xls
│  │  │      技巧69 为单元格区域添加边框的快捷方法.xls
│  │  │      技巧70 高亮显示单元格区域.xls
│  │  │      技巧71 动态设置单元格数据有效性序列.xls
│  │  │      技巧72 使用宏代码在单元格中创建公式.xls
│  │  │      技巧73 快速将单元格中的公式转换为数值.xls
│  │  │      技巧74 准确判断单元格公式是否存在错误.xls
│  │  │      技巧75 返回指定列的列标.xls
│  │  │      技巧76 在VBA中使用数组公式.xls
│  │  │      技巧77 判断单元格是否存在批注.xls
│  │  │      技巧78 为单元格添加批注.xls
│  │  │      技巧79 获取、修改和补充批注中的内容.xls
│  │  │      技巧80 个性化批注外观.xls
│  │  │      技巧81 显示图片批注.zip
│  │  │      技巧82 设置批注字体.xls
│  │  │      技巧83 快速判断单元格区域是否存在部分合并单元格.xls
│  │  │      技巧84 合并单元格时连接每个单元格的文本.xls
│  │  │      技巧85 取消合并单元格时在每个单元格中保留内容.xls
│  │  │      技巧86 合并内容相同的连续单元格.xls
│  │  │      技巧87 快速获得区域中最早和最后出现的数值位置.xls
│  │  │      技巧88 高效的按单元格颜色计数自定义函数.xls
│  │  │      技巧90 汇总不同工作表的数据区域.xls
│  │  │      技巧91 汇总多个工作簿的工作表.zip
│  │  │      技巧92 按指定条件自动筛选数据.xls
│  │  │      技巧93 多条件筛选.xls
│  │  │      技巧94 获得符合自动筛选条件的记录条数.xls
│  │  │      技巧95 判断筛选结果是否为空.xls
│  │  │      技巧96 复制自动筛选后的数据区域.xls
│  │  │      技巧97 获得自动筛选条件.xls
│  │  │      技巧98 使用高级筛选获得不重复记录.xls
│  │  │      技巧99 删除空行.xls
│  │  │      
│  │  └─第5章 使用Shape对象
│  │      │  技巧109 在工作表中指定位置添加图形对象.xls
│  │      │  技巧110 为一个图形对象指定不同宏代码.xls
│  │      │  技巧111 快速将多个图形对象进行组合.xls
│  │      │  技巧112 遍历工作表的图形对象.xls
│  │      │  技巧113 将工作表中图形对象另存为图片.xls
│  │      │  技巧115 通过链接显示VBE代码窗口.xls
│  │      │  
│  │      └─技巧114 在员工登记表中自动插入图片
│  │              001.png
│  │              002.png
│  │              003.png
│  │              004.png
│  │              技巧114 在员工登记表中自动插入图片.xls
│  │              
│  ├─第3篇 函数与加载宏的应用
│  │  ├─第6章 函数的应用
│  │  │      技巧116 输入漂亮的图形字符.xls
│  │  │      技巧117 获取字符串出现次数的简单方法.xls
│  │  │      技巧118 计算两个日期的间隔.xls
│  │  │      技巧119 获取指定日期所属月份的最后一天.xls
│  │  │      技巧120 在注册表中记录工作簿的使用情况.xls
│  │  │      技巧121 获取指定数据在数组中的位置.xls
│  │  │      技巧122 获取指定数据在数组中出现的次数.xls
│  │  │      技巧123 获取数组的维数.xls
│  │  │      技巧124 改变动态二维数组的行边界.xls
│  │  │      技巧125 跳过四舍五入的陷阱.xls
│  │  │      技巧126 自动填入匹配的内容.xls
│  │  │      技巧127 汉字和区位码的转换.xls
│  │  │      技巧128 定制自定义函数的信息.xls
│  │  │      
│  │  └─第7章 加载宏应用
│  │          技巧129 隐藏工作簿中的所有工作表.xls
│  │          技巧130 Excel加载宏的加载.zip
│  │          技巧131 动态载入加载宏.zip
│  │          技巧132 定制加载宏信息.zip
│  │          技巧133 定制加载宏菜单和工具栏.zip
│  │          技巧134 定制打开Excel文档时的启动画面.zip
│  │          技巧135 加载宏中工作表的妙用.zip
│  │          
│  ├─第4篇 交互式设计
│  │  ├─第10章 内置对话框
│  │  │      技巧146 活用Excel的内置对话框.xls
│  │  │      技巧147 获取用户选定文件的文件名.xls
│  │  │      技巧148 使用“另存为”对话框备份文件.xls
│  │  │      
│  │  ├─第11章 菜单和工具栏
│  │  │      技巧149 自定义Excel菜单栏_1.xls
│  │  │      技巧149 自定义Excel菜单栏_2.xls
│  │  │      技巧149 自定义Excel菜单栏_3.xls
│  │  │      技巧149 自定义Excel菜单栏_4.xls
│  │  │      技巧149 自定义Excel菜单栏_5.xls
│  │  │      技巧150 创建图表自定义菜单.xls
│  │  │      技巧151 定制右键快捷菜单_1.xls
│  │  │      技巧151 定制右键快捷菜单_2.xls
│  │  │      技巧152 创建自定义工具栏.xls
│  │  │      技巧153 为工具栏按钮添加自定义图标.zip
│  │  │      技巧154 自定义工作簿标题和图标.zip
│  │  │      技巧155 屏蔽工具栏上的“键入需要帮助的问题”下拉框.xls
│  │  │      技巧156 禁用工具栏的自定义功能.xls
│  │  │      
│  │  ├─第12章 控件的应用
│  │  │  │  技巧158 遍历控件的多种方法_1.xls
│  │  │  │  技巧158 遍历控件的多种方法_2.xls
│  │  │  │  技巧158 遍历控件的多种方法_3.xls
│  │  │  │  技巧158 遍历控件的多种方法_4.xls
│  │  │  │  技巧159  限制文本框的输入.xls
│  │  │  │  技巧160 为文本框添加右键快捷菜单.xls
│  │  │  │  技巧161 文本框自动输入.xls
│  │  │  │  技巧162 自动选择文本框内容.xls
│  │  │  │  技巧163 设置文本框的数据格式.xls
│  │  │  │  技巧164 将光标返回文本框中.xls
│  │  │  │  技巧165 在组合框和列表框中添加列表项_1.xls
│  │  │  │  技巧165 在组合框和列表框中添加列表项_2.xls
│  │  │  │  技巧165 在组合框和列表框中添加列表项_3.xls
│  │  │  │  技巧166 设置多列组合框和列表框_1.xls
│  │  │  │  技巧166 设置多列组合框和列表框_2.xls
│  │  │  │  技巧167 输入时逐步提示信息.xls
│  │  │  │  技巧168 去除列表框数据源的重复值和空格.xls
│  │  │  │  技巧169 使用代码在工作表上添加控件.xls
│  │  │  │  技巧170 使控件跟随活动单元格.xls
│  │  │  │  技巧171 使用Listview控件显示数据.xls
│  │  │  │  技巧172 使用TreeView控件显示层次.xls
│  │  │  │  技巧173 使用spreadsheet控件显示数据.xls
│  │  │  │  技巧176 解决微调框最小变动量小于1的问题.xls
│  │  │  │  技巧177 使标签控件文字垂直居中对齐.xls
│  │  │  │  技巧178 制作进度条_1.xls
│  │  │  │  技巧178 制作进度条_2.xls
│  │  │  │  技巧179 不打印工作表中的控件.xls
│  │  │  │  技巧180 自动注册新控件.zip
│  │  │  │  
│  │  │  ├─技巧174 使用AniGif控件显示GIF动画图片
│  │  │  │      VBAniGIF.ocx
│  │  │  │      gif001.gif
│  │  │  │      技巧174 使用AniGif控件显示GIF动画图片.xls
│  │  │  │      
│  │  │  └─技巧175 使用ShockwaveFlash控件播放Flash文件
│  │  │          Flash9d.ocx
│  │  │          face.swf
│  │  │          技巧175 使用ShockwaveFlash控件播放Flash文件.xls
│  │  │          
│  │  ├─第13章 用户窗体的应用
│  │  │      技巧181 调用非模式用户窗体.xls
│  │  │      技巧182 在用户窗体标题栏上添加图标.xls
│  │  │      技巧183 制作欢迎界面窗体.xls
│  │  │      技巧184 在用户窗体标题栏上添加最大化和最小化按钮.xls
│  │  │      技巧185 禁用用户窗体标题栏的关闭按钮.xls
│  │  │      技巧186 在用户窗体框架中使用滚动条.xls
│  │  │      技巧187 制作年月选择窗体.xls
│  │  │      技巧188 调整用户窗体的显示位置.xls
│  │  │      技巧189 在用户窗体上显示图表.xls
│  │  │      技巧190 在用户窗体运行时拖动控件.xls
│  │  │      技巧191 使用自定义颜色设置用户窗体颜色.xls
│  │  │      
│  │  ├─第8章 使用消息框
│  │  │      技巧136 显示简单的信息提示.xls
│  │  │      技巧137 定制个性化的消息框.xls
│  │  │      技巧138 获得消息框的返回值.xls
│  │  │      技巧139 在消息框中排版.xls
│  │  │      技巧140 对齐消息框中显示的信息.xls
│  │  │      技巧141 自动关闭的消息框.xls
│  │  │      
│  │  └─第9章 简单的数据录入
│  │          技巧142 为用户提供简单的输入框.xls
│  │          技巧143 防止用户在输入框中输入错误信息.xls
│  │          技巧144 使用对话框获取区域地址.xls
│  │          技巧145 打造更安全的密码输入界面.xls
│  │          
│  ├─第5篇 文件系统操作
│  │  ├─第14章 目录和文件操作
│  │  │      技巧192 设定“打开”对话框的默认路径和文件名.xls
│  │  │      技巧193 判断文件或文件夹是否存在.xls
│  │  │      技巧194 顺序搜索文件.xls
│  │  │      技巧195 获取常用的系统路径.xls
│  │  │      技巧196 灵活处理指定的文件.xls
│  │  │      技巧197 操作文件夹.xls
│  │  │      
│  │  └─第15章 文件的输入输出
│  │      │  技巧198 读取未打开的Excel文件内容.xls
│  │      │  技巧199 判断文件是否处于锁定状态.xls
│  │      │  技巧200 读写文本文件.xls
│  │      │  技巧201 读写二进制文件.xls
│  │      │  技巧202 使用FileSystemObject对象.xls
│  │      │  
│  │      └─test
│  │          │  ansitry.txt
│  │          │  test.txt
│  │          │  test.xls
│  │          │  test1.txt
│  │          │  test4.txt
│  │          │  thewasteland1.txt
│  │          │  
│  │          └─test
│  │                  test.txt
│  │                  
│  ├─第6篇 数据库应用
│  │  └─第16章 ADO应用
│  │      │  TestFile.xls
│  │      │  学校管理.mdb
│  │      │  技巧204 动态创建Access 数据库文件.xls
│  │      │  技巧205 获取数据库所有表的名称.xls
│  │      │  技巧206 动态建立数据表.xls
│  │      │  技巧207 添加主键.xls
│  │      │  技巧208 向表中添加字段.xls
│  │      │  技巧209 向表中增加并更新记录.xls
│  │      │  技巧210 批量删除数据库中的记录.xls
│  │      │  技巧211 批量修改数据库中的记录.xls
│  │      │  技巧212 在数据库中存储相片.xls
│  │      │  技巧213 制作带相片的学生证.xls
│  │      │  技巧214 从多重表中提取信息.xls
│  │      │  技巧215 Excel与Access数据库互动.xls
│  │      │  技巧216 在数据库中创建视图.xls
│  │      │  技巧217 动态创建链接表.xls
│  │      │  技巧218 使用无表记录集分析数据.xls
│  │      │  技巧219 记录集的实体化操作.xls
│  │      │  技巧220 查询文本文件中的数据.zip
│  │      │  技巧221 轻松导入VFP数据表.zip
│  │      │  技巧222 有用的交叉表查询.xls
│  │      │  技巧223 不打开工作簿获取工作表的名称.xls
│  │      │  技巧224 在数组中存储查询结果.xls
│  │      │  技巧225 使用内、外连接实现字段配对.xls
│  │      │  技巧226 复杂的多类型表内连接关联查询.xls
│  │      │  技巧227 生成各种统计报表.xls
│  │      │  
│  │      ├─pic
│  │      │      100001.gif
│  │      │      100002.gif
│  │      │      100003.gif
│  │      │      100004.gif
│  │      │      100005.gif
│  │      │      100006.gif
│  │      │      100007.gif
│  │      │      100008.gif
│  │      │      100009.gif
│  │      │      100010.gif
│  │      │      100011.gif
│  │      │      100012.gif
│  │      │      100015.gif
│  │      │      100016.gif
│  │      │      100019.gif
│  │      │      100020.gif
│  │      │      100021.gif
│  │      │      100022.gif
│  │      │      100023.gif
│  │      │      100024.gif
│  │      │      100025.gif
│  │      │      100026.gif
│  │      │      100027.gif
│  │      │      100028.gif
│  │      │      100029.gif
│  │      │      100030.gif
│  │      │      100031.gif
│  │      │      100032.gif
│  │      │      100033.gif
│  │      │      100034.gif
│  │      │      100035.gif
│  │      │      100036.gif
│  │      │      100037.gif
│  │      │      100038.gif
│  │      │      100039.gif
│  │      │      100040.gif
│  │      │      100041.gif
│  │      │      100042.gif
│  │      │      100043.gif
│  │      │      100044.gif
│  │      │      100045.gif
│  │      │      100046.gif
│  │      │      100047.gif
│  │      │      100048.gif
│  │      │      100049.gif
│  │      │      100050.gif
│  │      │      100051.gif
│  │      │      100052.gif
│  │      │      100053.gif
│  │      │      100054.gif
│  │      │      100055.gif
│  │      │      100056.gif
│  │      │      100057.gif
│  │      │      100058.gif
│  │      │      100059.gif
│  │      │      100060.gif
│  │      │      100061.gif
│  │      │      100062.gif
│  │      │      100065.gif
│  │      │      100066.gif
│  │      │      100067.gif
│  │      │      100068.gif
│  │      │      100069.gif
│  │      │      100070.gif
│  │      │      100071.gif
│  │      │      100072.gif
│  │      │      100073.gif
│  │      │      100074.gif
│  │      │      100075.gif
│  │      │      100076.gif
│  │      │      100077.gif
│  │      │      100078.gif
│  │      │      100079.gif
│  │      │      100080.gif
│  │      │      100081.gif
│  │      │      100082.gif
│  │      │      100083.gif
│  │      │      100084.gif
│  │      │      100085.gif
│  │      │      100086.gif
│  │      │      100087.gif
│  │      │      100088.gif
│  │      │      100089.gif
│  │      │      100091.gif
│  │      │      100092.gif
│  │      │      100093.gif
│  │      │      100094.gif
│  │      │      100095.gif
│  │      │      100096.gif
│  │      │      100097.gif
│  │      │      100098.gif
│  │      │      100099.gif
│  │      │      100100.gif
│  │      │      100101.gif
│  │      │      100102.gif
│  │      │      100103.gif
│  │      │      100104.gif
│  │      │      100105.gif
│  │      │      100106.gif
│  │      │      100107.gif
│  │      │      100108.gif
│  │      │      100109.gif
│  │      │      100110.gif
│  │      │      
│  │      ├─考试成绩
│  │      │      考试成绩表.xls
│  │      │      
│  │      └─链接表
│  │              奖学金.dbf
│  │              奖学金.xls
│  │              奖金.mdb
│  │              捐款.txt
│  │              
│  ├─第7篇 高级编程
│  │  ├─第17章 Excel与Internet
│  │  │      技巧228 创建和打开超链接.xls
│  │  │      技巧229 映射网络驱动器.xls
│  │  │      技巧230 获取外网和本地IP地址.xls
│  │  │      技巧231 使用Lotus Notes发送Email.xls
│  │  │      技巧232 了解HTML及DOM对象.zip
│  │  │      技巧233 制作简易的网页浏览器.xls
│  │  │      技巧234 自动登录到网页.xls
│  │  │      技巧235 网页查询及下载.xls
│  │  │      技巧236 使用QueryTable下载网页数据.xls
│  │  │      
│  │  ├─第18章 Excel操作XML
│  │  │      技巧237 快速创建XML文件.xls
│  │  │      技巧238 转换MDB文件为XML文件.zip
│  │  │      技巧239 定制自己的Excel RSS阅读器.xls
│  │  │      
│  │  ├─第19章 操作其他Office应用程序
│  │  │      技巧240 透视前期绑定与后期绑定技术.txt
│  │  │      技巧241 将电子表格数据通过Outlook邮件发送.txt
│  │  │      技巧242 将电子表格数据输出到Word新文档.xls
│  │  │      技巧243 将电子表格数据输出到PowerPoint演示稿.xls
│  │  │      
│  │  ├─第20章 使用类模块
│  │  │      技巧244 子类化实现控件数组.xls
│  │  │      技巧245 捕获包含公式的单元格的值改变.xls
│  │  │      技巧246 设置类的缺省成员.xls
│  │  │      技巧247 实现可列举的类成员.xls
│  │  │      技巧248 实现用户窗体菜单.xls
│  │  │      技巧249 构建多态类.xls
│  │  │      
│  │  └─第21章 VBE相关操作
│  │          技巧250 判断指定工作簿中是否包含宏代码.zip
│  │          技巧251 快速删除指定工作簿中的宏代码.zip
│  │          技巧252 快速列出模块中的所有过程.xls
│  │          技巧253 自动添加模块和过程.zip
│  │          技巧254 建立事件过程的简易方法.xls
│  │          技巧255 过程更新策略.zip
│  │          技巧256 自动添加用户窗体及控件.xls
│  │          技巧257 巧妙的VBE陷阱.xls
│  │          技巧258 检索和设置工程引用.xls
│  │          技巧259 自动设置信任对VBE的访问.xls
│  │          技巧260 轻松打开受密码保护的.xls
│  │          技巧261 利用保护项目的两把锁.zip
│  │          
│  └─第8篇 代码调试及优化
│      ├─第22章 代码调试
│      │      技巧263 使用Debug对象.xls
│      │      技巧264 使用立即窗口.xls
│      │      技巧265 使用本地窗口.xls
│      │      技巧266 使用监视窗口.xls
│      │      
│      ├─第23章 错误处理
│      │      技巧267 捕捉错误.xls
│      │      技巧268 处理错误.xls
│      │      技巧269 退出错误处理过程.xls
│      │      技巧270 生成错误.xls
│      │      技巧271 错误处理的层次.xls
│      │      
│      └─第24章 代码优化
│              技巧273 使用工作表函数或方法.xls
│              技巧275 避免使用Variant类型.xls
│              技巧276 减少dot的数量.xls
│              技巧278 让代码专注执行.xls
│              
├─【赠】《Excel 图表实战技巧精粹》部分实例视频
│      C01_玩转图表数据系列.wmv
│      C02_高级饼图制作.wmv
│      C03_大事记图与云梯图.wmv
│      
├─【赠】《Excel 数据处理与分析实战技巧精粹》部分实例视频
│      A02_电子表格数据安全维护.wmv
│      A11_规划求解计算旅行商问题.wmv
│      
├─【赠】《Excel函数与公式实战技巧精粹》部分实例视频
│      B01_Excel公式通用技巧.wmv
│      B02_Excel函数查询技术之一.wmv
│      B03_Excel函数查询技术之二.wmv
│      B04_Excel函数的趣味应用之一.wmv
│      B05_Excel函数的趣味应用之二.wmv
│      B06_Excel宏表函数的应用.wmv
│      B07_活用Excel文本函数.wmv
│      B08_活用Excel日期函数.wmv
│      B09_活用Excel透视表函数之一.wmv
│      B10_活用Excel透视表函数之二.wmv
│      B11_运用函数DIY公文管理系统.wmv
│      
├─【赠】免费软件-Excel易用宝
│      EZTESetup.exe
│      关于Excel易用宝.txt
│      
└─本书部分实例视频
        D01_ExcelVBA代码调试技巧.wmv
        D02_使用VBA灵活控制Shape.wmv
        D03_制作带自杀功能的工作簿.wmv
        D04_制作并应用Excel加载宏.wmv
        D05_在ExcelVBA中的ADO应用技巧之一.wmv
        D06_在ExcelVBA中的ADO应用技巧之二.wmv
        D07_在VBA中使用类创建控件数组.wmv
        D08_输入时逐步提示信息的实现.wmv
        

 

分类
计算机知识日志

计算机应用——未经处理的异常 char

阁主在尝试抄书上的代码时,遇到一个错误,困扰了好久,现在写出来,方便有同样境遇的同志们。

阁主用的是visual studio 2017 ,书上的例子是throw一个字符串,然后catch住并回显。但是在阁主码出来实验的时候出了问题。

代码如下:

#include "pch.h"
#include <iostream>
int main()
{
	try {
		throw "这是一个异常";
	}
	catch (char *str) {
		std::cout <<str << std::endl;
	}
}//VS2017编译后运行报错:有未经处理的异常: Microsoft C++ 异常: char,位于内存位置0x0000xxxx处。

经过多次测试及搜索,终于找到问题的解决办法。可行代码如下:

#include "pch.h"
#include <iostream>
int main()
{
	try {
		throw "这是一个异常.";
	}
	catch (const char *str) {
		std::cout << str << std::endl;
	}
}

或者

#include "pch.h"
#include <iostream>
int main()
{
	try {
		char str[] = "这是一个异常.";
		throw str;
	}
	catch (char *str) {
		std::cout <<str << std::endl;
	}
}

 

分类
excel知识日志

Excel应用——生成二维码

现在,二维码应用的越来越普遍了。很多时候,我们都需要生成二维码。而在Office家族中,我们可以通过VBA里的barcodectrl控件来生成条码和二维码。但是遇到中文字符的情况下,barcodectrl控件生成的效果就不理想了。

经过搜索,发现是因为excel中使用的编码解码后不支持中文,所以,阁主转向了zxing的怀抱。zxing是一个基于java语言的开源二维码/条码生成和识别库。已经有大牛将其封装为.net可用的形式zxing.net 版。阁主基于zxing.net库编写了一个excel生成二维码的加载项。

Imports Microsoft.Office.Tools.Ribbon
Imports ZXing.BarcodeFormat
Imports ZXing.QrCode.Internal.QRCode
Imports System.Drawing
Imports System.ComponentModel
Imports ZXing.QrCode.Internal
Public Class Ribbon1
    Private Sub Ribbon1_Load(ByVal sender As System.Object, ByVal e As RibbonUIEventArgs) Handles MyBase.Load
        DropDown1.SelectedItemIndex = My.Settings.Level
        EditBox1.Text = My.Settings.size
        For i As Integer = 0 To 40
            Dim rf As RibbonFactory = Me.Factory
            Dim tmpitem As RibbonDropDownItem = rf.CreateRibbonDropDownItem
            tmpitem.Label = CStr(i)
            ComboBox1.Items.Add(tmpitem)
        Next
        ComboBox1.Text = My.Settings.version
        CheckBox1.Checked = My.Settings.changeSize
        If CheckBox1.Checked Then
            EditBox1.Enabled = True
        Else
            EditBox1.Enabled = False
        End If
    End Sub
    Private Sub Button1_Click(sender As Object, e As RibbonControlEventArgs) Handles Button1.Click
        Dim app As Global.Microsoft.Office.Interop.Excel.Application
        Dim hitset As IDictionary(Of ZXing.EncodeHintType, Object) = New Dictionary(Of ZXing.EncodeHintType, Object)
        hitset.Add(ZXing.EncodeHintType.CHARACTER_SET, "utf-8")
        hitset.Add(ZXing.EncodeHintType.DISABLE_ECI, getDisableEci)
        hitset.Add(ZXing.EncodeHintType.ERROR_CORRECTION, getErrorCurrentLevel)
        hitset.Add(key:=ZXing.EncodeHintType.MARGIN, value:=0)
        If ComboBox1.Text <> "0" Then hitset.Add(key:=ZXing.EncodeHintType.QR_VERSION, value:=CInt(ComboBox1.Text))
        app = Globals.ThisAddIn.Application
        Dim img As New ZXing.QrCode.QRCodeWriter

        Dim bitmat As ZXing.Common.BitMatrix
        Dim bw As New ZXing.BarcodeWriter
        Dim bitmap1 As Bitmap
        Dim str As String
        Try
            Dim frm As New Form1
            frm.ShowDialog()
            str = frm.TextBox1.Text
            If String.IsNullOrEmpty(str) Then
                app = Nothing
                img = Nothing
                bw = Nothing
                frm.Dispose()
                Exit Sub
            End If
        Catch ex As Exception
            app = Nothing
            img = Nothing
            bw = Nothing
            Exit Sub
        End Try

        Dim s2 As Integer()
        Try
            bitmat = img.encode(str, format:=ZXing.BarcodeFormat.QR_CODE, width:=My.Settings.size, height:=My.Settings.size, hints:=hitset)
            Dim actsh As Global.Microsoft.Office.Interop.Excel.Worksheet = Globals.ThisAddIn.Application.ActiveSheet
            s2 = bitmat.getEnclosingRectangle

            Dim btmp As New Bitmap(s2(2) + 4, s2(3) + 4)
            For i As Integer = -2 To s2(2) + 1
                For j As Integer = -2 To s2(3) + 1
                    If i >= 0 And i < s2(2) And j >= 0 And j < s2(3) Then
                        If bitmat.Item(i + s2(0), j + s2(1)) Then
                            btmp.SetPixel(i + 2, j + 2, color:=Color.Black)
                        Else
                            btmp.SetPixel(i + 2, j + 2, color:=Color.White)
                        End If
                    Else
                        Try
                            btmp.SetPixel(i + 2, j + 2, color:=Color.White)
                        Catch exx As Exception
                            MsgBox(exx.Message & i & j)
                        End Try
                    End If
                Next
            Next
#If DEBUG Then

#End If
            'bitmap1 = bw.Write(bitmat)
            If My.Settings.changeSize Then
                bitmap1 = New Bitmap(btmp, Math.Max(My.Settings.size, s2(2) + 4), Math.Max(My.Settings.size, s2(3)) + 4)
            Else
                bitmap1 = btmp
            End If
            System.Windows.Forms.Clipboard.SetDataObject(bitmap1, True)
            actsh.Paste(app.ActiveCell, bitmap1)
            app = Nothing
            img = Nothing
            bw = Nothing
        Catch ex As Exception
            MsgBox(ex.Message)
            app = Nothing
            img = Nothing
            bw = Nothing
        End Try


    End Sub

    Private Sub DropDown1_SelectionChanged(sender As Object, e As RibbonControlEventArgs) Handles DropDown1.SelectionChanged
        My.Settings.Level = DropDown1.SelectedItemIndex
        My.Settings.Save()
#If DEBUG Then
        My.Settings.Reload()
        MsgBox(My.Settings.Level)
#End If
    End Sub

    Private Sub DropDown1_ItemsLoading(sender As Object, e As RibbonControlEventArgs) Handles DropDown1.ItemsLoading

    End Sub

    Private Function getDisableEci() As Boolean
        getDisableEci = My.Settings.disable_eci
    End Function
    Private Function getErrorCurrentLevel() As ZXing.QrCode.Internal.ErrorCorrectionLevel
        Select Case My.Settings.Level
            Case 0
                getErrorCurrentLevel = ErrorCorrectionLevel.L
            Case 1
                getErrorCurrentLevel = ErrorCorrectionLevel.M
            Case 2
                getErrorCurrentLevel = ErrorCorrectionLevel.Q
            Case 3
                getErrorCurrentLevel = ErrorCorrectionLevel.H
            Case Else
                getErrorCurrentLevel = ErrorCorrectionLevel.H
        End Select
    End Function

    Private Sub EditBox1_TextChanged(sender As Object, e As RibbonControlEventArgs) Handles EditBox1.TextChanged

        Dim i As Integer, chr As Char(), j As String
        j = ""

        chr = EditBox1.Text.ToCharArray()
        For i = LBound(chr) To UBound(chr)
            If IsNumeric(chr(i)) Then
                j = j & chr(i)
            End If
        Next
        If String.IsNullOrEmpty(j) Then
            EditBox1.Text = My.Settings.size
        Else
            EditBox1.Text = Math.Max(Math.Min(1024, CInt(j)), 21)
            My.Settings.size = Math.Max(Math.Min(1024, CInt(j)), 21)
            My.Settings.Save()
        End If
    End Sub

    Private Sub ComboBox1_TextChanged(sender As Object, e As RibbonControlEventArgs) Handles ComboBox1.TextChanged
        If IsNumeric(ComboBox1.Text) Then
            If CInt(ComboBox1.Text) >= 1 And CInt(ComboBox1.Text) <= 40 Then
                ComboBox1.Text = CInt(ComboBox1.Text)
            Else
                ComboBox1.Text = My.Settings.version
            End If
        End If
    End Sub

    Private Sub CheckBox1_Click(sender As Object, e As RibbonControlEventArgs) Handles CheckBox1.Click
        If CheckBox1.Checked Then
            EditBox1.Enabled = True
        Else
            EditBox1.Enabled = False
        End If
        My.Settings.changeSize = CheckBox1.Checked
        My.Settings.Save()
    End Sub
End Class
Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

        TextBox1.Text = Globals.ThisAddIn.Application.ActiveCell.Text
    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        MyBase.Hide()
    End Sub
End Class

链接: https://pan.baidu.com/s/1TzaWjwKlHAjYEDKOcgS-fw 提取码: q2xu

本站小水管:excelQRcode_1.0.0.5

分类
杂谈

《断魂枪》 老舍

“生命是闹着玩,事事显出如此;从前我这么想过,现在我懂得了。”

沙子龙的镳局已改成客栈。

东方的大梦没法子不醒了。炮声压下去马来与印度野林中的虎啸。半醒的人们,揉着眼,祷告着祖先与神灵;不大会儿,失去了国土、自由与主权。门外立着不同面色的人,枪口还热着。他们的长矛毒弩,花蛇斑彩的厚盾,都有什么用呢;连祖先与祖先所信的神明全不灵了啊!龙旗的中国也不再神秘,有了火车呀,穿坟过墓破坏着风水。枣红色多穗的镳旗,绿鲨皮鞘的钢刀,响着串铃的口马,江湖上的智慧与黑话,义气与声名,连沙子龙,他的武艺、事业,都梦似的成昨夜的。今天是火车、快枪,通商与恐怖。听说,有人还要杀下皇帝的头呢!

这是走镳已没有饭吃,而国术还没被革命党与教育家提倡起来的时候。

谁不晓得沙子龙是短瘦、利落、硬棒,两眼明得象霜夜的大星?可是,现在他身上放了肉。镳局改了客栈,他自己在后小院占着三间北房,大枪立在墙角,院子里有几只楼鸽。只是在夜间,他把小院的门关好,熟习熟习他的“五虎断魂枪”。这条枪与这套枪,二十年的工夫,在西北一带,给他创出来:“神枪沙子龙”五个字,没遇见过敌手。现在,这条枪与这套枪不会再替他增光显胜了;只是摸摸这凉、滑、硬而发颤的杆子,使他心中少难过一些而已。只有在夜间独自拿起枪来,才能相信自己还是“神枪沙”。在白天,他不大谈武艺与往事;他的世界已被狂风吹了走。

在他手下创练起来的少年们还时常来找他。他们大多数是没落子的,都有点武艺,可是没地方去用。有的在庙会上去卖艺:踢两趟腿,练套家伙,翻几个跟头,附带着卖点大力丸,混个三吊两吊的。有的实在闲不起了,去弄筐果子,或挑些毛豆角,赶早儿在街上论斤吆喝出去。那时候,米贱肉贱,肯卖膀子力气本来可以混个肚儿圆;他们可是不成:肚量既大,而且得吃口管事儿的;干饽饽辣饼子咽不下去。况且他们还时常去走会:五虎棍,开路,太狮少狮……虽然算不了什么——比起走镳来——可是到底有个机会活动活动,露露脸。是的,走会捧场是买脸的事,他们打扮的得象个样儿,至少得有条青洋绉裤子,新漂白细市布的小褂,和一双鱼鳞洒鞋——顶好是青缎子抓地虎靴子。他们是神枪沙子龙的徒弟——虽然沙子龙并不承认——得到处露脸,走会得赔上俩钱,说不定还得打场架。没钱,上沙老师那里去求。沙老师不含糊,多少不拘,不让他们空着手儿走。可是,为打架或献技去讨教一个招数,或是请给说个“对子”——什么空手夺刀,或虎头钩进枪——沙老师有时说句笑话,马虎过去:“教什么?拿开水浇吧!”有时直接把他们赶出去。他们不大明白沙老师是怎么了,心中也有点不乐意。

可是,他们到处为沙老师吹腾,一来是愿意使人知道他们的武艺有真传授,受过高人的指教;二来是为激动沙老师:万一有人不服气而找上老师来,老师难道还不露一两手真的么?所以:沙老师一拳就砸倒了个牛!沙老师一脚把人踢到房上去,并没使多大的劲!他们谁也没见过这种事,但是说着说着,他们相信这是真的了,有年月,有地方,千真万确,敢起誓!

王三胜——沙子龙的大伙计——在土地庙拉开了场子,摆好了家伙。抹了一鼻子茶叶末色的鼻烟,他抡了几下竹节钢鞭,把场子打大一些。放下鞭,没向四围作揖,叉着腰念了两句:“脚踢天下好汉,拳打五路英雄!”向四围扫了一眼:“乡亲们,王三胜不是卖艺的;玩艺儿会几套,西北路上走过镳,会过绿林中的朋友。现在闲着没事,拉个场子陪诸位玩玩。有爱练的尽管下来,王三胜以武会友,有赏脸的,我陪着。神枪沙子龙是我的师傅;玩艺地道!诸位,有愿下来的没有?”他看着,准知道没人敢下来,他的话硬,可是那条钢鞭更硬,十八斤重。

王三胜,大个子,一脸横肉,努着对大黑眼珠,看着四围。大家不出声。他脱了小褂,紧了紧深月白色的“腰里硬”,把肚子杀进去。给手心一口唾沫,抄起大刀来:

“诸位,王三胜先练趟瞧瞧。不白练,练完了,带着的扔几个;没钱,给喊个好,助助威。这儿没生意口。好,上眼!”

大刀靠了身,眼珠努出多高,脸上绷紧,胸脯子鼓出,象两块老桦木根子。一跺脚,刀横起,大红缨子在肩前摆动。削砍劈拨,蹲越闪转,手起风生,忽忽直响。忽然刀在右手心上旋转,身弯下去,四围鸦雀无声,只有缨铃轻叫。刀顺过来,猛的一个“跺泥”,身子直挺,比众人高着一头,黑塔似的。收了势:“诸位!”一手持刀,一手叉腰,看着四围。稀稀的扔下几个铜钱,他点点头。“诸位!”

他等着,等着,地上依旧是那几个亮而削薄的铜钱,外层的人偷偷散去。他咽了口气:“没人懂!”他低声的说,可是大家全听见了。

“有功夫!”西北角上一个黄胡子老头儿答了话。

“啊?”王三胜好似没听明白。

“我说:你——有——功——夫!”老头子的语气很不得人心。

放下大刀,王三胜随着大家的头往西北看。谁也没看重这个老人:小干巴个儿,披着件粗蓝布大衫,脸上窝窝瘪瘪,眼陷进去很深,嘴上几根细黄胡,肩上扛着条小黄草辫子,有筷子那么细,而绝对不象筷子那么直顺。王三胜可是看出这老家伙有功夫,脑门亮,眼睛亮——眼眶虽深,眼珠可黑得象两口小井,深深的闪着黑光。王三胜不怕:他看得出别人有功夫没有,可更相信自己的本事,他是沙子龙手下的大将。

“下来玩玩,大叔!”王三胜说得很得体。

点点头,老头儿往里走。这一走,四外全笑了。他的胳臂不大动;左脚往前迈,右脚随着拉上来,一步步的往前拉扯,身子整着①,象是患过瘫痪病。蹭到场中,把大衫扔在地上,一点没理会四围怎样笑他。

“神枪沙子龙的徒弟,你说?好,让你使枪吧;我呢?”老头子非常的干脆,很象久想动手。

人们全回来了,邻场耍狗熊的无论怎么敲锣也不中用了。

“三截棍进枪吧?”王三胜要看老头子一手,三截棍不是随便就拿得起来的家伙。

老头子又点点头,拾起家伙来。

王三胜努着眼,抖着枪,脸上十分难看。

老头子的黑眼珠更深更小了,象两个香火头,随着面前的枪尖儿转,王三胜忽然觉得不舒服,那俩黑眼珠似乎要把枪尖吸进去!四外已围得风雨不透,大家都觉出老头子确是有威。为躲那对眼睛,王三胜耍了个枪花。老头子的黄胡子一动:“请!”王三胜一扣枪,向前躬步,枪尖奔了老头子的喉头去,枪缨打了一个红旋。老人的身子忽然活展了,将身微偏,让过枪尖,前把一挂,后把撩王三胜的手。拍,拍,两响,王三胜的枪撒了手。场外叫了好。王三胜连脸带胸口全紫了,抄起枪来;一个花子,连枪带人滚了过来,枪尖奔了老人的中部。老头子的眼亮得发着黑光;腿轻轻一屈,下把掩裆,上把打着刚要抽回的枪杆;拍,枪又落在地上。

场外又是一片彩声。王三胜流了汗,不再去拾枪,努着眼,木在那里。老头子扔下家伙,拾起大衫,还是拉拉着腿,可是走得很快了。大衫搭在臂上,他过来拍了王三胜一下:

“还得练哪,伙计!”

“别走!”王三胜擦着汗:“你不离,姓王的服了!可有一样,你敢会会沙老师?”

“就是为会他才来的!”老头子的干巴脸上皱起点来,似乎是笑呢。“走;收了吧;晚饭我请!”

王三胜把兵器拢在一处,寄放在变戏法二麻子那里,陪着老头子往庙外走。后面跟着不少人,他把他们骂散了。

“你老贵姓?”他问。

“姓孙哪,”老头子的话与人一样,都那么干巴。“爱练;久想会会沙子龙”

沙子龙不把你打扁了!王三胜心里说。他脚底下加了劲,可是没把孙老头落下。他看出来,老头子的腿是老走着查拳门中的连跳步;交起手来,必定很快。但是,无论他怎么快,沙子龙是没对手的。准知道孙老头要吃亏,他心中痛快了些,放慢了些脚步。

“孙大叔贵处?”

“河间的,小地方。”孙老者也和气了些:“月棍年刀一辈子枪,不容易见功夫!说真的,你那两手就不坏!”

王三胜头上的汗又回来了,没言语。

到了客栈,他心中直跳,唯恐沙老师不在家,他急于报仇。他知道老师不爱管这种事,师弟们已碰过不少回钉子,可是他相信这回必定行,他是大伙计,不比那些毛孩子;再说,人家在庙会上点名叫阵,沙老师还能丢这个脸么?

“三胜,”沙子龙正在床上看着本《封神榜》,“有事吗?”三胜的脸又紫了,嘴唇动着,说不出话来。

沙子龙坐起来,“怎么了,三胜?”

“栽了跟头!”

只打了个不甚长的哈欠,沙老师没别的表示。

王三胜心中不平,但是不敢发作;他得激动老师:“姓孙的一个老头儿,门外等着老师呢;把我的枪,枪,打掉了两次!”他知道“枪”字在老师心中有多大分量。没等吩咐,他慌忙跑出去。

客人进来,沙子龙在外间屋等着呢。彼此拱手坐下,他叫三胜去泡茶。三胜希望两个老人立刻交了手,可是不能不沏茶去。孙老者没话讲,用深藏着的眼睛打量沙子龙。沙很客气:

“要是三胜得罪了你,不用理他,年纪还轻。”

孙老者有些失望,可也看出沙子龙的精明。他不知怎样好了,不能拿一个人的精明断定他的武艺。“我来领教领教枪法!”他不由地说出来。

沙子龙没接碴儿。王三胜提着茶壶走进来——急于看二人动手,他没管水开了没有,就沏在壶中。

“三胜,”沙子龙拿起个茶碗来,“去找小顺们去,天汇见,陪孙老者吃饭。”

“什么!”王三胜的眼珠几乎掉出来。看了看沙老师的脸,他敢怒而不敢言地说了声“是啦!”走出去,撅着大嘴。

“教徒弟不易!”孙老者说。

“我没收过徒弟。走吧,这个水不开!茶馆去喝,喝饿了就吃。”沙子龙从桌子上拿起缎子褡裢,一头装着鼻烟壶,一头装着点钱,挂在腰带上。

“不,我还不饿!”孙老者很坚决,两个“不”字把小辫从肩上抡到后边去。

“说会子话儿。”

“我来为领教领教枪法。”

“功夫早搁下了,”沙子龙指着身上,“已经放了肉!”

“这么办也行,”孙老者深深的看了沙老师一眼:“不比武,教给我那趟五虎断魂枪。”

“五虎断魂枪?”沙子龙笑了:“早忘干净了!早忘干净了!告诉你,在我这儿住几天,咱们各处逛逛,临走,多少送点盘缠。”

“我不逛,也用不着钱,我来学艺!”孙老者立起来,“我练趟给你看看,看够得上学艺不够!”一屈腰已到了院中,把楼鸽都吓飞起去。拉开架子,他打了趟查拳:腿快,手飘洒,一个飞脚起去,小辫儿飘在空中,象从天上落下来一个风筝;快之中,每个架子都摆得稳、准,利落;来回六趟,把院子满都打到,走得圆,接得紧,身子在一处,而精神贯串到四面八方。抱拳收势,身儿缩紧,好似满院乱飞的燕子忽然归了巢。

“好!好!”沙子龙在台阶上点着头喊。

“教给我那趟枪!”孙老者抱了抱拳。

沙子龙下了台阶,也抱着拳:“孙老者,说真的吧;那条枪和那套枪都跟我入棺材,一齐入棺材!”

“不传?”

“不传!”

孙老者的胡子嘴动了半天,没说出什么来。到屋里抄起蓝布大衫,拉拉着腿:“打搅了,再会!”

“吃过饭走!”沙子龙说。

孙老者没言语。

沙子龙把客人送到小门,然后回到屋中,对着墙角立着的大枪点了点头。

他独自上了天汇,怕是王三胜们在那里等着。他们都没有去。

王三胜和小顺们都不敢再到土地庙去卖艺,大家谁也不再为沙子龙吹胜;反之,他们说沙子龙栽了跟头,不敢和个老头儿动手;那个老头子一脚能踢死个牛。不要说王三胜输给他,沙子龙也不是他的对手。不过呢,王三胜到底和老头子见了个高低,而沙子龙连句硬话也没敢说。“神枪沙子龙”慢慢似乎被人们忘了。

夜静人稀,沙子龙关好了小门,一气把六十四枪刺下来;而后,拄着枪,望着天上的群星,想起当年在野店荒林的威风。叹一口气,用手指慢慢摸着凉滑的枪身,又微微一笑,“不传!不传!”

分类
excel知识日志

Excel应用——2018河南高考志愿填报

2015年,阁主的亲戚高考。高考完毕,亲人想让我给一些志愿填报的参考意见。但阁主毕竟不是教育行业,所了解的也仅仅是个别学校。如何相对全面的了解各个学校的招生录取情况,来为填报志愿做一个相对较好的选择,成为了摆在面前的一道题。

在收集资料过程中,阁主发现虽然每年高考成绩的分数线各不相同,但由于考生数量和招生计划的比例一般不会发生突变。而河南省由估分报志愿改为查分报志愿之后,高考估分偏差引起的录取不确定性被消除。因此可以用提档线人数占总考生人数比值来估计高校的热门程度,和录取的可能性。于是,阁主就制作了一份包含有3年历史数据的高考分数段分析表,期望能够给亲戚的志愿选择上提供一些参考。

自2015年起,阁主每年都会更新表格中数据,并作出分析图,发布到网络上,希望能够帮助到需要的弟弟妹妹们。

2018年河南理科高考分数段分析及志愿填报参考

分类
杂谈

杂谈——《题字》

本文节选自熊德兰所著《海外归人》。

这幅画使我想起我们家后面小院子里的那棵桃树, 每年春末盛开, 但是只要一刮风下雨,花瓣就纷纷落地。赵老师黑板上的这幅画给了我灵感,我不愿意再照葫芦画瓢了。我在一页图画纸上画了好几枝残花,雨从一边打过来,打得花枝向另一边倒,地上铺了花瓣,空中有不少花瓣纷纷飘下。
我很得意地将这张画给坐在我旁边的霸崽子看。我们两人是不打不成交,现在关系比较融洽。他要我给他画一张同样的,我便在他的本子里再画了一张给他。没有想到,他在这张画的一旁写下了他自己的大名:万有福。
我问他:“粒又不是你自已画的,为什么要写你的名字?”
“这叫‘题字’,懂吗?我家里挂的画,上面都有我爸爸的题字。”
我家虽然是个学堂,但是墙上只挂了公公写的字,一张画也没有挂。我倒想起我家对门那间放了大棺材的堂屋里有几张画,上面也有宇。霸恩子到底是个大官的儿子,见识比我广――我这才知道,画上还要有“题宇”。于是,我就在自己生平第一幅作品上写下:
“夜来风雨声,花落知多少”。
在霸息子的启发下,我不断地在自已的画本上“题字”,题字又反过来促使我不断画图画。 我当时会写的字,只限于某些五言唐诗中用的宇,因此。只有第一张作品我是按照画来题字的,这以后我只好按照某些五言绝句来绘画,否则我无法题字。这阶段赵老师还没有教我们画人物,我的画也只能限于写景的内容,如:“阳月南飞雁”、“白日依山尽”、“枫叶落纷纷”、“ 明月来相照”等――我只能用极简单而幼稚的笔法,来描绘高雅的风花雪月。
若干年后,我碰巧在一本旧画报里,又看到了我的第一幅作品,但是上面没有我的“题字”。这张画下面有个说明:“以上富有想象力的绘画,题为《落花》,由五岁夭才儿童画家万有福创作。万有福小朋友乃江西省教育厅厅长之公子也。”
霸崽子的祖父给他取名取得好,他可真是万分有福气!

前段时间聊天,阁主回忆起小时候,家里没有什么玩具,也没有电视。阁主就把这大量的闲暇时光埋进了母亲的书里。迄今尤记得几本书,几篇文章。其中,阁主对《求》这本熊德兰所著的自传体小说(?)和琼瑶的《问斜阳》这两本书尤为喜爱。

一晃眼,一二十年过去了,阁主也从懵懂少年,逐渐迈向中年大叔,怀旧的心思总时不时蹦跶出来。《问斜阳》总归是名家作品,找起来比较方便,《求》相对来说,名气略逊,费了阁主老大的心思。前些年,阁主上下索《求》而不得,偶从网上得知《求》和其续书修订为《海外归人》,既得此信,却亦难得再观。今日兴致再起,往国图网站详查,终于才从阿帕比上找到,得以再观。

分类
杂谈

杂谈——鹿

阁主之前有幸见识到了一群小鹿,感觉有趣,即录制了上述两段小视频,以飨诸位。

视频中的鹿均属于野生,所不同之处,在于视频2的鹿是在公园之中,经常有人投喂;视频1中鹿则食于山林,不喜人近。