while not (S[t] in ['0'..'9','A'..'F','a'..'f']) doif (t+1>Length(S))or(not (S[t+1] in ['0'..'9','A'..'F','a'..'f'])) then
    ts:='$'+S[t]谢谢

解决方案 »

  1.   

    t是integer类型;
    s[t]是char或string类型数组;
    ['0'..'9','A'..'F','a'..'f'])集合类弄,其值是字符类;
    s、ts是string类型;
    第一句:是while循环语句,只要s[t]不是['0'..'9','A'..'F','a'..'f'])指定的字符中之一,执行if语句;
    第二句:是if条件语句,包含二个条件:
    1、字符S长度小于T+1
    2、数组s[t+1]的值是['0'..'9','A'..'F','a'..'f'])集合中指定的字符 
    当上述二外条件中,有一个为真时,执行第三句。
    第三句:
    第三名:将字符$和s[t]数组中的字符,赋值给ts.
     
      

  2.   

    1:s是字符串,语句的目的是判断字符串是否16进制数的字符串。即要求每个字符都在0-9和a-f之间
    2:这个语句的t+1>Length(S)应该是判断是否到了字符串的末尾,
      (not (S[t+1] in ['0'..'9','A'..'F','a'..'f']))这个是判断是否已经到了一个16进制的数的末尾,即后面已经不是16进制数的字符了
      ts:='$'+S[t]这个语句是给一个16进制数的字符串加上$符号,准备做strtoint处理,因为一个整型数如果前面有$表示这个数是16进制数PS:BS蛋贴