procedure TForm1.Button1Click(Sender: TObject);
var
  i,j,k:Integer;
begin
k:=0;
for i:=$80 to $ff do
  for j:=$80 to $ff do
  begin
    k:=k+1 ;
    memo1.Lines.Add(char(i)+char(j));
  end;
edit1.text:=inttostr(k);
end;

解决方案 »

  1.   

    改了一下.
    这样可能更准确一点吧.
    procedure TForm1.Button1Click(Sender: TObject);
      function IsHz(Source: string): Bool;
      begin
        result := ((Word(Source[1]) shl 8 + Word(Source[2])) >= $B0A1) and
          ((Word(Source[1]) shl 8 + Word(Source[2])) <= $D7F9)
      end;var
      i,j,k:Integer;
      tmp: string;
    begin
    k:=0;
    for i:=$80 to $ff do
      for j:=$80 to $ff do
      begin    //16384
        tmp:= Char(i)+ CHar(j);
        if ishz(tmp) then
        begin
          memo1.Lines.Add(tmp);
          k:= k+1;
        end;
      end;
    edit1.text:=inttostr(k);
    end;
      

  2.   

    我参考GBK编码说明,觉得应该如下,才能取出所有汉字!
    procedure TForm1.Button5Click(Sender: TObject);
    var
      i,j,k:Integer;
    begin
    k:=0;
    for i:=$81 to $fe do
      for j:=$40 to $fe do
      begin
        k:=k+1 ;
        memo1.Lines.Add(char(i)+char(j));
      end;
    edit1.text:=inttostr(k);
    end;
      

  3.   

    //----------------------
    回复人: smilelhh(blue) ( ) 信
    你测试一下不就得了,
    用你的方法有
    24000个,而且大多数我不认识! 呵呵用我的方法有
    5081个,每个我都认识.看来我的方法是对的呀.
    //----------------------我认为foreveryouth() 是对的。smilelhh(blue)不是很正确,因为他有很多汉字都找不到如GBK中的“乜、嘢、啱、咁、攞、嫐、滘”等都没有