setlength(tempstr,6);
FileStream.ReadBuffer(Pointer(tempSrt)^,6);

解决方案 »

  1.   

    tempstr:array[0..10] of char;
      

  2.   

    楼上的几位兄弟,为什么要用指针??
    readBuffer的参数不是var么,delphi中,var参数就是可以传递任何类型的变量啊??
      

  3.   

    i see;
    那我用setlength设置长度后,并没有分配实际内存?
    还用我用你的方法读出数据后和我原来保存的不正确;
    MyStr:='Hellow';
    FileStream1.Create(MyFile,fmCreate);
    FileStream1.writebuffer(MyStr,6);
    读出来以后成了奇怪的字! 
      

  4.   

    是不是写入的时候也要用pointer(MyStr)^
      

  5.   

    对,写入的时候也要这样,Setlength就分配了内存了.
      

  6.   

    既然已经分配了内存,为什么还要作无类型指针的转换?而且是无类型指针所指变量接受读入的字符?为什么直接用 MyStr 就不行呢?
      

  7.   

    还有,我刚试了直接用Pointer(MyStr)也可以,为什么会这样?
      

  8.   

    Mystr是字符串类型的,Delphi中的String的内存和PChar不同,如果直接把MyStr传递过去,就不对,所以要转换成一个Pointer传过去,这样,才能正确的读取.
      

  9.   

    to:kxy(手举穿肠毒药,怀抱刮骨钢刀)?
    在吗?