现在有文件格式是这样滴   29 00 00 08 01 00 1F FF 00 00 00 13 51 00 13 15 03 99 19 
读取的时候BlockRead( F,Buf, Count );
buf:array[0..200] of string;
这样读取出来的buf[0]='2'?
           还是buf[0]='29'?
内部是如何读取的啊?

解决方案 »

  1.   

    buf:array[0..200] of byte or
    buf:array[0..200] of ansicharBlockRead(F,buf,SizeOf(buf));
      

  2.   

    byte 或者AnsiChar就是一个字节,故而HEX 29
      

  3.   

    1L正解
    在内存中
    ff表示一个字节
      

  4.   

    您好,再问一下设动态数组 calling:array of string;         calling:=calling+buf_toc[22+i];
             calling:=calling+copy(buf_toc[23+j],1,1);
    提示不兼容,问题出在哪啊?buf_toc:array[0..200] of ansichar
    char本身就是字符啊,为什么不可以赋给字符串呢?
      

  5.   

    您好,再问一下设动态数组 calling:array of string;  calling:=calling+buf_toc[22+i];
      calling:=calling+copy(buf_toc[23+j],1,1);
    提示不兼容,问题出在哪啊?buf_toc:array[0..200] of ansichar
    char本身就是字符啊,为什么不可以赋给字符串呢?
      

  6.   

    您好,再问一下设动态数组 calling:array of string;  calling:=calling+buf_toc[22+i];
      calling:=calling+copy(buf_toc[23+j],1,1);String本身就是字符串,还要Array? buf_toc[0..200] of char;
    calling :string;
    如果buf_toc是字符数组,那么buf_toc[22+i]就是一个字符,可以和string相加的了。
    calling :=callint+buf_toc[22+i];
    calling :=calling+buf_toc[23+j];
      

  7.   

    a:='testchar';
    a[1]是字符,而a是字符串,懂了?
      

  8.   

    那如何实现我想要的将读取的字符赋值给string的功能呢?谢了,给您追加分
      

  9.   

    赋值方法有很多用move或者strcopy都可以
    move(b[0],a[1],length);
      

  10.   

    b是数组,a是字符串
    赋值之前先setlength(a,数组长度)