小小程序数汉字

Author: 栊淮 Date: 1997-01-01

  我们知道一个汉字分为两个字节,前一个字节为汉字的区码,区码的ASCII码是从160开始的,而从160到175的15个区内是些特殊符号,所以汉字的区码真正位置是从176开始的,而汉字后一个字节为位码,位码是从160开始的。我的程序就是利用这点设计的。程序是用Turbo Pascal 6.0编辑的。可以用Turbo Pascal 6.0所带的TPC编译成.EXE文件。在运行本程序前请先运行汉字系统(如UCDOS、天汇、中国龙、2.13等)。
  Program Number:
  Var   {变量说明:}
  IOR,I:Integer;{IOR是判断程序读文件是否成功的标志,I是循环控制变量}
  F:Text;{F是文件变量}
  St,Line:String;{St是用户输入文件名的字符串,Line是程序读文件时的字符串变量}
  Character:Word;{Character是文件中汉字的计数器}
  BEGIN   
  Repeat      
  Write(’请你输入目标文件(不能使用通配符):’);
  Readln(St);      
  Assign(F,St);      
  Reset(F);      
  IOR:=IOResult   
  Until IOR=0;   
  Charater:=0;   
  While Not Eof(F) Do
  Begin         
  Readln(F,Line);         
  I:=0;            
  Repeat               
  Inc(I);  
  IF (Ord(Line[I])>=176) and (Ord(Line[I+1])>=160) then                   
  Begin
  Inc(Character);
  Inc(I)
  End               
  Else IF (Ord(Line[I])>=160) and (Ord(Line[I+1])
  >=160) then Inc(I)
  Until I>=length(Line)
  End   
  Close(F);   
  Writeln(St,’文件总共有汉字:’,Character);   
  Readln
  END