随笔分类 -  2. C#.NET编程

与Windows上的.NET开发有关的内容,主要用C#
摘要:网上流传着多种匹配URL的正则表达式版本,但我经过试验,最好用的还是从stackoverflow上查到的: (https?|ftp|file)://[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|] IP地址、前后有汉字、带参数的,都是OK的。   阅读全文
posted @ 2016-01-04 09:06 申龙斌的程序人生 阅读(156821) 评论(9) 推荐(5) 编辑
摘要:以前在Visual Stuido 2010中运行正常的控制台程序,在Visual Studio 2015中出现乱码,找到《Visual Studio 2015的坑:中文字符串编译后成乱码》这篇文章,原来是某个cs文件的保存格式为ANSI,在保存按钮右侧有一个编码保存,用UTF8另存后,编译运行OK! 阅读全文
posted @ 2016-01-03 16:04 申龙斌的程序人生 阅读(6596) 评论(1) 推荐(0) 编辑
摘要:人机大战,我的点格棋1.0程序开始挑战女儿,2:1。C#编写,生成贪婪着法和让格着法,6层alphabeta剪枝搜索,下一个版本估计能打败绝大多数的人类棋手! 阅读全文
posted @ 2015-11-01 15:39 申龙斌的程序人生 阅读(1268) 评论(0) 推荐(0) 编辑
摘要:1.总是用属性 (Property)来代替可访问的数据成员2.在readonly和const之间,优先使用readonly3.在as和 强制类型转换之间,优先使用as操作符4.使用条件属性 (Conditional Attributes)来代替条件编译语句#if5.总是为自定义类重载ToString... 阅读全文
posted @ 2014-12-22 08:17 申龙斌的程序人生 阅读(340) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2014-12-10 09:13 申龙斌的程序人生 阅读(1) 评论(0) 推荐(0) 编辑
摘要:最近一个项目中要点击WEB页面上的链接启动自己编写的程序,而且还要接收参数,google了1.5小时,终于初步试验通过了。尝试google了:web send message windows form, bs call cs program, custom protocol...多个关键字组合,发现... 阅读全文
posted @ 2014-06-02 22:18 申龙斌的程序人生 阅读(2181) 评论(2) 推荐(1) 编辑
摘要:Visual Studio 2010是我经常使用的程序开发工具,也知道VS中有大量的快捷键可以帮助提高效率,可惜就是不愿意记忆,最近在学vim的时候快速把《Visual Studio程序员箴言》这本书看了一遍,发现有些技巧对于提高编程效率还是非常有帮助的。 我在学习vim的时候把现在的Visual Studio 2010安装了viemu,vim非常强大,自带的命令就可以完成许多强大的功能,所以我挑选的技巧一定要与viemu兼容的,并且是使用频率较高的。 阅读全文
posted @ 2014-04-07 16:06 申龙斌的程序人生 阅读(1575) 评论(0) 推荐(0) 编辑
摘要:SeismicPro是一个地震剖面显示软件,可从标准SEGY地震数据体中抽取纵测线和横测线的二维剖面,并以波形、变面积和变密度等多种方式进行专业化显示,可进行一键式显示方式切换,并可进行定制开发叠加井轨迹与测井曲线等。 主要功能列表: 1)根据SEGY快速生成三维工区信息,可预览三维工区的概貌 2)快速选取纵测线或横测线 3)在工区内以指定间隔快速前滚、后滚剖面 4)可实现从纵剖面切横剖面或从横剖面切纵剖面。 5)定制剖面的滚动间隔,剖面上显示的道号、极性等标签文本。 6)显示跟随鼠标的十字线 7)可显示剖面上任一两点之间的空间距离。 8)剖面的缩放功能,拉框放大剖面内任意区域中的内容, 9)一键使剖面恢复到正常比例的显示状态。 10)剖面漫游功能,可任意平移地震剖面。 11)逆道序显示,可实现剖面按CDP正序或 阅读全文
posted @ 2014-04-03 22:37 申龙斌的程序人生 阅读(6827) 评论(3) 推荐(1) 编辑
摘要:程序里经常要保存一些设置参数,可以用INI,CONFIG,注册表,XML等等,在stackoverflow中找到这样一篇帖子。http://stackoverflow.com/questions/453161/best-practice-to-save-application-settings-in-a-windows-forms-applicationINI太古老了,暂不考虑了。注册表最好还是别用了。XML写入一个简单的参数,要弄出来一大堆尖括号。Visual Studio对Properties的支持比较好,用起来也挺方便:Properties.Settings.Default[" 阅读全文
posted @ 2014-03-09 22:31 申龙斌的程序人生 阅读(3129) 评论(0) 推荐(1) 编辑
摘要:要写一段代码读入一个用空格分隔的几列的文件,程序中有多处类似的文件,所以想着有没有什么好点的办法。井名 X坐标 Y坐标 深度测试井1 634600 4116000 3456井2 640000 4200000 3333以前没学过LINQ,只知道它应该能够方便地读入这类数据,google了一阵,终于写出来了。 var query = from line in File.ReadAllLines(wellListFile, Encoding.GetEncoding("GBK")) .Skip(1) //第一行要略过 ... 阅读全文
posted @ 2014-03-07 07:51 申龙斌的程序人生 阅读(654) 评论(0) 推荐(0) 编辑
摘要:用Seismic.NET开发地震剖面显示程序可以节省大量的时间,下面的代码展开了如何用最少的代码显示一个SEGY文件。写出了十五个例子程序,可以一步一步地搭建起基本剖面显示程序。 例子一:迷你剖面显示程序. 例子二:响应右键点击事件. 例子三:缩放操作. 例子四:剖面的坐标变换. 例子五:十字光标. 例子六:封装十字光标. 例子七:漫游拖动剖面. 例子八:道反序显示. 例子九:输出CGM 例子十:重构zoom和panning 例子十一:状态栏显示测线号和CDP号. 例子十二:变密度与彩色显示. 例子十三:改变颜色棒. 例子十四:打开任意SEGY文件. 例子十五:读取SEGY的详细信息. 阅读全文
posted @ 2014-01-21 18:21 申龙斌的程序人生 阅读(1347) 评论(3) 推荐(0) 编辑
摘要:在写一个与SEGY有关的小程序时,写了这样一段把IEEE754浮点数转换为IBM370浮点数的C#代码。 阅读全文
posted @ 2013-10-11 10:00 申龙斌的程序人生 阅读(2544) 评论(0) 推荐(0) 编辑
摘要:上周时Visual Studio 2010突然出现崩溃现象。在源文件修改只要一编译,马上就崩溃,而且还不弹出任何异常窗口,严重影响软件开发工作。google了无数解决方案试了下面这些方法:1)http://blog.sina.com.cn/s/blog_68cb7e090101963d.htmlFor 32-bit operating systems, run the following command:regsvr32 "c:\Program Files\Internet Explorer\ieproxy.dll"For 64-bit operating systems, 阅读全文
posted @ 2013-01-31 14:02 申龙斌的程序人生 阅读(4805) 评论(0) 推荐(0) 编辑
摘要:最近有个程序想用C#取出命令行中的参数,记得以前用C语言编程的时候有个GetOpts挺好用的,首先从网上搜GetOpts的.NET类库,找了半天,发现都很古老了,而且没有这个类库的使用说明。后来又找到一个CommandLineArgumentParser类库,http://commandlinear... 阅读全文
posted @ 2012-08-07 08:50 申龙斌的程序人生 阅读(4025) 评论(9) 推荐(2) 编辑
摘要:在OpenInventor里画一个多边形时,遇到了奇怪的填充问题,多边形的第一个顶点竟然与其中的某一个顶点相连,在wireframe模式下显示一切正常,在填充模式中就显示不正常。 阅读全文
posted @ 2012-05-21 16:41 申龙斌的程序人生 阅读(1489) 评论(0) 推荐(1) 编辑
摘要:在64位的机器上用VisualStudio2010写OpenInventor程序,经常会遇到这样的错误:未能加载文件或程序集“……”或它的某一个依赖项。试图加载格式不正确的程序。原来导入以前的项目都是在Win32下的工程文件,工程属性里设置的编译平台都是"Win32“,我用到的OIV.Invento... 阅读全文
posted @ 2012-03-16 09:23 申龙斌的程序人生 阅读(1926) 评论(0) 推荐(0) 编辑
摘要:在MeshViz模块里有许多坐标轴的类,PoLinearAxis类应该最有用,关键的语句是下面的构造函数: PoLinearAxis ax = new PoLinearAxis(new SbVec3f(35.0f, 35.0f, 35.0f), 88.0f, PoCartesianAxis.Types.XY, 10.0f); 第一个参数是起点的空间位置,SbVec3f类型; 第二个参数是终点的位置,但只是一个浮点数,含义是由后面的PoCartesianAxis.Types.XY参数决定的; 第三个参数是决定坐标轴在哪个平面上和指向的方向,XY是指在XY平面上,平行X方向; 第四个参数是刻度数字的间隔,这个参数是可选的,但省略时,刻度间隔是自动设置的。 阅读全文
posted @ 2012-02-21 08:23 申龙斌的程序人生 阅读(2104) 评论(1) 推荐(0) 编辑
摘要:无意中从网上看到有人想解析CGM,就想起来把几年前做的一个小项目简单总结几句。 石油行业常用CGM(Computer Graphics Metafile)计算机图形元文件格式来保存一些图件,从参加工作没多久就遇到过许多的CGM读取和输出软件或工具。像SDI公司的cgmoffice等都可以很好的编辑c 阅读全文
posted @ 2011-09-03 10:57 申龙斌的程序人生 阅读(6961) 评论(2) 推荐(0) 编辑
摘要:从网上找到了Jake Lin(Jake's Blog on 博客园)的一篇文章《.NET Compact Framework下HttpWebRequest开发》,在他的代码基础上稍加修改,可以编程模拟网页POST提交的效果。在主程序上用了个循环,再将取出的网页用正则表达式把想要的信息取出来,最后成功... 阅读全文
posted @ 2010-08-19 11:06 申龙斌的程序人生 阅读(2597) 评论(4) 推荐(1) 编辑
摘要:今天一个同事要在一个窗体中显示TreeView,但TreeView中的内容是访问一个WebService得到的,要花费一段时间,这个操作会让窗体锁住,用户无法进行其它的操作。为此google后发现了这篇文章,一试后成功! 阅读全文
posted @ 2010-02-24 10:57 申龙斌的程序人生 阅读(1102) 评论(0) 推荐(0) 编辑