今天,在百度网盘突然看到文章分类中有一些内容,仔细一看都是很久很久之前在百度空间发的一些日子内容,由于2015年百度空间关闭,百度空间中相关博文被迁移到百度云中且仅自己可见。曾经很久没有关注过的一些东西又被意外发现,于是决定重新记录下来。以下是使用C#实现关于字节高低位转换的一个方法,记得之前是有物联网接入,上位机数据被读取并且存储到服务器,而当中数据都是高低位颠倒的,在解析的时候需要将高低位进行转换。当时为了解决这个问题,就这么写了!大概是这么个情况!!!!
/// <summary>
/// 字节数组高低位转换
/// </summary>
/// <param name="sourceByte"></param>
/// <p...
6年前 (2018-09-18) 2582℃ 0评论
14喜欢
Unix时间戳(Unix timestamp)
Unix时间戳(Unix timestamp),或称Unix时间(Unix time)、POSIX时间(POSIX time),是一种时间表示方式,定义为从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数。Unix时间戳不仅被使用在Unix系统、类Unix系统中,也在许多其他操作系统中被广泛采用.
因业务需求,需要与银行进行接口对接。因为的银行接口中是有校验时间且时间格式要求为Unix timestamp,所以就使用C#进行了相关的转换。
public static class DateTimeExtension
{
/// <summary>
/// DateTime转换成Unix timestamp
/// </summa...
6年前 (2018-08-16) 810℃ 0评论
0喜欢
Email地址包括两个部分:用户名和邮件服务器。因此,检验邮件地址可以分为两步进行:首先检验邮件服务器,然后检验用户名。如 sky@qq.com,首先检验qq.com服务器是否是有效的邮件服务器,如果是再在该服务器上确认是否存在sky用户。当然这检测种方式也并不是百分之百有效,有些服务器不允许检测、有些服务器返回的是错误的信息,这些时候检测结果都是不正确的。
通过查询DNS服务器,获取域名的MX(Mail Exchanger)记录,可以确定某一域名对应的邮件服务器是否有效。在Windows系统中,可以使用nslookup程序来查看这一记录。
public class EmailCheckHelper
{
TcpClient tcpc;
NetworkStream s;
string strDomain;
byte[] bb;
in...
7年前 (2017-07-04) 2157℃ 0评论
0喜欢
在面向对象程序中,我们经常看到一种模式就是简单工厂模式(Simple Factory Pattern)。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式根据提供给它的数据,返回几个可能类中的一个类的实例。通常它返回的类都有一个共同的父类和共同的方法,但每个方法执行的任务不同,而且根据不同的数据进行了优化。简单工厂模式实际上不属于23个GoF模式,但它可以作为学习工厂方法做铺垫。
一、UML类图,简单工厂基本类图
二、代码演示
/// <summary>
/// 产品抽象类
/// </summary>
public abstract class Product
{
public abstract void CreateProduct();
}
/// <summary>
/// 具体产品A
/// <...
8年前 (2017-02-02) 1297℃ 0评论
0喜欢
private string getExcelSheetFirstNameFor(string path)
{
string firstName = "";
Excel.Application objExcelApp = new Application();
objExcelApp.Visible = false;
objExcelApp.DisplayAlerts = false;
Workbooks objWorkbooks = objExcelApp.Workbooks;
_Workbook objWorkbook = null;
_Worksheet objWorksheet = null;
object objMissing = System.Reflection.Missing.Value;
try
{
objWork...
8年前 (2017-01-06) 1412℃ 0评论
1喜欢
友情提示以下所诉的音频合并仅仅针对mp3,其他类型音频文件可能存在差异,敬请注意。
公司项目存在多媒体叫号功能,此功能在XP系统上读的速度是可以的,但是在Window7以及以上版本系统读的速度非常慢(不连贯,难以接受)。现在实现方式根据信息拼接了不同的MP3文件,然后进行顺序读取。但是很奇怪为什么在更高版本系统中使用会变的异常的慢,让人难以接受。为了解决这个问题想到了2个方案:
使用flash音乐播放器进行列表播放,但是很多的网页播放器不具备与JavaScript交互的功能,甚至没有列表播放功能。(没有发现其他好用的播放器)对多个MP3文件进行合并后进行播放
经过测试否决了第一种方式,因为压根没有找到一款适合的网页播放器,重新写太费时间了。第二种方式可以解决问题。所以就使用了这个简单的方法来修改现有叫号功能在高版本系统播放缓慢的问题。基本代码如下:
using Sy...
8年前 (2016-12-15) 4681℃ 6评论
13喜欢
使用Zxing.net进行一维条码识别,如果自动识别解码对Code39条码解码的情况下可能会出现解码错误的情况(这里的错误是指解码后的数据和原来进行编码的数据不一致,进行编码的数据均为Code39的合法字符)。原因:自动解码会尝试目前所有支持类型的解码,包括Code39Extended模式。Code39和Code39Extended 是相同的方法处理,在进行Code39解码后会判断是否使用了Code39Extended模式,使用了扩展的话就会再次对返回的结果进行Code39Extended解码。文件所在位置:lib\oned\Code39Reader.cs 代码如下:
/*
* Copyright 2008 ZXing authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
...
8年前 (2016-08-19) 1602℃ 0评论
0喜欢
在谷歌百度以图搜索中, 用户可以上传一张图片, 谷歌百度显示因特网中与此图片相同或者相似的图片.
第一步:将图片缩小到8×8的尺寸,总共64个像素。这一步的作用是去除图片的细节, 只保留结构、明暗等基本信息,摒弃不同尺寸、比例带来的图片差异。
第二步:将缩小后的图片,转为64级灰度。也就是说,所有像素点总共只有64种颜色。
第三步:计算所有64个像素的灰度平均值。
第四步:将每个像素的灰度,与平均值进行比较。大于或等于平均值,记为1;小于平均值,记为0。
第五步:将上一步的比较结果,组合在一起,就构成了一个64位的整数,这就是这张图片的指纹。组合的次序并不重要,只要保证所有图片都采用同样次序。
第六步:计算”汉明距离”(Hamming distance),如果不相同的数据位不超过5,就说明两张图片很相似;如果大于10,就说明这是两张不同的图片。
usi...
8年前 (2016-08-18) 1668℃ 0评论
2喜欢
项目中有短信发送模块,由于SP提供的SDK升级。在项目中需要新增SDK的版本。新版本新增的同时要更新旧版本的Dll引用方式,旧版本之前通过DllImport引用使用绝对路径。地址更换后,在操作短信发送的时候就会报“无法加载DLL’*.dll’,找不到指定的模块”。(相关的DLL已经放到Bin目录下)。
当使用绝对路径或者把相关DLL拷贝到系统目录(C:\WINDOWS\system32)后,此类错误不再出现。虽说问题得以解决,但无论是绝对路径还是把相关DLL放到系统目录,这都不是很好的解决办法。很多服务器是不允许在非网站应用程序下新建文件的。而在网上基本都是三种解决方案,如下:
1、将相关的DLL拷贝到Bin目录下
2、将相关的DLL放到系统目录(C:\WINDOWS\system32)
3、使用绝对路径,例如:E:\dll\xxxx.dll
以上三种解决方案在不同...
8年前 (2016-08-16) 2054℃ 0评论
3喜欢
这个之前(很久之前了吧)使用webform的时候使用的验证码,实现的方式也很简单。
using System;
using System.IO;
using System.Drawing;
using System.Drawing.Imaging;
using System.Text;
using System.Collections;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
namespace WebUI.yzm
{
public partial class yzm : System.Web.UI....
8年前 (2016-08-01) 879℃ 0评论
0喜欢
在某些情况下对文本文件进行读取会出现乱码,这种情况是因为指定的文本文件的编码类型不是系统默认的编码类型或者不是读取时指定的编码类型。解决这种出现乱码的情况可以先获取指定文本文件的编码类型,然后在进行内容的读取。这样尽可能的避免读取文本文件时出现乱码的机率。代码如下:
/// <summary>
/// 获取指定文件的编码
/// 以防止在不知道文件编码格式的情况下处理文件而造成的乱码问题
/// </summary>
/// <param name="filename">文件路径</param>
/// <returns></returns>
public System.Text.Encoding GetFileEncodeType(string filename)
{
if (!File.Ex...
8年前 (2016-07-19) 1949℃ 0评论
4喜欢
简介
Code39是条形码的一种。由于编制简单、能够对任意长度的数据进行编码、支持设备广泛等特性而被广泛采用。
能够对任意长度的数据进行编码。其局限在于印刷品的长度和条码阅读器的识别范围。 支持设备广泛。目前几乎所有的条形码阅读设备都能阅读Code39码,打印机也是同样情况。 编制简单。简单的开发技术就能快速生成相应的编码图像。 一般Code39码由5条线和分开它们的4条缝隙共9个元素构成。线和缝隙有宽窄之分,而且无论线还是缝隙仅有3个比其他的元素要宽一定比例。39码因此得名
Code39条形码规则
1、 每五条线表示一个字符;
2、 粗线表示1,细线表示0;
3、 线条间的间隙宽的表示1,窄的表示0;
4、 五条线加上它们之间的四条间隙就是九位二进制编码,而且这九位中必定有三位是1,所以称为39码;
5、 条...
8年前 (2016-07-15) 1243℃ 0评论
2喜欢
首先在Word文档中,插入一个新的书签,并命名(假设建了一个名为”BOOKMARKNAME”的书签),然后使用C#操作Word:
using MSWord = Microsoft.Office.Interop.Word;
//引用命名空间
private MSWord.Application wordApp;
//Word应用程序变量
private MSWord.Document wordDoc;
//Word文档变量
private Object Nothing = Missing.Value;
//初始化
wordApp = new MSWord.ApplicationClass();
wordDoc = wordApp.Documents.Add(ref Nothing, ref Nothing, ref Nothing, ref ...
8年前 (2016-07-14) 2557℃ 0评论
2喜欢
参数化查询(Parameterized Query )是指在设计与数据库链接并访问数据时,在需要填入数值或数据的地方,使用参数 (Parameter) 来给值,这个方法目前已被视为最有效可预防SQL注入攻击 (SQL Injection) 的攻击手法的防御方式。下面将重点总结下Parameter构建的几种常用方法。
说起参数化查询当然最主要的就是如何构造所谓的参数:比如,我们登陆时需要密码和用户名,一般我们会这样写sql语句,select count(*) from username where names=@names and passwd=@passwd,为了防止sql注入,我们该如何构建@names和@passwd两个参数呢,下面提供7种(其实大部分原理都是一样,只不过代码表现形式不一样,以此仅作对比,方便使用)构建参数的方法,根据不同的情况选用合适的方法即可:
通用数据库...
9年前 (2016-05-05) 1008℃ 0评论
1喜欢
润年
闰年
闰年是公历中的名词,闰年分为普通闰年和世纪闰年。
普通闰年:能被4整除但不能被100整除的年份为普通闰年。(如2004年就是闰年,1999年不是闰年)
世纪闰年:能被400整除的为世纪闰年。(如2000年是闰年,1900年不是闰年)
闰年(Leap Year)是为了弥补因人为历法规定造成的年度天数与地球实际公转周期的时间差而设立的。补上时间差的年份为闰年。闰年共有366天(1-12月分别为31天,29天,31天,30天,31天,30天,31天,31天,30天,31天,30天,31天)。
凡阳历中有闰日(二月为二十九日)的年;闰余(岁余置闰。阴历每年与回归年相比所差的时日)
注意闰年(公历中名词)和闰月(农历中名词)并没有直接的关联,公历中只分闰年和平年,平年有365天,而闰年有366天(2月中多一天)
平年中也可能有闰月(如2...
9年前 (2016-04-05) 1474℃ 0评论
1喜欢
最近有遇到两个对象的赋值问题,两个对象的属性几乎都一样的,所以写了个通过反射获取属性的然后赋值的方法,把一个对象的属性的值赋值给另对象。
public static class MapperHelper
{
/// <summary>
/// 反射实现两个类的对象之间相同属性的值的复制
/// 适用于初始化新实体
/// </summary>
/// <typeparam name="R">返回的实体</typeparam>
/// <typeparam name="S">数据源实体</typeparam>
/// <param name="s">数据源实体</param&...
10年前 (2015-02-20) 1169℃ 0评论
1喜欢