///////Begin   Source   
  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   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   }   
  ///////End   Source   
    
  ///////Begin   Demo   
  procedure   TForm1.Button1Click(Sender:   TObject);   
  begin   
      Memo1.clear;
      Memo2.clear;
  end;   
    
  procedure   TForm1.Button2Click(Sender:   TObject);   
  begin   
      Memo2.Text   :=   GBTextToStr(Memo1.Text);   
  end;   
  ///////End   Demo
这是一个全角转半角的代码,可是中间我有的代码是要半角转全角的,请问有办法吗?麻烦大家了,只有20分,还请大家帮个忙