随笔分类 - 2. C#.NET编程
与Windows上的.NET开发有关的内容,主要用C#
摘要:网上流传着多种匹配URL的正则表达式版本,但我经过试验,最好用的还是从stackoverflow上查到的: (https?|ftp|file)://[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|] IP地址、前后有汉字、带参数的,都是OK的。
阅读全文
摘要:以前在Visual Stuido 2010中运行正常的控制台程序,在Visual Studio 2015中出现乱码,找到《Visual Studio 2015的坑:中文字符串编译后成乱码》这篇文章,原来是某个cs文件的保存格式为ANSI,在保存按钮右侧有一个编码保存,用UTF8另存后,编译运行OK!
阅读全文
摘要:人机大战,我的点格棋1.0程序开始挑战女儿,2:1。C#编写,生成贪婪着法和让格着法,6层alphabeta剪枝搜索,下一个版本估计能打败绝大多数的人类棋手!
阅读全文
摘要:1.总是用属性 (Property)来代替可访问的数据成员2.在readonly和const之间,优先使用readonly3.在as和 强制类型转换之间,优先使用as操作符4.使用条件属性 (Conditional Attributes)来代替条件编译语句#if5.总是为自定义类重载ToString...
阅读全文
摘要:最近一个项目中要点击WEB页面上的链接启动自己编写的程序,而且还要接收参数,google了1.5小时,终于初步试验通过了。尝试google了:web send message windows form, bs call cs program, custom protocol...多个关键字组合,发现...
阅读全文
摘要:Visual Studio 2010是我经常使用的程序开发工具,也知道VS中有大量的快捷键可以帮助提高效率,可惜就是不愿意记忆,最近在学vim的时候快速把《Visual Studio程序员箴言》这本书看了一遍,发现有些技巧对于提高编程效率还是非常有帮助的。 我在学习vim的时候把现在的Visual Studio 2010安装了viemu,vim非常强大,自带的命令就可以完成许多强大的功能,所以我挑选的技巧一定要与viemu兼容的,并且是使用频率较高的。
阅读全文
摘要:SeismicPro是一个地震剖面显示软件,可从标准SEGY地震数据体中抽取纵测线和横测线的二维剖面,并以波形、变面积和变密度等多种方式进行专业化显示,可进行一键式显示方式切换,并可进行定制开发叠加井轨迹与测井曲线等。
主要功能列表:
1)根据SEGY快速生成三维工区信息,可预览三维工区的概貌
2)快速选取纵测线或横测线
3)在工区内以指定间隔快速前滚、后滚剖面
4)可实现从纵剖面切横剖面或从横剖面切纵剖面。
5)定制剖面的滚动间隔,剖面上显示的道号、极性等标签文本。
6)显示跟随鼠标的十字线
7)可显示剖面上任一两点之间的空间距离。
8)剖面的缩放功能,拉框放大剖面内任意区域中的内容,
9)一键使剖面恢复到正常比例的显示状态。
10)剖面漫游功能,可任意平移地震剖面。
11)逆道序显示,可实现剖面按CDP正序或
阅读全文
摘要:程序里经常要保存一些设置参数,可以用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["
阅读全文
摘要:要写一段代码读入一个用空格分隔的几列的文件,程序中有多处类似的文件,所以想着有没有什么好点的办法。井名 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) //第一行要略过 ...
阅读全文
摘要:用Seismic.NET开发地震剖面显示程序可以节省大量的时间,下面的代码展开了如何用最少的代码显示一个SEGY文件。写出了十五个例子程序,可以一步一步地搭建起基本剖面显示程序。
例子一:迷你剖面显示程序.
例子二:响应右键点击事件.
例子三:缩放操作.
例子四:剖面的坐标变换.
例子五:十字光标.
例子六:封装十字光标.
例子七:漫游拖动剖面.
例子八:道反序显示.
例子九:输出CGM
例子十:重构zoom和panning
例子十一:状态栏显示测线号和CDP号.
例子十二:变密度与彩色显示.
例子十三:改变颜色棒.
例子十四:打开任意SEGY文件.
例子十五:读取SEGY的详细信息.
阅读全文
摘要:在写一个与SEGY有关的小程序时,写了这样一段把IEEE754浮点数转换为IBM370浮点数的C#代码。
阅读全文
摘要:上周时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,
阅读全文
摘要:最近有个程序想用C#取出命令行中的参数,记得以前用C语言编程的时候有个GetOpts挺好用的,首先从网上搜GetOpts的.NET类库,找了半天,发现都很古老了,而且没有这个类库的使用说明。后来又找到一个CommandLineArgumentParser类库,http://commandlinear...
阅读全文
摘要:在OpenInventor里画一个多边形时,遇到了奇怪的填充问题,多边形的第一个顶点竟然与其中的某一个顶点相连,在wireframe模式下显示一切正常,在填充模式中就显示不正常。
阅读全文
摘要:在64位的机器上用VisualStudio2010写OpenInventor程序,经常会遇到这样的错误:未能加载文件或程序集“……”或它的某一个依赖项。试图加载格式不正确的程序。原来导入以前的项目都是在Win32下的工程文件,工程属性里设置的编译平台都是"Win32“,我用到的OIV.Invento...
阅读全文
摘要:在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方向;
第四个参数是刻度数字的间隔,这个参数是可选的,但省略时,刻度间隔是自动设置的。
阅读全文
摘要:无意中从网上看到有人想解析CGM,就想起来把几年前做的一个小项目简单总结几句。 石油行业常用CGM(Computer Graphics Metafile)计算机图形元文件格式来保存一些图件,从参加工作没多久就遇到过许多的CGM读取和输出软件或工具。像SDI公司的cgmoffice等都可以很好的编辑c
阅读全文
摘要:从网上找到了Jake Lin(Jake's Blog on 博客园)的一篇文章《.NET Compact Framework下HttpWebRequest开发》,在他的代码基础上稍加修改,可以编程模拟网页POST提交的效果。在主程序上用了个循环,再将取出的网页用正则表达式把想要的信息取出来,最后成功...
阅读全文
摘要:今天一个同事要在一个窗体中显示TreeView,但TreeView中的内容是访问一个WebService得到的,要花费一段时间,这个操作会让窗体锁住,用户无法进行其它的操作。为此google后发现了这篇文章,一试后成功!
阅读全文