用Delphi编写字数统计程序

Author: 李宏秋 Date: 2000年 第22期

  我们都知道,Word97/2000里有“字数统计”的功能,但它的“字数统计”功能有一个缺陷:它会把全角符号都视为汉字处理,结果统计的汉字数总是大于实际的汉字数,针对这个缺陷,本人编写了这个程序,此程序不同于1997年《电脑报》中的一篇查汉字的文章:第一,那个程序是Pascal编写的;第二,那个程序不能识别GBK大字符集的汉字,比如“镕”等等汉字它都视而不见。方法如下:
  首先进入Delphi主界面,选择“File/New Application”,在程序设计窗体上建立一个Button控件、一个Memo控件和一个Label控件,分别取名为“Button1”、“Memo1”和“Label1”,然后双击“Button1”进入“Button1”的“onlick”事件设置窗口,对应的代码如下:
  procedure TForm1.Button1Click(Sender: TObject);
  var
  Character,i:integer;
  Str:string;
  begin
  i:=1;
  Character:=0;
   tr:=Memo1.lines.text;
  If Length(Str)>0 Then
  Repeat
  if(ord(Str[i])>=129) and (ord(Str[i])<=254 )and (ord(Str[i+1])>=64) and (ord(Str[i+1])<=254)then
  Begin
  If (ord(Str[i])>=161) and (ord(Str[i])<=169) Then
  i:=i+2
  Else
  Begin
  i:=i+2;
  Character:=Character+1;
  end;
  end
  Else
  i:=i+1;
  Until i>=length(Str);
  Label1.caption:=′共有 ′+IntToStr(Character)+′ 个汉字′;end;
  按F9执行程序,运行成功后,在Memo1中输入一些汉字和全角符号以及GBK大字符集中的汉字,试验一下程序的可靠性。这样以后就可以安心地写文章,而再也不用担心字数不够了。