先生成一個文件,就當這個文件是一個包,然後把一些文件放進這個包,而且也可以把這些文件從包中取出來如:
   生成一個999.Pak文件,把a.txt,b.txt等文件放進這個999.Pak裡面,
而且可以從999.Pak中把a.txt,b.txt導出來

解决方案 »

  1.   

    在999.Pak文件中
    ...
    a开始标记
     a.txt内容
    a结束标记
    ...
    b开始标记
     b.txt内容
    b结束标记
      

  2.   

    你要的这种功能我们俗称它为'加壳''脱壳'
    {加壳}
    procedure TForm1.LockFile;
    var
      FsName, FtName, FbName, FCode: string;
      iTargetFile, iSourceFile: Integer;
      MyBuf: array[0..MaxBufferSize - 1] of Char;
      LockedFile: TLockedFile;
      NumRead, NumWritten: Integer;
      bSuccessed: Boolean;
    begin
        FsName := sExeFilename;    
        FbName := FsName + '.TMP'; 
        FCode := ExtractFilePath(paramstr(0))+'DialogPass.exe';
        if not fileexists(FCode) then
           raise exception.create(FCode+'文件没找到.');
        if CheckBox1.Checked then
        begin
          CopyFile(FsName, FbName);
        end;
        iSourceFile := FileOpen(FsName, fmOpenRead or fmShareDenyNone);
        try
          with LockedFile do
          begin
            Flag := CFlag;
            Name := ExtractFileName(FsName);
                CopyFile(FCode, FtName);{先拷贝附加代码}
          bSuccessed := False;
          iTargetFile := FileOpen(FtName, fmOpenReadWrite);
          try
               FileSeek(iTargetFile, 0, soFromEnd);
            repeat
              NumRead := FileRead(iSourceFile, MyBuf, SizeOf(MyBuf));
              NumWritten := FileWrite(iTargetFile, MyBuf, NumRead);
            until (NumRead = 0) or (NumWritten <> NumRead);
            FileWrite(iTargetFile, LockedFile, SizeOf(LockedFile));
            bSuccessed := True;
           finally
            FileClose(iTargetFile);
          end;
        finally
          FileClose(iSourceFile);
        end;
       end;可能上面的代码有点问题,没有写注释
    说明白点就是把你要的文件先读进去,然后再把指针指到文件尾,然后再住里面写新的数据,再保存