删除Excel的重复行的解决方案

今天有个在工商银行工作的哥们,打电话告诉我,他有一个Excel文件,有一些行重复了,需要把那些重复的行删除掉。虽然我不是很喜欢干OA的活,但是哥们的忙还是要帮的,接!
发给我的是一个csv文件,里面有45000多条记录,大概的样子是这样:

BILLNO BUNDLE ACCEPTBANK HOLDER BUYTYPE AMOUNT
AA0100003443 2.00E+11 87647 87649 2 10000000
AA0100003444 2.00E+11 87647 87649 2 10000000

有些记录的BILLNO重复了,重复的据说大概有几百条,所有BILLNO重复的记录只要留一条就可以了。其余的要删除掉。

看着这个记录这么整齐,我最先想到的就是关系型数据库(没办法,谁让J2EE,UML,VC,DB是我们的饭碗课程呢?),心里面已经开始默默念叨SQL语句了,“万幸”我的机器上还装了个Access 2003,虽然不咋地,也凑合着用吧 …

more ...

闲逛收获:Terrarium和免费asp.net空间

习惯于在网上闲逛,偶尔还能有些小收获。今天有两个比较值得一提的东西。
第一个是MS开发的一个程序员游戏Terrarium,这个玩意其实早就知道了,跟java的robocode(不知道是不是叫这个名字)差不多,不过一个是机器人(?)一个是动植物。都是Coding来操纵动植物的行为,然后Coding的越好,动物就越凶猛越强。今天终于把Terrarium的客户端下载到机器上,装了一下,然后又用vs.net写了一个动物一个植物(都是sample code),还真把这个东西跑起来了。看着那几个蜘蛛有模有样的吃草,还真有点感觉。
第二个收获,居然发现了一个免费的asp.net空间(::URL::/
* File : src\makeimg\makeimg.c
* Purpose : This tools is used to make a runable image on bochs virtual disk
* Date : 2004.8.13
*
/

#include
#include
#include

void die(char * str)
{
fprintf(stderr,“%s\n”,str);
exit(1);
}

void usage(void)
{
die(“Usage: build bootsect setup system [rootdev] [> image]”);
}

int main …

more ...

SSCLI下的可执行文件格式分析(完结篇)

CustomAttribute表描述了该Assembly中的自定义属性,包含要实例化一个自定义属性所需要的所有信息。这个表有以下域构成,Parent是个HasCustomAttribute类型的Coded Token,Type是个CustomAttributeType类型的Coded Token;Value是个指向#Blob流的索引。一个CustomAttribute有6个Byte。
本例中有一个CustomAttribute,2E 00/0B 00/39 00。

StandAloneSig表只有一个指向#Blob流的Signature。2个Byte。对大多数使用signature的情况,如Field.Signature, Method.Signature等等Signature是指向保存在Blob流的一个signature数据块。而对于一些特殊情况,Blob中保存的Signature数据可能不被任意一个结构元素所引用,例如IL指令集中calli指令(间接函数调用指令,使用函数指针而非指向方法的Token调用,往往用于调用Native方法)需要一个Signature描述其调用的函数指针的类型。此时就需要一个StandAloneSig表项,指向这个孤儿signature。
本例中有两个StandAloneSig,值为:2A 00 34 00。

PropertyMap表是一个映射表,负责把PropertyDef中定义的属性映射到其归属的TypeDef表定义的类型中,这样就可以将属性的归属信息从类型和属性的定义中完全抽象出来。它有如下字段:2个Byte的指向TypeDef索引的Parent;2个Byte的指向Property表的 PropertyList;因此一个PropertyMap有4个Byte。
本例中有一个PropertyMap,值为 …

more ...

SSCLI下的可执行文件格式分析(1)

SSCLI下的可执行文件格式分析(Draft)

记得MSDN上某篇介绍Windows PE文件格式的超级经典权威文章开篇说道“一个操作系统的可执行文件格式在很多方面是这个系统的一面镜子。虽然学习一个可执行文件格式通常不是一个程序员的首要任务,但是你可以从这其中学到大量的知识。”最近在研究SSCLI的源代码,有些无从下手,抱着“柿子先拣软的捏”的想法,想先从.NET平台下的可执行文件入手,然后可以更进一步到Class Loader,到内存中的Object Layout,到美国人开玩笑说的JIT Happens,到Garbage Collection……
参考的东西有Google,Shared Sourced CLI Essential,Inside Microsoft.NET IL Assembler,SSCLI Source Code……
使用的工具是用来调试代码的Windbg,用来查看代码交叉链接的Source Insight,用来看二进制的UltraEdit,用来进制转换和算加减法的Windows自带计算器,用来临时记录东西的Notepad,用来字数统计和打字的Word,用来编写测试代码的Visual Studio.net 2003,用来喝水的杯子……

首先写个简单的C#程序,Hello …

more ...

瓶颈==基础知识

前几天跟同学其去了一趟电脑图书市场。打算弄几本“砖头”来啃啃。却发现自己慢慢的慢慢的落入了这样一种境地。
以前――确切的说是刚刚转入软件学院――逛计算机图书市场,总是觉得有很多书可以看,鉴于手中的Money,不得不舍鱼而取熊掌。《xx技术内幕》《深入浅出xxx》《xx编程思想》《xx本质论》《xx Primer》都是非常值得一读的图书。但是现在两年过去了,或许是浮躁了,或许真的是学到了一点东西。渐渐的,觉得编程类的图书已经不太能够吸引我的兴趣了。虽然当时因为囊中羞涩而没有买《C++ Programming Language》,但是现在已经没有兴趣再去买它了。其它的,例如《C#技术内幕》《ADO.net Internal》等等,已经都不太有兴趣去看了。理由呢,其一:.net的原理已经摸了个大概,ado.net的数据访问模式也基本了解了,真的要用的时候,可以快速的查找资料而获得答案。或许同学跟我也有一样的感触。有个同学说“《深入浅出MFC》这种书是给比较初级的程序员看的……”
那么除了编程类书籍。还能看些什么呢 …

more ...

软件领域的学习路线

今天,虽然是平安夜。但是周围没有一点节日的气氛。一个下午在软件学院看新来的开发板,晚上老师们去酒店聚餐了,却让我留在这离上海三十公里的地方坚守岗位,整个校区都空荡荡的,好冷……
晚上,有个上进的小弟弟给我发邮件,反正也没事,就长篇大论一下了,骗完了人还把邮件贴到这里,在起一个吓人的名字,当一篇blog…

ASK:

我开门见山了

我一直想本科阶段学mfc ATL STL C# 再看Java VB ASP就行了

但今天看来想法天真

我想这远远不够,远远不够完整

我想使我的学习的体系能够足够的大足够的深,至少是在本科阶段是这样的

不然就算考上研究生也没后劲,到时候死都不知道是怎么死的,死无葬身之地

然而我不想死,想活着,好好的活着,更想让别人看着我而寻死,哈哈

我需要一个构架,完整一点的,够大沟深(有点像棺材),

到时候就算自己活不成,也能有个棺材,比死无葬身之地要好!

不怕你笑话,这里的老师水平有限(我找了8个),没人能给我一个完整一点的知识框架

谈到编程方面,我告诉他我的计划 …

more ...

撞上了“程序员成长最危险的时刻”

今天在别人的blog上看到一篇文章,说程序员最危险的时刻,是这么说的:

其实程序员成长最危险的时刻不是在你什么都不懂的时候,而是在你懂了一些的时候。开始的时候,你觉得什么都不懂,于是你天天看书,通宵编程。后来你懂了c了,算法数据结构操作系统在学校也学了,用VC 写程序时你边看MSDN边用MFC,觉得感觉还不错;你用Delphi甚至做了一个个像模像样数据库的项目了。至于COM,你懂了一点点,说起来头头是到,虽然没用过。标准C++嘛,你在大学学过基本的C++,工作时用VC,什么继承,虚函数,const,引用,模板你也都用过了。你也听说过设计模式,用过最简单的单件模式什么的,虽然还有很多你不懂的。有的时候你觉得操作系统很有意思,你还写过些多线程的控制系统的东西。可是现在你反倒觉得你什么都不会了,看这别人用VC 写的大系统,你觉得很写的很好,可是你不知道怎样达到那样的水平。你觉得你有很多的东西都不懂,可是你不知道怎么学得更好,有的时候你对编程序都快没激情了,于是你也跟我一样到了程序员成长最危险的时刻。有些朋友觉得已经可以混到饭吃了,就不再努力,这样就危险了!

不看则已,一看吓了一身冷汗,似乎每条说的都是我……作为一个半路出家上了“挨踢 …

more ...

我的2004年

今天看到12月的《程序员》杂志。年底了,请了蔡学镛等好多业界名人谈论自己的2004年。是啊,年底了,也该总结一下了。

2004年是我跨入软件领域的第三个年头,总体来说,我的2004年还是充满变数与激情的。在技术上,人生上和很多问题的看法上或许即将过去的一年都是一个转折点。

1月:我继续在微软全球技术支持中心实习。工作趋于稳定,主要在负责中国的新闻组。

2月:2月20日,我结束了在微软八个月的实习,重新回到学校实习。2月23日,我就收到了周文钧老师的邮件,然后就当上了C++的助教。

3月:看着周围的同学慢慢的找工作。对着我自己来说,助教占据了我日常生活的大多数时间,回答问题,看学生的作业,这段时间认识了不少03的同学。3月中旬给03的同学做过一次Presentation,讲了些C++和微软的技术。这个月里,有一个人在我不知不觉中,慢慢地的走入了我的生活。

4月:4月5号是个难忘的日子。自从那天起,发觉我的人生,与以前相比,真的变了。思想上,经历了一个或许能影响一生的抉择。技术上,也是从那天开始,我第一次接触到了Windows CE …

more ...

闲话:从Blog搬家到EAI

近来,提供blog服务的网站越来越多,从国际的MSN space,google,wallop到过内的CSDN,TOM等等,让人目不暇接,似乎Blog已经成了继电子邮箱之后的又一个赚钱的利器。引得无数大小网站竟折腰,还有些网站不但提供日志功能,而且还增加了图片上传,音乐上传等等好多功能。blog的盛行仿佛又重现了本世纪初的免费邮箱和免费个人主页。

可以做的选择多了,有些人(偶是典型)不免心痒手痒。就像当年的免费email,几乎稍微是个知名的免费邮箱,偶都有一个,当然用不用就是另当别论。但是blog跟电子邮箱有一个最大的区别。邮件是以封为单位的,如果不是什么大不了的邮件,看完了就可以顺手delete,所以一个人拥有十个八个的email很正常。但是blog就不一样了。blog这个东西强调积累,每一封日志都记录作者某个时候的想法,心情,观点……一篇Blog的意义不大,即使再精彩,也顶多算BBS里面的一“好贴”。如果把一个时间段例如几个月,甚至几年的日志连续起来,就可以看到一个人的心情,生活的轨迹。写blog跟体育锻炼差不多,积累才有意义。

好,问题就来了。可以落脚选择的blog多了,不免会有朝秦暮楚找三幕四的想法。像偶自己,最初把家安在了现在的blogcn,图的是它海纳百川的气度,还有可以摆开CSDN上程序员之间相互的无理取闹 …

more ...