最近阳光写了一个工具,主要功能是从一个ini的文本文件里面提取几个字段,然后将这个内容写入到一个同名的txt文件里面去。虽然是一个小工具,但是在写的过程中也遇到些比较棘手的问题。这里写下来一方面是为了记录下,另一方面如果有相同问题的朋友可以少折腾下。
1.如果源文件夹名称包含空格比如:“Program Files”那么使用gets函数的时候gets函数会在有空格文件夹的时候加上””,本来是好事情的,但是我在调试有空格文件夹的是发现,遇到有空格的文件夹都会在文件夹的前面加上2个““””这就导致了源文件夹有空格时直接报错。
处理方式其实很简单,我们只要在发现有2个””的时候给他删掉多余的就可以了
代码如下:
|
char newname[szSTR], name[szSTR], line[szSTR], final[szSTR], *s; //将name的值拷贝给newname的时候减去2为也就是"" |
2.第二个问题就是,源文件里面的MAC地址格式是[0005DD2DEF2E]这样的,但是在系统虚拟盘的导入功能中只能识别[00:05:DD:2D:EF:2E或者[00-05-DD-2D-EF-2E]这样的标注MAC地址书写格式,所以在提取的时候还需转换下格式
代码如下:
|
//判断[]里面的内容是否是12位(加上[]是15位),如果是将[]去掉,并且每2位中间加:分隔开 char szMac[32] = {0}; szMac[nCount++] = line[i]; if (2 == nNum) |
3.当我将源文件放到桌面上的时候,发现不可用。每次都失败,调试的时候发现,我的源文件的文件名类型是.ini的,而桌面路径中“C:\Documents and Settings\Administrator\桌面”Administrator居然包含了ini,结果导致程序在这里的时候就截断了
处理方式就是在代码中不要写ini而是写.ini就搞定了。很简单吧!
hi wats your myspace page
gets好像真的是家里一个“”了,以前也遇到过的
Google上面搜索过来的