声明如下记录类型。
TRecLaw=packed record
   sj2:string[8];
   sj3:string[8];
   bm:widestring;
   nr:widestring;
end;
导出到自定义文件中:
我的程序保存不了记录中声明的bm和内容,难道不能用widestring?我的内容中要保存大文本,会超过255个字符的,不能声明成nr:string[255],各位给想个办法了。

解决方案 »

  1.   

    试试用ClientDateSet去保存文件呢?
      

  2.   

    try bm: [0..size-1] of widechar;
    size可以足够的大。
    widestring跟string一样是引用类型,其实是个指针,本身不具备持久化能力,要保存其derefence后的内容;
    string[9]是shortstring,值类型的了,跟string或者widestring不一样,可以直接保存的。
      

  3.   

    bm: [0..size-1] of widechar;
    有这样声明的吗?
      

  4.   

    to haipin(今天你Delphi8了吗?) ( ) 信誉:99 
    <<bm: [0..size-1] of widechar;
    <<有这样声明的吗?忘记加array关键字了,bm: array[0..size-1]  of widechar;
    这几天被7x个护士mm围殴脑子有点不大好。
      

  5.   

    类型文件不支持的
    用TStringList可以变通实现的定义好访问方法就可以   sj2:string[8]; TStringList.Strings[N*4+1]
       sj3:string[8]; TStringList.Strings[N*4+2]
       bm:widestring; TStringList.Strings[N*4+3]
       nr:widestring; TStringList.Strings[N*4+4]呵呵N从0开始就是了
      

  6.   

    blazingfire(烈焰)(对.net极度憎恨中....) 
    你的废话真多
      

  7.   

    TO:cjf0426(cjf0426)
    你TMD少在这里放闲屁,不解决问题,要骂我,自己开帖子去!
      

  8.   

    解决问题是关键,大家别抄。现在我已经准备用上面的自定义格式
    TRecLaw=packed record
       sj2:string[8];
       sj3:string[8];
       bm:string[255];
    end;(nr)内容因为自长,不便于用字符串声明,所以准备用内存流的方式写文本,这样可能自定义文件不是纯记录的形式,要记录流的位置和长度。同时还涉及到内存流的压缩和加密问题。思路还没有理清,有做过的给个想法。
      

  9.   

    楼主终于明白了,我的良苦用心了,就应该用流去作!
    压缩可以用D自己的Zlib来作,加密就自己定义一下了。如果你的压缩安排方式得当的话,
    那么加密都可以不用。