var
i:integer;
TempCh:PChar;
TempStr:String;
begin
  TempStr:= '';
  TempStr:= PChar(Copy(Edit.Text,2,1));
     Case TempStr Of
       0: TempStr:= TempStr + 'A';
       1: TempStr:= TempStr + 'B';
       2: TempStr:= TempStr + 'C';
       3: TempStr:= TempStr + 'D';
       4: TempStr:= TempStr + 'E';
       5: TempStr:= TempStr + 'F';
       6: TempStr:= TempStr + 'G';
       7: TempStr:= TempStr + 'H';
       8: TempStr:= TempStr + 'I';
       9: TempStr:= TempStr + 'J';
     End;
   EditRe.Text:= TempStr;
end;提示说需要一个序列类型……我想上面的程序大家一看就知道我想干什么了:把Edit.Text里的数字逐一取出,以0=A,1=B,2=C……这样的方式转换后赋值给EditRe.Text希望大家指点! 哦,对了,这新年了,大家新年快乐,万事如意!

解决方案 »

  1.   

    用ASCII码来解决,好像不用Case也行,代码还简单些。
      

  2.   

    看看这样行不行:
    EditRe.Text := char(ord(Edit1.Text[2])+17);
      

  3.   

    恩,谢谢楼上,但是你的方法应该是不行的因为从copy得到的是字符串哦,而不是一个整型的数哦还有其他办法么?
      

  4.   

    case只能操纵有序类型何况你取得的数据本身就是整数型的不是么
    case StrToIntDef(TempStr[1], 0) of
    ....
    end;
      

  5.   

    procedure TForm1.Button2Click(Sender: TObject);
    var
    str:string;
    i:integer;
    begin
        str :=Edit.Text;
        for i:=1 to length(str) do
        begin
           str[i]:=chr(64+StrToInt(str[i]))
        end;
        EditRe.Text:=str;
    end;
      

  6.   

    case只能操纵有序类型何况你取得的数据本身就是整数型的不是么
    ====================
    这是不对的,因为从copy得到的不是整型,而是字符串,或者叫PAnsiChar类型的 gemouzhi(gemouzhi) :你的方法这么简单,行的!呵呵~~只是有一点不明白,str你申明成string,后面使用是str[i]成数组了,难道动态数组应该是这样用的?我一直没有弄明白这动态数组怎么用,能否解释一下呢?
      

  7.   

    你Copy的也就是一个字符,用我的代码是可行的。
      

  8.   

    恩,是的……不过还是没有弄懂那个Edit.text[x] 这是什么意思啊
      

  9.   

    var
    i:integer;
    TempStr:String;
    begin
      TempStr:= '';
      for i:=1 to length(Edit1.Text) do
      begin
         Case StrToInt(Edit1.Text[i]) Of
           0: TempStr:= TempStr + '0=A,';
           1: TempStr:= TempStr + '1=B,';
           2: TempStr:= TempStr + '2=C,';
           3: TempStr:= TempStr + '3=D,';
           4: TempStr:= TempStr + '4=E,';
           5: TempStr:= TempStr + '5=F,';
           6: TempStr:= TempStr + '6=G,';
           7: TempStr:= TempStr + '7=H,';
           8: TempStr:= TempStr + '8=I,';
           9: TempStr:= TempStr + '9=J,';
         End;
      end;
      Edit2.Text:=TempStr;
    end;