Google

星期六, 一月 24, 2009

佳能数码相机软件安装

可以直接从佳能网站上下载升级程序直接安装就行,
只要导入如下注册表文件即可:

-------拷贝本行以下内容-------------------

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Canon]

[HKEY_LOCAL_MACHINE\SOFTWARE\Canon\DPP]

[HKEY_LOCAL_MACHINE\SOFTWARE\Canon\EOSViewerUtility]

[HKEY_LOCAL_MACHINE\SOFTWARE\Canon\PhotoStitch]

[HKEY_LOCAL_MACHINE\SOFTWARE\Canon\ZoomBrowser]

星期日, 一月 18, 2009

Div+CSS布局 网站设计的优点!

Author:DivCSS Data:2006-12-02
业界越来越关注DIV+CSS的标准化设计,大到各大门户网站,小到不计其数的个人网站,在Div+CSS标准化的影响下,网页设计人员已经把这一要求作为行业标准。那么什么是Div+CSS标准?Div+CSS的标准化设计到底有什么好处?

Div 全称 division 意为“区分”使用 DIV 的方法跟使用其他 tag 的方法一样。
Very excellent webmaster club www.caifuw.com

如果单独使用 DIV 而不加任何 CSS, 那么它在网页中的效果和使用

是一样的。
DIV本身就是容器性质的,你不但可以内嵌table还可以内嵌文本和其它的HTML代码

CSS 是Cascading style Sheets的简称,中文译作“层叠样式表单”,在主页制作时采用CSS技术,可以有效地对页面的布局、字体、颜色、背景和其它效果实现更加精确的控制。只要对相应的代码做一些简单的修改,就可以改变同一页面的不同部分,或者页数不同的网页的外观和格式。网上冲浪无论你用Internet Explorer还是Netscape Navigator,几乎随时都在与CSS打交道,在网上没有使用过CSS的网页可能不好找。不管你用什么工具软件制作网页,都有在有意无意地使用CSS。用好CSS能使你的网页更加简炼,同样内容的网页,有的人做出来有几十KB,而高手做出来只有十几KB。

Div+CSS标准的优点:

1.大大缩减页面代码,提高页面浏览速度,缩减带宽成本;
2.结构清晰,容易被搜索引擎搜索到,天生优化了seo
3.缩短改版时间。只要简单的修改几个CSS文件就可以重新设计一个有成百上千页面的站点。
4.强大的字体控制和排版能力。CSS控制字体的能力比糟糕的FONT标签好多了,有了CSS,我们不再需要用FONT标签或者透明的1 px GIF图片来控制标题,改变字体颜色,字体样式等等。
5.CSS非常容易编写。你可以象写html代码一样轻松地编写CSS。
6.提高易用性。使用CSS可以结构化HTML,例如:

标签只用来控制段落,heading标签只用来控制标题,table标签只用来表现格式化的数据等等。你可以增加更多的用户而不需要建立独立的版本。
7.可以一次设计,随处发布。你的设计不仅仅用于web浏览器,也可以发布在其他设备上,比如PowerPoint。
8.更好的控制页面布局。不用多说。
9.表现和内容相分离。将设计部分剥离出来放在一个独立样式文件中,你可以减少未来网页无效的可能。
10.更方便搜索引擎的搜索。用只包含结构化内容的HTML代替嵌套的标签,搜索引擎将更有效地搜索到你的内容,并可能给你一个较高的评价(ranking)。
11.Table 布局灵活性不大,你只能遵循 table tr td 的格式。而div 你可以 div ul li 也可以 ol li 还可以 ul li ……但标准语法最好有序的写。
12.另外如果你不是javascript的高手,你可以不必去写ID,只用class就可以。当客户端程序员写完程序,需要调整时候,你可以在利用他的ID进行控制。
13.Table 中布局中,垃圾代码会很多,一些修饰的样式及布局的代码混合一起,很不利于直观。而Div 更能体现样式和结构相分离,结构的重构性强。
14.在几乎所有的浏览器上都可以使用。
15.以前一些非得通过图片转换实现的功能,现在只要用CSS就可以轻松实现,从而更快地下载页面。
16.使页面的字体变得更漂亮,更容易编排,使页面真正赏心悦目。
17.你可以轻松地控制页面的布局 。
18.你可以将许多网页的风格格式同时更新,不用再一页一页地更新了。你可以将站点上所有的网页风格都使用一个CSS文件进行控制,只要修改这个CSS文件中相应的行,那么整个站点的所有页面都会随之发生变动。

http://www.52css.com/article.asp?id=36

标签:

Crimson Editor

Crimson Editor is a professional source code editor for Windows.

This program is not only fast in loading time, but also small in size (so small that it can be copied in one floppy disk).

While it can serve as a good replacement for Notepad, it also offers many powerful features for programming languages such as HTML, C/C++, Perl and Java.

#
Syntax Highlighting for HTML, C/C++, Perl, Java, Matlab and LaTeX. Also, it can be extended for other programming languages based on custom syntax files.
- how to make custom syntax files...
#
Other features include undo/redo, user tools, macros, spell checker and more.
- see more crimson editor features..

http://www.crimsoneditor.com/

标签:

PSPad

PSPad - editor for developers for Microsoft Windows systems

The universal freeware editor, useful for people who:

* work with plain text - the editor has a wealth of formatting functions, including a spell checker
* create web pages - as a web authoring editor, PSPad contains many unique tools that save your time
* want to use a good IDE for their compiler - PSPad catches and parses compiler output, integrates external help files, compares versions and much more...

标签:

CSS水平滚动

http://www.365css.cn/post/286.html

CSS代码,没有使用table,但是在Firefox下不好用。
http://www.365tech.net/Web_Design_HTML_CSS/15935

http://www.365tech.net/Web_Design_Dreamweaver/22224

仅开放了水平滚动条,没有垂直滚动条。
http://web.rdxx.com/CSS/2008/12/51216279652.shtml

测试没有通过。
http://blog.ly539.net/article.asp?id=122

学习CSS网站
http://www.xxcss.com/html/4/0/542/1.htm

CSS DIV+Script,比较好
http://www.aa25.cn/238.shtml

http://www.aa25.cn/244.shtml

http://www.aa25.cn/395.shtml

CSS布局实例:仿苹果菜单的超酷滑动效果(提供下载CSS+JS),相当不错。
http://www.xxcss.com/layout/bencandy.php?fid=11&id=704

标签: ,

星期一, 一月 12, 2009

洗衣机

用了9年的洗衣机昨天出问题了,不排水。给西门子的售后打了电话,今天一早来人修理了。结果从排水管处拿出物件若干:
1元硬币1个
5角硬币2个
1分硬件2个
棉花若干(坏之前洗的是新拆的被)
其它未知细物若干

标签:

星期四, 一月 08, 2009

ESC打印机的控制命令

计算机能够完成数值计算、数据处理、图象设计、过程控制等工作都是在一种或多种计算机语言的指挥下进行的。同样,打印机各种部件的运行和动作,各种打印动作的实现、在各种介质上打印出图形和字符,也是由一套能为打印机所识别的语言(命令)来进行控制。通常将能完成上述功能的命令的集合成为打印机控制命令(Print Control Command)为了更好的熟知打印机控制命令,我们需先行了解打印机的数据处理流程。
二、打印机的控制命令
目前主流的打印机控制命令主要有以下三种:
  EPSON公司的ESC PK命令集
  HP公司的PCL命令集
  Adobe公司的PostScript(简称PS)命令集
ESC PK命令集是针式打印机(尤其是滚筒方式打印)领域事实上的工业标准;PCL命令集是中、低档激光打印机、喷墨机印机领域的工业标准;PS命令集则是高档排版、出版领域的应用标准。

1、名词解释

1)控制命令:对打印机进行各种处理和控制动作,并为打印机所识别的命令序列。
2)仿真;控制打印机按照某种控制命令进行工作,就称为这个控制命令的仿真。
3)驱动程序;转换文件成为某种特定控制命令描述的文档,并进行输出的程序。
注:驱动程序就是打印控制命令的形体表现,其本质就是按照某一控制命令的格式,将计算机的数据进行翻译和组织,并形成相应的字符和位图的序列送往打印机。

2、命令分类
打印机控制命令的种类可分为二大类:基本控制命令和扩充命令。

1) 基本命令(Basic Control Code)
基本命令其实就是ASCII码中规定的具有打印功能的控制命令,它的特点是均用一个ASCII码(一个字节)代表,使用比较方便。它的数值范围如下:
ASCII: 00H ~ 20H
2) 扩充命令(Extension Control Command)
基本命令仅提供标准和基本的控制功能。要实现字型大小、各种修饰功能、行与列间距控制、格式设定等较复杂的控制功能,就必须使用扩充命令。扩充命令一般由两个或两个以上的字节组成,其格式有如下几种形式:
Code CH
Code CH1[CH2]
Code CH1[CH2][Parm1 …Parm1]
Code CH1[CH2][Parm1 …Parm1]CH3
Code: 控制命令的引导代码
CH: 表示控制字符
Parm: 系列参数
例: 设定图象打印方式
ASCII码: ESC * m n1 n2
十进制码: 27 42 m n1 n2
十六进制码1B 2A m n1 n2
m: 图象方式
水平密度:60 DPI ~ 360DPI
垂直密度:60 DPI ~ 360DPI
每列点数:8点 ~ 48点
计算公式:列数=n1+n2*256
这里:“ESC“即为该控制命令的引导代码,而“*”和“m”为表示为图象命令的控制命令,“n1,n2”则为图象的系列参数。
3)命令格式类别
作为针式打印机的控制命令类别,有如下几种序列的表示方式:
* ESC序列
* FS序列
* SUB序列
* CEX 序列

3、命令系列

1)针式打印机
(1)ESC/P系列 (Epson)
(2)IBM系列 (IBM)
(3)OKI系列 (OKI)
(4)AR系列 (得实)
(5)PR系列 (南天)
2) 微型打印机
ESC/POS系列 (Epson)
Basic+ESC+GS+FS
3) 激光机
(1)PCL系列 (HP)
(2)ESC/PAGE (EPSON)
(3)Post Script (Adobe)
(4)GDI 方式

三、针式打印机控制命令分析

1、 ESC/P命令系列:
* 应用于滚筒方式打印
* Basic+ESC+FS
2、 AR命令系列:
* 应用于滚筒方式打印
* Basic+ESC+FS+SUB :ESC,FS与EPSON兼容,SUB为扩展中文打印
3、 IBM命令系列:
* 应用于滚筒方式打印
* Basic+ESC:ESC基本与EPSON兼容
4、 OKI命令系列:
* 应用于平推方式打印
* Basic+ESC+CEX:ESC为自定义系统,CEX为扩展中文打印
5、 PR命令系列:
* 应用于存折和证本的打印
* Basic+ESC+FS:ESC,FS为自定义系统(通用打印控制命令+存折控制+设备控制)

四、ESC/P控制命令分析
ESC/P 控制命令是EPSON公司制定的基本控制命令,它主要适应各种针式打印机和与之兼容的各种喷墨打印机,
并已成为事实上的滚筒针式打印机的应用标准。

1、 特征

1)唯一性:单一功能用单一控制码表示。
2)整体系统发展具有阶段性。
3)高版本完全包容低版本。
4)从一般打印机逐步推广到高端打印机,从针式推广到喷墨、激光打印机
5)与硬件的无关性,只考虑ESC/P版本即可。

2、结构
下图表示了ESC/P各个版本之间相互包含的关系。

3、命令功能分析
ESC/P 命令序列按其功能分类,可分为以下5个方面:

1)打印格式控制
2)英文打印命令
3)中文打印命令
4)图象打印命令
5)打印机控制命令

五、控制命令的输入方法
下面列出在各种程序语言中常用的输入控制命令的方法:

语言名称 函数或语句
BASIC CHR$(X)
FOXbase CHR(X)
C FPRINTF(prn,”%C,X)
PASCAL CHR(X)
FORTRAN CHAR(X)
汇编 MOV AL,X
INT 17H

打印机的控制命令也是根据市场发展和客户更高的需求,而与时俱进,不断发展的。就其技术发展可分为两个方面:控制命令本身的发展和命令应用方面的发展。

在控制命令本身的发展方面,EPSON的ESC PK命令集就是一个非常典型的事例,一方面在本身针打领域,由ESC P、ESC PK、ESC PK2 不断的提升控制和文字处理能力和水平。另一方面,又适时推出ESC Page 使其从针打领域向喷墨、激光打印机领域扩展。

在控制命令应用的发展方面,各生产厂家都在向:一种机型、多种控制命令仿真;的目标发展,以适应不同客户、不同应用的要求。这也是打印机控制命令在应用方面的发展方向。

对于打印机所实现的复杂控制功能而言,打印控制语言是基础。它直接关系到打印控制的实现和输出质量的优劣。因此增强对打印机控制命令的了解和掌握,无论是打印机的开发厂商还是用户,都是至关重要的。

代码 功能 代码 功能
LF 换行 ESC m 局部切割
CR 回车 ESC o 印章
ESC SP 设置右边界 ESC q 释放纸
ESC ! 设置打印方式 ESC r 选择打印颜色
ESC * 设置位映射方式 ESC z 设置或取消两页并行打印
ESC @ 初始化打印机 ESC BEL 蜂鸣器ON/OFF
ESC R 选择国际字符子集 ESC c5 禁止/使能面板开关
ESC d 打印及N行进纸 ESC c6 禁止/使能ON-LINE开关
ESC t 选择字符码表 ESC p 产生指定脉冲
ESC l 选择或取消倒过来的字符ESC V 发送打印机状态
ESC c0 选择打印页 ESC ~ LED ON/OFF
FF 打印送出单页 HT 水平TAB
RS 流水TAB ESC % 选择或取消用户自定义字符集
ESC 2 选择行间距为1/6英寸 ESC & 定义用户自定义字符集
ESC 3 设置行进为最小间距 ESC D 设置TAB位置
ESC < 返回行首 ESC i 全切割
ESC C 设置单页长度 ESC f 设单页等待时间
ESC F 选择或取消单页退纸区 ESC e 打印病退回N行
ESC J 以最小间距进行打印和进纸 ESC c4 选择打印纸及检测器(终止打印)
ESC K 以最小间距进行打印和退纸 ESC c3 选择纸结束信号输出
ESC U 选择或取消单向打印 ESC c1 选择行间距
中文模式下的命令
代码 功能 代码 功能
FS & 选择中文字符模式 FS – n 设置中文字符下划线模式开关
FS . 取消中文模式 FS ! n 选择中文字体

标签: , , ,

星期二, 一月 06, 2009

Windows XP读写并口

第一:并口、串口、和驱动这些东西与普通文件还真不太一样、
第二:写操作只要成功一般不拥塞
你的代码我改了一下
以下win2000+ vc6编译通过,执行成功,所有函数详见MSDN
CString strPrint;
HANDLE hPrint = CreateFile("LPT1",GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_FLAG_OVERLAPPED,//这里可不是普通的文件 NULL);

if( !hPrint)
return ;
//设置传输率等参数,想要通讯稳定以下的东西最好加上,参数视情况而定
SetupComm(hPrint,1024,1024);//设置缓冲区大小
DCB my_dcb;
my_dcb.BaudRate=CBR_300;//波特率300
my_dcb.ByteSize=8; //字节尺寸8
my_dcb.Parity=NOPARITY;//无奇偶校验
my_dcb.StopBits =ONESTOPBIT;//无停止位
SetCommState(hPrint,&my_dcb);

DWORD dwWritted = 0;
//控件写入
UpdateData(true);
strPrint =m_bb;
UpdateData(false);

strPrint += "\r\n";
int nLength = 0 ;
DWORD r =1;
nLength = strPrint.GetLength();

WriteFile(hPrint,strPrint.GetBuffer(nLength),nLength,&dwWritted,NULL);
CloseHandle(hPrint);
MessageBox("WRITE TO LPT1!") ;

http://topic.csdn.net/t/20031205/15/2531549.html

标签:

PortTalk - A Windows NT I/O Port Device Driver

A problem that plagues Windows NT/2000 and Windows XP, is it's strict control over I/O ports. Unlike Windows 95 & 98, Windows NT/2000/XP will cause an exception (Privileged Instruction) if an attempt is made to access a port that you are not privileged to talk too. Actually it's not Windows NT that does this, but any 386 or higher processor running in protected mode.

Accessing I/O Ports in protected mode is governed by two events, The I/O privilege level (IOPL) in the EFLAGS register and the I/O permission bit map of a Task State Segment (TSS).


Under Windows NT, there are only two I/O privilege levels used, level 0 & level 3. Usermode programs will run in privilege level 3, while device drivers and the kernel will run in privilege level 0, commonly referred to as ring 0. This allows the trusted operating system and drivers running in kernel mode to access the ports, while preventing less trusted usermode processes from touching the I/O ports and causing conflicts. All usermode programs should talk to a device driver which arbitrates access.

The I/O permission bitmap can be used to allow programs not privileged enough (I.e. usermode programs) the ability to access the I/O ports. When an I/O instruction is executed, the processor will first check if the task is privileged enough to access the ports. Should this be the case, the I/O instruction will be executed. However if the task is not allowed to do I/O, the processor will then check the I/O permission bitmap.

The I/O permission bitmap, as the name suggests uses a single bit to represent each I/O address. If the bit corresponding to a port is set, then the instruction will generate an exception however if the bit is clear then the I/O operation will proceed. This gives a means to allow certain processes to access certain ports. There is one I/O permission bitmap per task.

http://www.beyondlogic.org/porttalk/

标签: , , ,

用wxWidgets做界面

C++下做跨平台的GUI,MS用的广泛的有QT和wxWidgets。QT有开源版,但限制较多;wxWidgets各种小组件确实很多,但看了它的auidemo例子,才增强了使用的信心。

wxWidgets与MFC有太多的相似之处,看起来没有多大的使用难度。官方网站上也有一份介绍的文档。
一个wxWidgets版的“Hello world”程序也得费上几分钟才能编译成功,主要是在setting上卡壳。
* mswu/d依赖目录
* Not Using Precompiled Headers
* WIN32;_DEBUG;__WXMSW__;__WXDEBUG__;_WINDOWS;NOPCH
* wxmsw28ud_aui.lib wxmsw28ud_html.lib wxmsw28ud_adv.lib wxmsw28ud_core.lib wxbase28ud_xml.lib wxbase28ud.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexd.lib wxexpatd.lib winmm.lib comctl32.lib rpcrt4.lib wsock32.lib odbc32.lib

此文为引用,原始出处不详

标签:

[学习]Delphi控制并行端口位操作

并行端口简称并口,它有3个端口:数据端口、状态端口、控制端口,常用的并口为LPT1,它的3个端口的地址分别为:378H、379H和37AH。

  一、并口读写

  在汇编语言中,可以用 in、out 指令操作并口,而在Delphi中并没有相对应的函数、方法可对并口进行读写,幸运的是Delphi可以嵌入汇编程序,通过直接嵌入汇编指令 in、out 可方便地对并口进行读写。我们还可以通过调用 Windows API 函数或第三方提供的DLL、VXD来访问并口,但通过使用嵌入汇编的方法对并口进行读写更方便、快捷。

  使用下面的 ReadPort 函数和 WritePort 过程可以读写并口,参数 Port 为要操作的端口地址。

function ReadPort(Port:WORD):BYTE;

var

B:BYTE;

begin

ASM

MOV DX, Port;

IN AL, DX;

MOV B, AL;

END;

Result:=B;

end;

procedure WritePort(Port:WORD;ConByte:BYTE);

begin

ASM

MOV DX, Port;

MOV AL, ConByte;

OUT DX, AL;

END;

end;

二、位操作

  要按位来控制并口,可以先读取并口的数据,再进行位操作,最后再重新写入并口,就可以实现对并口的位的控制。

  逻辑运算符and对两个要操作的数执行按位的逻辑与运算:即中有1“与”1的结果为1,其它的0“与”1、1“与”0、0“与”0的结果都为0。

  逻辑运算符or对两个要操作的数执行按位的逻辑或运算:即只要相“或”的两位有一位是1,结果就为1;否则“或”的结果为0。


  使用and运算符可以对指定的位置0,例如:十六进制84H的二进制为:10000100,它的第三位为1,若要将第三位置为0,且其它位不变,可以使用:$84 and $FB = $80,80H的二进制值为10000000。

  使用or运算符可以对指定的位置1,例如:十六进制84H的第二位为0,若要将第二位置为1,且其它位不变,可以使用:$84 or $02 = $86,86H的二进制值为10000110。

  例子:

  1、将数据端口378H的D2位的电位设置为低,即置0:

B:=ReadPort($378);

B:=B and $FB;

WritePort($378,B);

  2、将数据端口378H的D2位的电位设置为高,即置1:

B:=ReadPort($378);

B:=B or $04;

WritePort($378,B);

  3、判断数据端口378H的D2位的电位高低:

B:=ReadPort($378);

if ((B and $04)=$04) then

//电位为高时的代码

else

//电位为低时的代码

或:

B:=ReadPort($378);

if ((B or $FB)=$FF) then

//电位为高时的代码

else

//电位为低时的代码

  三、具体实现

  下面的例子是控制并口的数据端口378H的各个位的电位高低。数据端口的8个位:D0~D7分别对应并行接口的2~9脚,关于并行接口其它的引脚的说明就查看相关资料,这里就不多说了。

  首先运行 Delphi,新建一个工程,按一下F12在Form1的单元文件Unit1中加入读写端口的代码:

function ReadPort(Port:WORD):BYTE;

procedure WritePort(Port:WORD;ConByte:BYTE);

function ReadPort(Port:WORD):BYTE;

var

B:BYTE;

begin

ASM

MOV DX, Port;

IN AL, DX;

MOV B, AL;

END;

Result:=B;

end;

procedure WritePort(Port:WORD;ConByte:BYTE);

begin

ASM

MOV DX, Port;

MOV AL, ConByte;

OUT DX, AL;

END;

end;


  添加8个 CheckBox 组件,修改它们的 Caption(标题)属性分别为 D0 到 D7 ,将它们按右到左进行排列好。

  双击 CheckBox1,在CheckBox1组件的OnClick(单击)事件中加入以下的程序代码:

procedure TForm1.CheckBox1Click(Sender: TObject);

var

b:BYTE;

begin

b:=0;

if CheckBox1.Checked then

b:=b or $01;

if CheckBox2.Checked then

b:=b or $02;

if CheckBox3.Checked then

b:=b or $04;

if CheckBox4.Checked then

b:=b or $08;

if CheckBox5.Checked then

b:=b or $10;

if CheckBox6.Checked then

b:=b or $20;

if CheckBox7.Checked then

b:=b or $40;

if CheckBox8.Checked then

b:=b or $80;

WritePort($378,b); //写数据端口

end;


  输入完成后,把CheckBox2到CheckBox8这7个CheckBox组件的OnClick事件设置为CheckBox1的OnClick事件:CheckBox1Click。

  此时编译运行程序,已经可以通过点击这8个CheckBox来控制LPT1的数据端口的各个位的电位高低了。

  下面再加入监控并口的数据端口状态的功能。

  在Form1中加入一个Timer组件:Timer1,修改它的Enabled属性为False,Interval属性为1。

  在Timer1的OnTimer事件中加入:

procedure TForm1.Timer1Timer(Sender: TObject);

var

B:BYTE;

begin

B:=ReadPort($378); //读数据端口

CheckBox1.Checked:=((B or $FE)=$FF);

CheckBox2.Checked:=((B or $FD)=$FF);

CheckBox3.Checked:=((B or $FB)=$FF);

CheckBox4.Checked:=((B or $F7)=$FF);

CheckBox5.Checked:=((B or $EF)=$FF);

CheckBox6.Checked:=((B or $DF)=$FF);

CheckBox7.Checked:=((B or $BF)=$FF);

CheckBox8.Checked:=((B or $7F)=$FF);

end;


  再加入一个CheckBox组件,修改的Caption属性为“监控并口”,并在它的OnClick事件中加入:

procedure TForm1.CheckBox9Click(Sender: TObject);

begin

Timer1.Enabled:=CheckBox9.Checked;

end;


  编译运行程序,点击“监控并口”,就可以监控并口LPT1数据端口378H的状态,并可以实时地修改它的状态。

  为了方便查看、验证数据端口378H的状态,我做了一个小小的并口测试电路,该电路使用了一个打印接口、8个LED(发光二极管)和8个1K的电阻,连接线路如图所示:




  按照电路图制作完成后,安装到电脑的并口上,运行编写好的程序就可以方便地查看数据端口378H的各个位的电位高低了。

  最后,我们再来做一个走马灯实验。

  先声明一个全局变量 tb:在“Form1:TForm1”的下面加上“tb:BYTE”:

var

Form1: TForm1;

tb:BYTE;

  再在Form1中加入一个Timer和一个CheckBox,修改Timer2的Enabled属性为False,修改Interval属性为300,双击Timer2,在它的OnTimer事件中加入:

procedure TForm1.Timer2Timer(Sender: TObject);

var

B:BYTE;

begin

if tb=0 then

tb:=1

else

tb:=tb * 2;

WritePort($378,tb);

B:=ReadPort($378);

CheckBox1.Checked:=((B or $FE)=$FF);

CheckBox2.Checked:=((B or $FD)=$FF);

CheckBox3.Checked:=((B or $FB)=$FF);

CheckBox4.Checked:=((B or $F7)=$FF);

CheckBox5.Checked:=((B or $EF)=$FF);

CheckBox6.Checked:=((B or $DF)=$FF);

CheckBox7.Checked:=((B or $BF)=$FF);

CheckBox8.Checked:=((B or $7F)=$FF);

end;

  修改CheckBox10的Caption属性为“走马灯演示”,再双击CheckBox10,在它OnClick事件中加入:

procedure TForm1.CheckBox10Click(Sender: TObject);

begin

Timer2.Enabled:=CheckBox10.Checked;

end;


  编译运行程序。




  点击“走马灯演示”,有没有看到“走马灯”的效果?通过修改Timer2的Interval可以调节速度,更多、更Cool的效果就看你的创意了。

  注意:以上嵌入汇编访问并口的方法只能在Win9X下使用,若要在WinNT/2K下访问并口应该使用 Windows API 函数或专门读写并口的DLL、VXD。

  以上程序在Win98+Delphi6.0下测试通过

http://www.yesky.com/20020801/1623061_1.shtml

标签: , ,

星期一, 一月 05, 2009

汉字编码标准

GB2312
范围: 0xA1A1 - 0xFEFE
汉字范围: 0xB0A1 - 0xF7FE

GBK
范围: 0x8140 - 0xFEFE

BIG5
范围: 0xA140 - 0xF9FE, 0xA1A1 - 0xF9FE

编码 第一个字节 第二个字节 第三个字节 第四个字节 GB2312 0xB0 - 0xF7 0xA0 - 0xFE GBK 0x81 - 0xFE 0x40 - 0xFE GB18030 的双字节 0x81 - 0xFE 0x40 - 0x7E, 0x80 - 0xFE GB18030 的四字节 0x81 - 0xFE 0x30 - 0x39 0x81 - 0xFE 0x30 - 0x39

GB2312:
GB2312码是中华人民共和国国家汉字信息交换用编码,全称《信息交换用汉字编码字符集--基本集》,由国家标准总局发布,1981年5月1日实施,通行于大陆。新加坡等地也使用此编码。

GB2312收录简化汉字及符号、字母、日文假名等共7445个图形字符,其中汉字占6763个。GB2312规定“对任意一个图形字符都采用两个字节表示,每个字节均采用七位编码表示”,习惯上称第一个字节为“高字节”,第二个字节为“低字节”。GB2312-80包含了大部分常用的一、二级汉字,和9区的符号。该字符集是几乎所有的中文系统和国际化的软件都支持的中文字符集,这也是最基本的中文字符集。其编码范围是高位0xa1-0xfe,低位也是0xa1-0xfe;汉字从0xb0a1开始,结束于0xf7fe。

GB2312将代码表分为94个区,对应第一字节(0xa1-0xfe);每个区94个位(0xa1-0xfe),对应第二字节,两个字节的值分别为区号值和位号值加32(2OH),因此也称为区位码。01-09区为符号、数字区,16-87区为汉字区(0xb0-0xf7),10-15区、88-94区是有待进一步标准化的空白区。GB2312将收录的汉字分成两级:第一级是常用汉字计3755个,置于16-55区,按汉语拼音字母/笔形顺序排列;第二级汉字是次常用汉字计3008个,置于56-87区,按部首/笔画顺序排列。故而GB2312最多能表示6763个汉字。

GB2312的编码范围为2121H-777EH,与ASCII有重叠,通行方法是将GB码两个字节的最高位置1以示区别。

BIG5:
每个字由两个字节组成,其第一字节编码范围为0xA1~0xF9,第二字节编码范围为0x40~0x7E与0xA1~0xFE,总计收入13868个字(包括5401个常用字、7652 个次常用字、7个扩充字、以及808个各式符号),其中可以大致划分为以下几个字区:

第一字节 第二字节 字区 制定 A1..A2 40..7E, A1..FE 各种符号区 1984 A3 40..7E, A1..BF 各种符号区 (包括标点符号、ASCII 全角符号、注音符号等) 1984 A3 E1 欧元符号 CP950 A4..C5 40..7E, A1..FE 常用字区 1984 C6 40..7E 常用字区 1984 C6 A1..FE 罕用符号区 倚天 C7 40..7E, A1..FE 罕用符号区 (包括日文、俄文等) 倚天 C8 40..7E, A1..D3 罕用符号区 (包括俄文、输入法特殊符号等) 倚天 C9..F8 40..7E, A1..FE 次常用字区 1984 F9 40..7E, A1..D5 次常用字区 1984 F9 D6..DC 七个扩充字 倚天 F9 DD..FE 格符号区 倚天

扩充字 BIG5 码 Unicode 码 BIG5_1984 的同义字 碁 0xF9D6 0x88CF 棋 0xF9D7 0x92B9 0xF9D8 0x7CA7 墙 0xF9D9 0x58BB 墙 恒 0xF9DA 0x6052 恒 妆 0xF9DB 0x7881 妆 娴 0xF9DC 0x5AFA 娴
GBK:

起源

GB2312-80 仅收汉字 6763 个,这大大少于现有汉字,随着时间推移及汉字文化的不断延伸推广,有些原来很少用的字,现在变成了常用字,例如:朱鎔基的“鎔”字,未收入 GB2312-80,现在大陆的报业出刊只得使用(金+容)、(金容)、(左金右容)等来表示,形式不一而同,这使得表示、存储、输入、处理都非常不方便,对于搜索引擎等软件的构造来说也不是好消息,而且这种表示没有统一标准。从我们对人民日报 98 年数据的处理过程中,得出这样的经验:回填外字最困难的就是如何得到这种表示方法的集合。

为了解决这些问题,以及配合 UNICODE 的实施,全国信息技术化技术委员会于 1995 年 12 月 1 日《汉字内码扩展规范》。GBK 向下与 GB2312 完全兼容,向上支持 ISO-10646 国际标准,在前者向后者过渡过程中起到的承上启下的作用。

GBK是GB2312-80的扩展,是向上兼容的。它包含了20902个汉字,其编码范围是0x8140-0xfefe,剔除高位0x80的字位。其所有字符都可以一对一映射到Unicode2.0。

字集

GBK 共收入21886个汉字和图形符号,包括:


* GB2312 中的全部汉字、非汉字符号。
* BIG5 中的全部汉字。
* 与 ISO-10646 相应的国家标准 GB13000 中的其它 CJK 汉字,以上合计 20902 个汉字。
* 其它汉字、部首、符号,共计 984 个。


GBK 编码区分三部分:


* 汉字区 包括

o GBK/2:OXBOA1-F7FE, 收录 GB2312 汉字 6763 个,按原序排列;
o GBK/3:OX8140-AOFE,收录 CJK 汉字 6080 个;
o GBK/4:OXAA40-FEAO,收录 CJK 汉字和增补的汉字 8160 个。

* 图形符号区 包括

o GBK/1:OXA1A1-A9FE,除 GB2312 的符号外,还增补了其它符号
o GBK/5:OXA840-A9AO,扩除非汉字区。

* 用户自定义区
o 即 GBK 区域中的空白区,用户可以自己定义字符。

編碼 GBK 亦采用双字节表示,总体编码范围为 8140-FEFE 之间,首字节在 81-FE 之间,尾字节在 40-FE 之间,剔除 XX7F 一条线。

微软公司自 Windows 95 简体中文版开始支持 GBK 代码,標準叫法是 Windows codepage 936,也叫做 GBK(國標擴展),它也是 8-bit 的變長編碼。據我所知 GBK 從來沒成爲過正式的國家標準,只不過因爲 Windows 的普及,它已經成爲事實上的標準了。但目前的多数搜索引擎都不能很好地支持 GBK 汉字。
from: http://www.unihan.com.cn/cjk/ana17.htm

由前电子部科技质量司和国家技术监督局标准化司于1995年12月颁布的指导性规范。(GBK的 K是“扩展”的汉语拼音第一个字母)
GBK作为非 UCS ( ISO/IEC 10646 ) 体系的代码页,适用于中文信息的处理、交换、存储、传输、显现、输入和输出。
GBK与国家标准 GB 2312-80 信息处理交换码所对应的、事实上的内码标准兼容;同时,在字汇一级支持 ISO/IEC 10646-1 和GB 13000-1 的全部中日韩 (CJK) 汉字(20902字)。GBK除了包含GB2312-80 和GB12345-90中包括的全部非汉字符号外,还涵盖我国台湾地区中文标准交换码TCA-CNS 11643 -92 ( 与其对应的内码为Big5;以下用Big5泛指二者。) 中的绝大多数符号。
从Windows95中文版起,Windows NT 3.51, 4.0, Windows2000, Windows CE, Linux已经全面支持GBK,起到了从GB 2312向Unicode过渡的承上启下的重要作用。
GBK尽管在字汇一级支持CJK,是目前最大的Code Page ;它在体系结构、代码空间上,仍然是完全不同于ISO/IEC 10646 和Unicode的。
GB18030:

GB18030-2000(GBK2K)在GBK的基础上进一步扩展了汉字,增加了藏、蒙等少数民族的字形。GBK2K从根本上解决了字位不够,字形不足的问题。它有几个特点:
它并没有确定所有的字形,只是规定了编码范围,留待以后扩充。

编码是变长的,其二字节部分与GBK兼容;四字节部分是扩充的字形、字位,其编码范围是首字节0x81-0xfe、二字节0x30-0x39、三字节0x81-0xfe、四字节0x30-0x39。
它的推广是分阶段的,首先要求实现的是能够完全映射到Unicode3.0标准的所有字形。

它是国家标准,是强制性的。

http://www.yuanma.org/data/2006/0802/article_1289.htm

标签:

关于GB18030汉字编码标准集

清华大学经济管理硕士,信息产业部电子工业标准化研究所副所长,全国信息技术标准化技术委员会副秘书长,承担多项国家级项目的标准化工作,并曾出版多本著述。

  国家标准GB18030-2000《信息交换用汉字编码字符集基本集的扩充》是我国继GB2312-1980和GB13000-1993之后最重要的汉字编码标准,是未来我国计算机系统必须遵循的基础性标准之一。为保证该标准顺利贯彻执行,国家质监总局将在9月1日起首先对影响广泛的计算机操作系统进行执法检查,凡不符合该标准的产品,视为不合格产品。为此,全国信息技术标准化技术委员会将根据有关标准和规范,组织对市场上主要的操作系统产品进行标准符合性检测。

http://tech.sina.com.cn/s/2001-07-26/1850.html

标签:

Javascript实现的取中文拼音首字母,提供了多音字的选择。

作者:梅雪香

http://www.iwms.net/n2066c17.aspx


Javascript实现的取中文拼音首字母,提供了多音字的选择。

标签:

星期日, 一月 04, 2009

FlexEdit

FlexEdit从2006年开始开发,当初只是想写一个自己的编辑器,后来放到我的网站xuyibo.org上,很多人下载使用,这样不断的工作之余的更新直到现在。这个软件是我目前倾注时间和精力最多的软件,许多功能都是经历了n个失眠夜晚的思考和m次构建完成的。

FlexEdit目前支持2000/XP/2003系统(Vista没有测试),几乎支持当前所有流行语言的高亮显示及符号解析功能,软件还内嵌了文件浏览窗口和DOS命令行,软件还保存了文件夹前进后退历史记录,FlexEdit没有工程的概念。

http://www.flexedit.org/

标签: ,

CruiseControl

CruiseControl is both a continuous integration tool and an extensible framework for creating a custom continuous build process. It includes dozens of plugins for a variety of source controls, build technologies, and notifications schemes including email and instant messaging. A web interface provides details of the current and previous builds. And the standard CruiseControl distribution is augmented through a rich selection of 3rd Party Tools.

CruiseControl is written in Java but is used on a wide variety of projects. There are builders supplied for Ant, NAnt, Maven, Phing, Rake, and Xcode, and the catch-all exec builder that can be used with any command-line tool or script.

CruiseControl is open source software and is developed and maintained by a group of dedicated volunteers. CruiseControl is distributed under a BSD-style license.

标签: , ,

无题

十八十九明媚,
廿八廿九娇贵,
三八三九雍容,
从此一辈一辈。

标签:

辽ICP备05003652号
流风洄雪听天籁,轻云蔽日看落花

Powered by Blogger