在BCB中如何实现DELPHI的Lengh( )函数?
要求不使用sizeof,来判断,我这里是用来判断TIDByte类型的。
在DELPHI中可以用length判断,而BCB中就不知道怎么做了。

解决方案 »

  1.   

    我是用来判断indy 10中的udp server接收数据的AData
    它是一个TIdBytes类型的,DELPHI中可用Length( )判断.
    但是在Bcb中就没有Length这个,如果用sizeof,则返回的长度永远是4
      

  2.   

    TIdBytes是数组么,如果是的话用High(X)-Low(X)也可以哦
      

  3.   

    Delphi的Length()对应BCB中的String的Length()方法。如:
    Delphi中:
    var
        strTemp: String;
        nLen: integer;
    begin
        nLen := Length(strTemp);
    end;C++Builder中:
    String strTemp;
    int nLen = strTemp.Length();
      

  4.   

    妖哥看了顶楼不看一楼^_^Delphi的IdUDPServer的OnUDPRead里面判断长度是用AData.Size
    BCB(不应该叫"B"CB了)的TIdBytes是不是也有TIdBytes.Size什么的哦
      

  5.   

    5楼说的不错,我不是要判断字串.而是TIdBytes这个
    大概相当一个数组,在DELPHI下用Length()判断
    可以得到正确长度,而用sizeof则是长度为4
    在indy 9中AData是TStream类型的,
    而Indy10中是TIdBytes,而且AData没有Size这个成员.
      

  6.   

    String strTemp;
    int nLen = strTemp.Length();