博客 (631)

公司有个项目是使用实体刷卡的会员管理系统,并为其它系统如餐饮系统、美发厅管理系统等提供统一的会员注册与信息管理。暂定使用一维条形码卡。

一般来说,商品最常用的编码是EAN-13,而非商品(如图书馆会员卡,驾驶证条码等)一般使用39码。

39码 在线测试地址:http://xoyozo.net/Tools/Code39

EAN-13 在线测试地址:http://xoyozo.net/Tools/EAN-13

 

39码

39码比较简单,条码以“*”为起始符和终止符,见下图:

 

 

它所能表示的字符包括:0~9 的数字,大写 A~Z 的英文字母,「+」,「-」,「*」,「/」,「%」,「$」,「.」,以及空格符(Space)等,共44组编码。

39码表:“0”对应白色空位,“1”对应黑色线条。

字元 逻辑型态 字元 逻辑型态
A 110101001011 N 101011010011
B 101101001011 O 110101101001
C 110110100101 P 101101101001
D 101011001011 Q 101010110011
E 110101100101 R 110101011001
F 101101100101 S 101101011001
G 101010011011 T 101011011001
H 110101001101 U 110010101011
I 101101001101 V 100110101011
J 101011001101 W 110011010101
K 110101010011 X 100101101011
L 101101010011 Y 110010110101
M 110110101001 Z 100110110101

 

字元 逻辑型态 字元 逻辑型态
0 101001101101 + 100101001001
1 110100101011 - 100101011011
2 101100101011 * 100101101101
3 110110010101 / 100100101001
4 101001101011 % 101001001001
5 110100110101 $ 100100100101
6 101100110101 . 110010101101
7 101001011011 空白 100110101101
8 110100101101    
9 101100101101    

 

值得注意的是,39码生成的条形中,每个码之间有一个空位,经扫描枪测试,该空位与一个单位的线条宽度相等时,能确保被正确扫描。

代码见附件

 

EAN-13码

EAN-13码是由13位数字构成,其中最后一位为校验码:

 

 

 

 

左侧空白区 起始符 左侧数据符 中间分隔符 右侧数据符 校验符 终止符 右测空白区
9个模块 3个模块 42个模块 5个模块 35个模块 7个模块 3个模块 9个模块

 

 校验码计算的步骤如下: 以 234235654652 为例:

  数据码 校验码
代码位置序号 13 12 11 10 9 8 7 6 5 4 3 2 1
数字码 2 3 4 2 3 5 6 5 4 6 5 2 ?
偶数位   3 + 2 + 5 + 5 + 6 + 2  
奇数位 2 + 4 + 3 + 6 + 4 + 5    

 

 

① 从序号2开始,将所有偶数位的数字代码求和,得出S1;  S1=3+2+5+5+6+2=23

② 从序号3开始,将所有奇数位的数字求和,得出S2;  S2=2+4+3+6+4+5=24

③ S3=S1*3+S2;  S3=23*3+24=93

④ C=10-(S3的个位数),得到校验码C的值。并且当S3的个位数为0时,C=0。  C=10-3=7

 EAN码的编码规则: 


数字符
左侧数据符 右侧数据符
A B C
0 0001101 0100111 1110010
1 0011001 0110011 1100110
2 0010011 0011011 1101100
3 0111101 0100001 1000010
4 0100011 0011101 1011100
5 0110001 0111001 1001110
6 0101111 0000101 1010000
7 0111011 0010001 1000100
8 0110111 0001001 1001000
9 0001011 0010111 1110100

 (关于左侧数据符,网络上的资料均显示A3及B6为6位数,经本人实践亲自查证,已修正)

起始符:101
中间分隔符:01010
终止符:101。
A、B、C中的“0”和“1”分别表示具有一个模块宽度的“空”和“条”。
因为左侧数据编码方式有两种,要按照前置码选其中一种,如表:

前置字符 左侧数据符编码规则的选择
0 A A A A A A
1 A A B A B B
2 A A B B A B
3 A A B B B A
4 A B A A B B
5 A B B A A B
6(中国) A B B B A A
7 A B A B A B
8 A B A B B A
9 A B B A B A

 

6903244981002 (心相印软抽100抽) 为例:前置码为6,编码规则为 000000000101ABBBAA01010CCCCCC101000000000
再对应码表替换ABC,结果为:00000000010100010110100111010000100110110100011010001101010111010010010001100110111001011100101101100101000000000
 

 

xoyozo 16 年前
16,268
下载最新版 Visual Studio 请点击这里:http://xoyozo.net/Software/Visual_Studio

 

前日(2010年4月12日),微软正式发布了 Microsoft Visual Studio 2010,相信这是个让众多微软开发者们心情激动的一天吧。至于 VS是啥米东东之类的就不再解释了,相关人员请移步维基百科

 

微软称 Visual Studio 2010 集成开发环境(IDE)的界面被重新设计和组织,变得更加清晰和简单。新的 IDE 更好的支持了多文档窗口以及浮动工具窗,并且对于多显示器的支持也有所增强。IDE的外壳使用 WPF 重写,内部使用 MEF 重新设计,以提供比先前版本更好的扩展性。

版本说明

VS2010 的版本较之前版本有所不同,取消了标准版、团队版命名方式等,而采用跟 Window 7 一致的:

产品功能 Professional (专业版) Premium (高级版) Ultimate (旗舰版)
测试和诊断
测试工具
集成开发环境
数据库开发
开发平台支持
体系结构和建模 ×
Lab Management × ×
Team Foundation Server
MSDN 订阅
价格 $1,199 $5,469 $11,899

(注:√ 支持 × 不支持 ≈ 部分支持)

旗舰版下载地址(官方简体中文版)

“只选贵的”符合天朝国情。许多大侠认为官方下载的肯定是未破解的,那是您的错,其实微软也是一只河蟹,记住一个公式:Trial(测试版)+ Key(序列号)= 正式版

分卷下载:(下载后双击part1.exe解压为 VS2010UltimTrial.iso)
VS2010UltimTrialCHS_4PartsTotal.part1.exe 官网下载 迅雷下载
VS2010UltimTrialCHS_4PartsTotal.part2.rar 官网下载 迅雷下载
VS2010UltimTrialCHS_4PartsTotal.part3.rar 官网下载 迅雷下载
VS2010UltimTrialCHS_4PartsTotal.part4.rar 官网下载 迅雷下载
完整镜像下载: X16-60997VS2010UltimTrialCHS.iso 官网下载 迅雷下载
CRC: 0x3DB619A0
SHA-1: 0x8BA7308E1F74AEE8DE6094CE04F78CD21486608D

旗舰版下载地址(官方英文版)

分卷下载:(下载后双击part1.exe解压为 VS2010UltimTrial.iso)
VS2010UltimTrial_4PartsTotal.part1.exe 官网下载 迅雷下载
VS2010UltimTrial_4PartsTotal.part2.rar 官网下载 迅雷下载
VS2010UltimTrial_4PartsTotal.part3.rar 官网下载 迅雷下载
VS2010UltimTrial_4PartsTotal.part4.rar 官网下载 迅雷下载
完整镜像下载: X16-42552VS2010UltimTrial1.iso 官网下载 迅雷下载
CRC: 0x8095c67f
SHA-1: 0x8371f6a8d090063fcc320617e94854374633df3c

关心的话题

钥匙:YCFHQ-9DWCY-DKV88-T2TMH-G7BHP(需刮开才能看到,显示器刮坏请找经销商)

40,136

一、添加引用 using System.Web.SessionState;

二、实现接口 public class Handler : IHttpHandler, IRequiresSessionState { }

三、使用方法 HttpContext.Current.Session["xxx"] = value;

xoyozo 16 年前
6,375

菜单 -> 工具 -> 选项 -> 文本编辑器 -> HTML -> 杂项 -> 在源视图中粘贴元素时自动添加 ID

xoyozo 16 年前
4,433

开始 - 设备和打印机 - 有绿箭头的打印机图标上右键 - 查看现在正在打印什么 - 打印机 - 共享 - 取消共享这台打印机

xoyozo 16 年前
5,661

一个关于Visual Studio 2008 SP1 (KB971092) 的系统补丁重复安装问题的解决方案:

出现该问题的原因是未安装 Visual C++,除了安装VC++,您可以按以下步骤解决该补丁更新问题。

1.)下载补丁包或直接从 \Windows\SoftwareDistribution\Download\Install 目录找。

2.)双击安装,记住释放文件的目录。出现提示“VC Libraries QFE Patch 不适用或被系统的其他条件阻止。有关详细信息,请单击以下链接。”时,不要关闭窗口。

3.)找到释放安装文件的临时文件夹,复制到桌面。

4.)现在可以关闭刚才的提示窗口了。

5.)找到“\Program Files\Microsoft Visual Studio 9.0\Common7\Tools\vsvars32.bat”这个文件,添加 Everyone 的权限为可写。

6.)运行桌面文件夹内的 VS90SP1-KB971092-x86.msp 等待安装完成,完成时没有提示。

7.)更新成功!

xoyozo 16 年前
8,270


id  name  score
1    李四      89   
2    王五      98
3    张三      90
4    王五      79
5    李四      97
6    张三      89

输出:
 姓名  成绩
 张三     90
 李四     97
 王五     98

sql语句要怎么写?

答案:

SELECT MAX([t0].[score]) AS [最高分], [t0].[name] AS [姓名]
FROM [dbo].[表] AS [t0]
GROUP BY [t0].[name]

xoyozo 16 年前
3,821

做网页的朋友应该都知道常用的几个HTML转义符,如“ ”表示空格,“>”表示“>”等,但是有时候我们为了网页的文字不被搜索引擎收录,比如评论信息,这时可以用同样的方法去转义汉字等各种字符,一般格式为 "&#"+ASCII+";",如“中华人民共和国”可以转义为“中华人民共和国”。

在C#中可以这样来实现:

private string htmlEscape(string s)
{
    StringBuilder sb = new StringBuilder();
    foreach (char c in s)
    {
        sb.Append("&#" + (int)c + ";");
    }
    return sb.ToString();
}
xoyozo 17 年前
6,975

有时候已知一个 ID 的数组,需要读取这些记录内容,SQL 可以联接多个“或”关系去读取,或使用“In”语句,在 LINQ TO SQL 中可以这样来做:

List<int> ids = new List<int> { 1, 2, 3 };
List<string> tbs = db.dbTables.Where(c => ids.Contains<int>(c.ID)).ToList();
xoyozo 17 年前
4,768

    大家知道,Windows Mobile 6.0 SDK自带了cellular emulatorfake GPS,使得我们可以在模拟器上调试radio级的phone call和基于GPS的地理位置应用。前几天,一位MVP Dmitry Klionsky撰写了文章《Bluetooth for Microsoft Device Emulator》,讲述了在Windows Mobile模拟器上使用蓝牙的方法,我觉得这对于开发移动设备上蓝牙通信的朋友来说,是非常有用的。

    我们来看看实现Bluetooth的架构,参考图1(来源于Bluetooth for Microsoft Device Emulator),主要包括emulator端和PC端:

1EmulatorPC上实现Bluetooth通信的架构

1. Emulator

Bluetooth HCI Transport Driver

Serial Port Driver

Microsoft Remote Tools Framework remote agent

2.  PC

Microsoft Remote Tools Framework desktop plugin

FreeBT USB Driver runtime

FreeBTUSB Driver

Connected Bluetooth USB device

    注意:作者采用了FreeBT这个开源的工程来控制Bluetooth的接入。

    在Windows Mobile模拟器上使用蓝牙的必要条件有:

1. Visual studio 2005 with SP1 或者 Visual studio 2008

2. Windows Mobile 5.0 Pocket PC/Smartphone SDK and/or Windows Mobile 6 Standard/Professional SDK emulator images

3. Device Emulator 3.0

4. Microsoft Remote Tools Framework 1.00

5. 一个具有USB接口的Bluetooth dongle

    在Windows Mobile模拟器上使用蓝牙的步骤如下(详细请参考Bluetooth for Microsoft Device Emulator):

1.  PC端安装下载的FreeBT的蓝牙驱动,方法自然是通过“windows设备管理器”,为新的硬件设备(也就是连接的Bluetooth USB device)添加下载过来的驱动(主要是找到fbtusb.inf文件)。

2. Remote Tools Framework plugin中运行BthEmulManager.cetool,将其和模拟器建立连接。

3. 连接建立以后,蓝牙设备的信息(Address, Manufacturer, HCI Version, LMP Version)就会显示在界面上了,如图2所示(来源于Bluetooth for Microsoft Device Emulator.

2:建立蓝牙联系以后,在模拟器上的信息

4. Microsoft Remote Tools Framework允许我们同时开启两个模拟器,因此,如果手头有两个Bluetooth USB dongle的话,我们就可以在两个模拟器上调试蓝牙的收发通信了。

参考链接:

Dmitry KlionskyBluetooth for Microsoft Device Emulator

MSDNBluetooth HCI Transport Driver

MSDNSerial Port Driver

Open sourceFreeBT

Device Emulator 3.0

Microsoft Remote Tools Framework 1.00

5,026