type
 TMailRec=packed record
   Subject:String[100];
   body:XX//这是我邮件的正文,设为什么数据类型呢?
   fujian:XX//这是我邮件的附件,设为什么数据类型呢?
 end;body和fujian各自设为什么数据类型呢?因为我不知道body和fujian的大小,我该怎么读取它呢?

解决方案 »

  1.   

    任何类型都可以,如String,TStream,Array of Byte/Char等。取决于它们的方便程度————————————————————————————————————
    宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
    ————————————————————————————————————
      

  2.   

    因为我不知道body和fujian的大小,我该怎么读取它呢?
    因为我不知道body和fujian的大小,我该怎么读取它呢?
    因为我不知道body和fujian的大小,我该怎么读取它呢?
      

  3.   

    mm:=TMemoryStream.Create;
    memo1.Lines.SaveToStream(mm);
    mailRec.body:=mm;//MailRec是我在前面声明的Record类型
    MailStream.AppendRec(MailRec);//AppendRec是自己写的函数,函数如下
     function TRecordStream.AppendRec(Const Rec):Longint;//TRecord是我从TFileStream中派生出来的
     begin
       seek(0,2);
       Result:=Write(Rec,GetRecSize);
     end;
    但是怎么数据不能保存在MailRec中呢?
      

  4.   

    如果定义为String或者数组,则Length(body)可以取得其大小,如果定义为流,使用流的Size属性————————————————————————————————————
    宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
    ————————————————————————————————————
      

  5.   

    我是这样做的 mailRec.body.CopyFrom(mm,mm.Size);
    这样写不对吗?它说文件读取错误
      

  6.   

    mailRec.body.CopyFrom(mm, 0);另外要注意,body使用前要创建,如:body := TMemoryStream.Create————————————————————————————————————
    宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
    ————————————————————————————————————
      

  7.   

    结构中加两个变量,表示body和fujian的长度。
    把body,fujian定义成指针。