寫一個數據庫表内容簡轉繁的函數!高手指點

解决方案 »

  1.   

    function SToT(SStr: string): string;
    var
      Str1, TStr: string;
      i: Integer;
      Flag: Boolean;
    begin
      Flag := false;
      Str1 := '';
      TStr := '';
      Result := '';
      if Not tbST.Active then
        tbST.Open;
      if Length(SStr)>0 then
      begin
        for i := 1 to Length(SStr)  do
        begin
          if flag then
            Flag := false
          else begin
            if IsDBCSLeadByte(byte(SStr[i])) then
            begin
              Str1 := SStr[i] + SStr[i+1];
                if tbST.Locate('S', Str1,[]) then
                begin
                  TStr := tbST.FieldByName('T').asstring;//
                end else
                  TStr := Str1;
                Result := Result + TStr;
                Flag := true;
              end
              else begin
                Result := Result + SStr[i];
              end;
            end;
          end;
        end;
    end;
      

  2.   

    QQ群:7568683(delphi专题研讨会)
          8222213(蹂躏Delphi)
    等上面的共享目录上都有代码,不过是Delphi代码,暂时未转成存储过程。
      

  3.   

    群共享上还附Demo,不过也可以下载http://iemis.vicp.net/GB2BIG5.rar
    为防止病毒,使用前请自己编译。
      

  4.   

    先取得国标码的简繁体2000多个汉字,组成一张表
    然后用IsDBCSLeadByte来判断是否要转换,然后从表中取得对应的简/繁体