有谁能知道,将一个字符串中的所有半角字符,全部转换成全角字符,能解决的,立刻给分,决不食言

解决方案 »

  1.   

    up
    正好 看见一篇文章http://www.topdelphi.net/bbs/dispbbs.asp?boardid=1&id=5361
    但是我不会使用
      

  2.   

    const
      cCharCn: array[#32 .. #126] of string[2] =
    ({ }'   ',{!}' ! ',{"}' " ',{#}' # ',{ }' $ ',{%}' % ',{&}' & ',{'}' ' ',{(}'(',
    {)}')',{*}' * ',{+}'+',{,}',',{-}' - ',{.}' 。 ',{/}' / ',{0}' 0 ',{1}' 1 ',
    {2}' 2 ',{3}' 3 ',{4}' 4 ',{5}' 5 ',{6}' 6 ',{7}' 7 ',{8}' 8 ',{9}' 9 ',{:}':',
    {;}';',{<}' < ',{=}' = ',{>}' > ',{?}' ? ',{@}' @ ',{A}' A ',{B}' B ',{C}' C ',
    {D}' D ',{E}' E ',{F}' F ',{G}' G ',{H}' H ',{I}' I ',{J}' J ',{K}' K ',{L}' L ',{M}' M ',{N}' N ',{O}' O ',{P}' P ',{Q}' Q ',{R}' R ',{S}' S ',{T}' T ',{U}' U ',{V}' V ',{W}' W ',{X}' X ',{Y}' Y ',{Z}' Z ',{[}' [ ',{\}' \ ',{]}' ] ',{^}' ^ ',{_}' _ ',{`}' ` ',{a}' a ',{b}' b ',{c}' c ',{d}' d ',{e}' e ',{f}' f ',{g}' g ',{h}' h ',{i}' i ',{j}' j ',{k}' k ',{l}' l ',{m}' m ',{n}' n ',{o}' o ',{p}' p ',{q}' q ',{r}' r ',{s}' s ',{t}' t ',{u}' u ',{v}' v ',{w}' w ',{x}' x ',{y}' y ',{z}' z ',{{}' { ',{|}' | ',{ }' } ',{~}' ~ ');function StrToGBText(mStr: string): string; {  返回字符串转换成全角字符串  }
    var
      I: Integer;
    begin
      Result := '';
      for I := 1 to Length(mStr) do
        case mStr[I] of
          #32 .. #126: Result := Result + cCharCn[mStr[I]];
        else Result := Result + mStr[I];
        end;
    end; { StrToGBText }function GBTextToStr(mText: string): string; {  返回字符串转换成半角字符串  }
    var
      I: Integer;
      J: Char;
      S: string;
    begin
      Result := '';
      for I := 1 to Length(WideString(mText)) do begin
        S := WideString(mText)[I];
        if Length(S) > 1 then for J := #32 to #126 do
          if cCharCn[J] = S then begin
            S := J;
            Break;
          end;
        Result := Result + S;
      end;
    end; { GBTextToStr }
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      Memo1.Text := StrToGBText(Memo2.Text);
    end;procedure TForm1.Button2Click(Sender: TObject);
    begin
      Memo2.Text := GBTextToStr(Memo1.Text);
    end;