var S:String;  
对S赋值后,S[0]有没有东西(是不是存放S的长度).程序中可不可以用S[0],怎么用?
举个例子说明一下.

解决方案 »

  1.   

    s:='123';
    len:=pinteger(integer(s)-4)^;//字符串的长度
      

  2.   

    s[0]放着字符串的长度
    用Length(s)来取
    s[0]不可用 第一个字符用s[1]来表示
      

  3.   

    pinteger(integer(s)-8)^;//这是引用计数的内容
      

  4.   

    s[0]不可以直接用,,如果想要自己看的话
    var l:integer;
    l:=integer(
                      (Byte((Pointer(integer(@str[1])-8))^))
                    + (Byte((Pointer(integer(@str[1])-7))^))
                    + (Byte((Pointer(integer(@str[1])-6))^))
                    + (Byte((Pointer(integer(@str[1])-5))^))
                    + (Byte((Pointer(integer(@str[1])-4))^))
                    + (Byte((Pointer(integer(@str[1])-3))^))
                    + (Byte((Pointer(integer(@str[1])-2))^))
                    + (Byte((Pointer(integer(@str[1])-1))^))
               )不过得出来的话比实际长度大1.。。