在文件流中声明一个 TPersonRec  记录
如下:
    TPersonRec = packed record
    id:integer;
    lf961_bz:integer;
    Gps:string;
    Multi:string[255];
    Spectrum:string;
    Ps_test:string;
问题在于为什么生命STRING类型时只能用用如Multi:string[255];而且不能超过255,否则出错,有办法解决吗,谢谢,因为这样可以使我程序简化很多,谢谢,
如果只用STRING,而没有写[ ],写不进去。

解决方案 »

  1.   

    Multi:array [0..1024] of char;
      

  2.   

    string[] 是shortstring类型。最大只能255个字节。
    ansistring(或者缺省的string)是对象类型,直接写入文件是写的指针。
    可以使用 genphone_ru的方法。
      

  3.   

    对string变量赋值时用这种方法可以超过255:
    str:='sdlfkjdskfjsldjflsjflsjdf;sldfj'+'sdlkflsjfs'+......//随便加,只是每加一次不要超过255
      

  4.   

    cg1120(代码最优化-§新年祝福你,好运伴着你§) ( ) 信誉:130 你好,你的方法我也想,可是怕很麻烦,因为我每次读入数据流的 数据量没办法确定,而且比较大,可能有4000左右,也就是要很多列,有的列可能很少有数据读入,,而且读出时怕也会容易出问题。windindance(风舞轻扬) 
    你的方法,我不懂怎么用,谢谢,能指点吗,
      

  5.   

    就是让你把string[255]改成AnsiString类型
      

  6.   

    cg1120的方法,最终生成的字符串仍然是ansistring类型的,不能直接保存。Multi:array [0..1024] of char;s :string;
    s := '大于255字节,小于1024字节的字符串';
    strcpy(Multim, PChar(s));