按行读取文本文件

快到春节假期了,准备在吃喝的业余时间编写一个图书管理软件,用来整理本地硬盘上的各种电子书信息和目录索引。有个需求是从Excel文件导入图书列表,然后爬取亚马逊上的图书信息并添加到本地,从Excel文件读取数据采用以前讨论过的免费工具xdoc2txt

Ted's Chaos - Convert xls to txt
http://blog.libsd.org/272/

先将Excel文件转化为txt文件,然后按行从txt中读取图书信息(书名、出版社、ISBN等)。

- 继续阅读 -

隐藏调用命令行程序时的执行窗口

在实际开发中往往需要调用外部程序来完成某些特定功能,通常有以下几种方式

int system();

UINT WINAPI WinExec();

HINSTANCE ShellExecute();

BOOL WINAPI CreateProcess();

其中最简单的就是system(),只需要把被调用的程序和参数当作字符串传入。最复杂的是CreateProcess(),参数很多,也是MS最为推荐的方式。

- 继续阅读 -

搜索系统中的可用串口

串口是工业领域使用频率非常高的接口,最常见的场景是设备和PC通过串口相连接,从PC给设备发送控制指令,接收设备回传的数据等。因此运行在PC端的软件就需要有列出系统中可用串口的功能,不管是主板自带的串口还是USB转串口线缆,正确安装驱动后都会保存到注册表中,可以简单地通过读注册表来获取可用串口列表。

系统中的可用串口会保存在以下注册表项,如果用户将某个串口禁用,系统会将其从注册表中删除

[HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM]

读取注册表需要用到的API

LONG WINAPI RegOpenKeyEx();
LONG WINAPI RegEnumValue();

- 继续阅读 -

MFC批处理相同类型控件的消息响应函数

MS的MFC框架已经渐渐变成(没饭吃)的代名词,不过还是有很多运行中的老代码是在MFC的基础上写成的。晚上整理以前学习MFC时写的小工程,发现一段在特定场景下可能会很有用的代码。

通常情况下,一个事件消息会有一个对应的响应函数,比如给按钮添加单击事件的处理程序,会生成并绑定一个消息响应函数来处理这个事件。比如现在编写简单的基于MFC Dialog的Demo程序,在对话框中添加一个按钮Test,添加单击事件处理程序OnBnClickedButtonTest(),可以看出CDemoDlg.h和CDemoDlg.cpp文件有以下修改

- 继续阅读 -

用mcelog检测硬件错误

mcelog是现代Linux(kernel version 2.6.30及以上版本)系统上一个检测硬件问题(CPU、内存、IO)的工具包,支持Linux x86和x64。通过其记录的日志,可以及时检测到已经发生但还没有引起系统崩溃的硬件错误。

安装

$sudo aptitude install mcelog

- 继续阅读 -

CSAPP_3rd_Edtion

CSAPP即是传说中的《Computer Systems: A Programmer's Perspective》,中文版译作《深入理解计算机系统》,在原书第三版出版(2015-03-11)一年多后,终于在2016年底出版了中译版。虽然中文版书名有"深入"两字,本书却是CS专业不折不扣的入门级教材。

拿到书的第一感觉是印刷装订很好,双色印刷,纸张非常出色,完全不同于机工有一阵子薄的惨不忍睹的纸张。同第二版相比,第三版的Chap2 3 4 5 7 8 11 12均有较大程度修改。

The biggest overall change from the second edition is that we have switched our presentation from one based on a mix of IA32 and x86-64 to one based exclusively on x86-64. This shift in focus affected the contents of many of the chapters. Here is a summary of the significant changes.

- 继续阅读 -