显示下一条  |  关闭

my god

Every moment of my life!

 
 
 
 
 
 

CSV文件读取利器-CSVReader (C#)

2011-8-3 15:21:41 阅读626 评论0 32011/08 Aug3

在c#中读取csv文件可以使用OLEDB当作数据库来读取,或者一行行的读取,然后使用正则表达式进行解析。使用oledb一般情况下也比较方便,但是效率不是很好,特别是csv文件很大的情况下。如果一行行的读取,对数据字段进行拆分是个难题,一般情况下使用英文逗号就可以了,但是很多情况下字段的内容也都包含了逗号,还有可能一条数据要占用多行。今天推荐一个别人封装好的csv读取类库:CSVReader,可以快速方便的处理csv数据。

类库作者开发这个程序经历了很多年了,最近还在更新中。点击下面的地址到官方网站:

http://www.codeproject.com/KB/database/CsvReader.aspx

这个程序的最大特点是速度快,按照作者的说法比使用OLEDB和正则表达式的方法大约快15倍,而且内存使用较少。举一个例子,在CPU P4 3.0 GHz, 内存1024 MB的电脑上,一个45M的csv文件,145个字段,5万条记录,用时大约1.5秒,每秒钟处理大约30M数据。当然肯定不是每次都这么快,影响的因素比较多,咱也不要较真。

这个程序还有一个特点是可以处理多行数据,前提是数据必须引用起来。

这个程序本质上也是按行读取的,在读取的时候会为当前记录保存一个字段缓存。作者还提供了一个类CachedCsvReader会将csv文件内容全部缓存到内存,然后从缓存中读取。

作者  | 2011-8-3 15:21:41 | 阅读(626) |评论(0) | 阅读全文>>

英文版vs2010打包出错问题解决方法

2011-7-23 14:31:18 阅读134 评论0 232011/07 July23

打包时会出现:The install location for prerequisites has not been set to 'component vendor's web site' and the file 'DotNetFX40Client\dotNetFx40LP_Client_x86_x64zh-Hans.exe' in item 'Microsoft .NET Framework 4 Client Profile (x86 and x64)' can not be located on disk. See Help for more information.

出现此错误的原因:打包项目Localization默认设置为Chinese (Simplified) ,故出现上述错误。

解决方法:将Localization设置为English (United States)。这状态下是不可以使用中文的,如快捷方式,打包项目名称等。使用中文虽然可以编译通过但在安装时有中文的地方会出现乱码!

笔者在 XP + VS2010(Ultimate)英文版环境下验证成功通过。

作者  | 2011-7-23 14:31:18 | 阅读(134) |评论(0) | 阅读全文>>

C#中国身份证验证方法

2011-6-10 11:24:35 阅读271 评论0 102011/06 June10

原文地址:http://www.msproject.cn/article/IDCardVerify.aspx

 

C#中国身份证验证,包括省份验证和校验码验证,符合GB11643-1999标准...

理论部分:

15位身份证号码=6位地区代码+6位生日+3位编号

18位身份证号码=6位地区代码+8位生日+3位编号+1位检验码

  各省市地区国家代码前两位代码是:     

  北京   11   吉林   22     福建   35   广东   44   云南   53   天津   12   黑龙江   23     江西   36   广西   45     西藏   54   河北   13     上海   31    

作者  | 2011-6-10 11:24:35 | 阅读(271) |评论(0) | 阅读全文>>

Flash的输入框TextField无法输入中文的问题

2011-6-5 19:01:49 阅读333 评论0 52011/06 June5

FLASH输入框TextField的类型是TextFieldType.INPUT时Firefox/Chrome下

竟然无法输入中文,解决办法:设置模式wmode是Window模式,即可解决!

wmde即窗口模式总共有三种,Macromedia官方解释:

Window: Use the Window value to play a Flash Player movie in its own rectangular window on a web page. This is the default value for wmode and it works the way the classic Flash Player works. This normally provides the fastest animation performance.Opaque: By using the Opaque value you can use JavaScript to move or resize movies that don’t need a transparent background. Opaque mode makes the movie hide everything behind it on the page. Additionally, opaque mode moves elements behind Flash movies (for example, with dynamic HTML) to prevent them from

作者  | 2011-6-5 19:01:49 | 阅读(333) |评论(0) | 阅读全文>>

WinForm中嵌入word的方法

2011-5-29 1:14:54 阅读43 评论0 292011/05 May29

以下是个嵌入word的方法,已封装为控件。

步骤1:新建一个WordControl的控件工程。

步骤2:添加 Microsoft.Office.Interop.Word  引用(在添加引用->.NET下找)

步骤3:添加Microsoft Office 11.0 Object Library 引用 (在添加引用->.COM下找)

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Drawing;

using System.Data;

using System.Text;

using System.Windows.Forms;

using System.Runtime.InteropServices;

namespace WordControl

{

    public partial class UserControl1 : System.Windows.Forms.UserControl

    {

   

作者  | 2011-5-29 1:14:54 | 阅读(43) |评论(0) | 阅读全文>>

Windows 文件过滤驱动经验总结

2011-5-28 11:45:13 阅读52 评论0 282011/05 May28

看了 ChuKuangRen 的第二版《文件过滤驱动开发教程》后,颇有感触。我想,交流都是建立在平等的基础上,在抱怨氛围和环境不好的同时应该先想一想自己究竟付出了多少?只知索取不愿付出的人也就不用抱怨了,要怪也只能怪自己。发自己心得的人无非是两种

目的,一是引发一些讨论,好纠正自己错误的认识,以便从中获取更多的知识使自己进步的更快。二是做一份备忘,当自己遗忘的时候能够马上找到相关资料。我这里也总结了近几年做文件过滤驱动时所积累下来的一些小小经验,这分笔记也是看了 ChuKuangRen 的

教程后,临时想到的一小部分而已,是想到哪写到哪,不是很全,如果以后再回想起什么也会不断补充。因其工作原因,近段时间在 SOLARIS 驱动与 Linux 内核方面投入的精力比较多,Windows 下的文件过滤驱动一直也没有怎么去碰,所以最后还是那句老话

FIXME。

1、获得文件全路径以及判断时机

除在所有 IRP_MJ_XXX 之前自己从头创建 IRP 发送到下层设备查询全路径外,

不要尝试在 IRP_MJ_CREATE 以外的地方获得全路径,因为只有在 IRP_MJ_CREATE

中才会使用 ObCreateObject() 来建立一个有效的 FILE_OBJECT。而在 IRP_READ

IRP_WRITE 中它们是直接操作 FCB (File Control Block)的。

2、从头建立 IRP 发送关注点

无论你建立什么样的 IRP,是 IRP_MJ_CREATE

作者  | 2011-5-28 11:45:13 | 阅读(52) |评论(0) | 阅读全文>>

WDM驱动程序入门(1)——HelloWDM

2011-5-28 11:39:52 阅读41 评论0 282011/05 May28

WDM驱动程序是一种很新的东西,相信很多人都跟我一样,对它很感兴趣,但是又找不到学习的切入点。究其原因,还是因为WDM是一种非常“死板板”的程序,它一运行就是工作在系统的底层RING 0处,提供各种接口给应用程序调用。也正因为如此,它不像普通的应用程序一样,可以很快地上手——更多的时候,你是在阅读它的技术资料和各种接口信息,你还要非常地熟悉系统底层的工作原理,否则一个不小心,就“蓝屏”了,呵呵——话说回来,写驱动程序的时候,死机是家常便饭。

因此很多人都对WDM望而生畏了。回想一下,我刚开始学WDM的情形还历历在目——看书看了整整3天,但是看完之后好像跟没看也差不了多少,还是不知道怎么入门,甚至连怎么写一个“Hello World”都不知道——后来才知道其实WDM是没有所谓的“Hello World”程序的,唉,真是痛苦啊,这主要还是因为网络上的WDM资料太少造成的。为了不让大家重蹈我的覆辙并对WDM有个感性的认识,在此我给出一个最简单的完整的WDM框架,并附有注释,姑且可以算是一个入门的“Hello World”吧。

废话少说,让我们马上开始研究,要求读者已安装DDK 2000。(在Win98中我还没有测试过,不清楚是否能正常运行)

/***************************************************************

程序名称:Hello World for WDM

文件名称:HelloWDM.cpp

作者:罗聪

日期:2002-8-16

作者  | 2011-5-28 11:39:52 | 阅读(41) |评论(0) | 阅读全文>>

c# 文件真实类型检测

2011-5-26 12:36:46 阅读75 评论0 262011/05 May26

/// <summary>

   /// 文件类型检查

   /// </summary>

   public class FileTypeCheck

   {

       /// <summary>

       /// 文件类型16进制数,可查看文件的16进制并取出两个字节       

       /// </summary>

       public enum FileType

       {           

           BMP = 0x424D,

作者  | 2011-5-26 12:36:46 | 阅读(75) |评论(0) | 阅读全文>>

c# 检查文件是否被打开

2011-5-20 14:27:03 阅读246 评论0 202011/05 May20

using System.IO;

using System.Runtime.InteropServices;

      // 首先引用API 函数

       [DllImport( "kernel32.dll" )]

       private static extern IntPtr _lopen(string lpPathName, int iReadWrite);

       [DllImport( "kernel32.dll" )]

       private static extern bool CloseHandle(IntPtr hObject);

       private const int OF_READWRITE = 2;

       private const int OF_SHARE_DENY_NONE = 0x40;



作者  | 2011-5-20 14:27:03 | 阅读(246) |评论(0) | 阅读全文>>

C# App.config 文件配置

2011-5-20 10:34:34 阅读726 评论1 202011/05 May20

1. 向项目添加app.config文件:

右击项目名称,选择“添加”→“添加新建项”,在出现的“添加新项”对话框中,选择“添加应用程序配置文件”;如果项目以前没有配置文件,则默认的文件名称为“app.config”,单击“确定”。出现在设计器视图中的app.config文件为:

<?xmlversion="1.0"encoding="utf-8" ?>

<configuration>

</configuration>

在项目进行编译后,在bin\Debuge文件下,将出现两个配置文件(以本项目为例),一个名为“JxcManagement.EXE.config”,另一个名为“JxcManagement.vshost.exe.config”。第一个文件为项目实际使用的配置文件,在程序运行中所做的更改都将被保存于此;第二个文件为原代码“app.config”的同步文件,在程序运行中不会发生更改。

2.  connectionStrings配置节:

请注意:如果您的SQL版本为2005 Express版,则默认安装时SQL服务器实例名为localhost\SQLExpress,须更改以下实例中“Data Source=localhost;”一句为“Data Source=localhost\SQLExpress;”,在等于号的两边不要加上空格。

<!--数据库连接串-->

作者  | 2011-5-20 10:34:34 | 阅读(726) |评论(1) | 阅读全文>>

Sandcastle----强大的C#文档生成工具

2011-5-5 15:51:45 阅读175 评论0 52011/05 May5

最近客户索要产品的二次开发类库文档,由于开发过程中并没有考虑过此类文档,而且项目规范比较,持续时间比较长,经手人比较多,还真是麻烦,如果人工制作文档需要是一个比较大的工程.还好有这个文档生成工具,能够根据项目生成文档,而且格式看起来确实很专业. 

     Sandcastle是微软官方的文档生成工具,NDoc开发停止后,这个貌似也是唯一的一个这方面的工具。它从dll文件及其xml注释文件能够生成完整的帮助文档,支持多种生成格式(Helpe1x:chm, Helper2x:Hxs, Website,HelperView),结合新发布的Sandcastle Help File Builder可视化工具,整个生成过程十分简单,而且SHFB工具看起来很强大,不仅能够直接配置生成文档的各个属性,而且还支持很灵活的扩展设置,为我们提供完美的.NET类库文档成为一个可能。 

      来一步一步的看下整个生成过程:

1.从这里下载最新的Sandcastle后安装. 

     2.从这里下载今年才发布的Sandcastle Help File Builder. 

作者  | 2011-5-5 15:51:45 | 阅读(175) |评论(0) | 阅读全文>>

VS2005控制台程序读取WORD文档的内容

2011-4-11 20:33:08 阅读177 评论0 112011/04 Apr11

1.在VS2005中新建一控制台程序,选支持MFC

2. Project-> Add Class->MFC Class From Typelib,单选File,找到你的word的类型库(例如我的word安装路径是"D:\\Program Files\\Microsoft Office\\OFFICE11\\MSWORD.OLB"),在本例中要用到_Application,Documents,_Document,Range这四个类,选中它们后按OK

3.头文件中将

#import "D:\\Program Files\\Microsoft Office\\OFFICE11\\MSWORD.OLB" no_namespace

换成

#import "D:\\Program Files\\Microsoft Office\\OFFICE11\\MSWORD.OLB" no_namespace    raw_interfaces_only \

rename("FindText","_FindText")       \

rename("Rectangle","_Rectangle")   \

rename("ExitWindows","_ExitWindows")

否则,出现大量编译错误

3.读取code如下

作者  | 2011-4-11 20:33:08 | 阅读(177) |评论(0) | 阅读全文>>

制作数字证书 发布ActiveX控件

2011-4-7 17:22:06 阅读159 评论0 72011/04 Apr7

1、 获得软件发行证书(测试)

一、找到或下载signcode.exe、makecert.exe和cert2spc.exe这三个程序,如果装了VS.NET的话,可以在其目录下找到,或者去微软网上下载也可以的。

二、:创建用于数字签名的公钥和私钥对,并将其存储在证书文件中。

输入makecert -sk lyl -n "CN=johnlya" c:\lyl.cer。

就会在你的C:生成lyl.cer文件。

说明:参数-n指定主题的证书名称。此名称必须符合 X.500 标准。最简单的方法是在双引号中指定此名称,并加上前缀 CN=;例如,"CN=myName"。注意这里的CN必须大写。-sk指定主题的密钥容器位置,该位置包含私钥。如果密钥容器不存在,系统将创建一个。输入makecert -?可以查看其他参数的用法。

三:创建发行者证书 (SPC)。

注意,发行者证书测试工具通过一个或多个 X.509 证书创建发行者证书 (SPC)。Cert2spc.exe 仅用于测试目的。可以从证书颁发机构(如 VeriSign 或 Thawte)获得有效的 SPC。

输入命令:cert2spc c:\lyl.cer c:\lyl.spc,在C:盘生成证书文件。至此,你已经拥有了仅用于测试的软件证书。其实,我们开发的程序或ActiveX控件只要仅用于企业内部,完全可以用这种办法作数字签名,使你的控件可以在浏览器里自动下载,而不必去专门的证书办法机构获得证书。

2、 创建CAB文件

作者  | 2011-4-7 17:22:06 | 阅读(159) |评论(0) | 阅读全文>>

Office2003下内部COM插件的编程实现

2011-4-2 12:22:40 阅读47 评论0 22011/04 Apr2

Office2000下内部COM插件的编程实现

译者:徐景周

网址:http://www.vckbase.com/document/viewdoc/?id=539

注:本文主要内容来自网上(即上面的网址),我是在word2003下实现的。有些地方需要注意的我会加上,另外要将本文中的所有出现的outlook改成程序中相应word对应代码

简介

你也许曾在Office2000下的Word2000、Access2000、Excel2000、PowerPoint2000等软件中的工具条或菜单条资源中,看到一些其它软件加入的新的自定义工具条按钮或菜单条,当点击它们时,会有其不同的响应发生。下面,让我们也来实现这些功能,需要说明的是,在这里我们不用VB/VBA来实现它,而是用VC6中所带ATL(活动模板库)3.0来开发具有这种效果的Office2000内部COM插件。在Office2000中,不管是Word2000、Access2000、Excel120000、PowerPoint2000还是Outlook2000等,它们COM插件的编程方法及步骤都是极其相似的(除注册表中键值及导入相应类型库不同外)。

基础知识

一个Office2000下的内部COM插件必须实现一个_IDTExtensibility2派发接口,_IDTExtensibility2派发接口被定义在MSADDin Designer类型库(MSADDNDR.dll/MSADDNDR.tlb)中,通常位于<盘符>/Program

作者  | 2011-4-2 12:22:40 | 阅读(47) |评论(0) | 阅读全文>>

vc中注册系统热键

2011-3-29 21:06:33 阅读181 评论0 292011/03 Mar29

1、首先定义一个存储热键的变量。WORD m_wHotKey = 0x00;

2、在对话框中增加一个热键输入框IDC_HOTKEY(注:不是EditBox而是HotKey框哦),并增加一个设置按钮响应事件如下:

void CHotkeyDlg::OnSetup()

{

// 这里取出设置的热键值

m_wHotKey=(WORD)SendDlgItemMessage(IDC_HOTKEY,HKM_GETHOTKEY,0,0);

// 注册热键

RegHotkey();

}

3、在程序中加入一个注册热键的函数以便使用。如:

void CHotkeyDlg::RegHotkey()

{

// 如果没有设置的热键时,则使用默认的热键,这里为:ctrl + alt + e

if (0x00 == m_wHotKey)

m_wHotKey = MAKEWORD('E', HOTKEYF_ALT|HOTKEYF_CONTROL);

// 将热键值设置到热键输入框

::SendDlgItemMessage(m_hWnd,IDC_HOTKEY,HKM_SETHOTKEY,0xffff&m_wHotKey,0);

// 安全起见,注销先前的热键

UnregisterHotKey(m_hWnd,99999);

UINT Mod=0;

作者  | 2011-3-29 21:06:33 | 阅读(181) |评论(0) | 阅读全文>>

查看所有日志>>

 
 
 
 
 
 
 
 

云南省 昆明市 天秤座

 发消息  写留言

 
近期心愿让一切都好起来!
博客等级加载中...
今日访问加载中...
总访问量加载中...
最后登录加载中...
 
 
 
 
 
 
 
心情随笔列表加载中...
 
 
 
 
 

自定义模块

 
 
模块内容加载中...
 
 
 
 
 
 
 
 
 
 
 
下载音乐盒  曲目表歌词秀
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2012

   
创建博客 登录  
 关注