stringlist相关的,请大侠出招,该如何解决

stringlist相关的,请大侠出招
就是建一个包*.pfs,包头的结构是TPfFileSysCtrl,定义目录项结构     TPfDirItem
目录下边就是数据相了(工程目的,是要把很多的图片放到包里,用的时候再调出来.)
谢谢大侠出招
谢谢

unit   PackFileMain;

interface

uses
    Windows,   Messages,   SysUtils,   Variants,   Classes,   Graphics,   Controls,   Forms,
    Dialogs,   Menus,   ToolWin,   ComCtrls,   Grids,   ExtDlgs,   StdCtrls,   ExtCtrls;

type
    TPackFileForm   =   class(TForm)
        PackFileMenu:   TMainMenu;
        F1:   TMenuItem;
        O1:   TMenuItem;
        C1:   TMenuItem;
        N1:   TMenuItem;
        N2:   TMenuItem;
        D1:   TMenuItem;
        N3:   TMenuItem;
        N4:   TMenuItem;
        pfStatus:   TStatusBar;
        pfToolBar:   TToolBar;
        N5:   TMenuItem;
        N6:   TMenuItem;
        fileList:   TStringGrid;
        dlgOpenPf:   TOpenDialog;
        dlgAddFiles:   TOpenDialog;
        Image1:   TImage;
        procedure   mnuOpenFileClick(Sender:   TObject);
        procedure   mnuAddFilesClick(Sender:   TObject);
        procedure   N4Click(Sender:   TObject);
    private
        {   Private   declarations   }
        pfFileName:   string;
        files:   TStrings;
        tmpfh:   integer;
        fh:   integer;
    public
        {   Public   declarations   }
        procedure   pfGridInit();
    end;

    {   定义文件系统的控制结构   }
    PTPfFileSysCtrl   =   ^TPfFileSysCtrl;
    TPfFileSysCtrl   =   record
        fileNum:   word;   {   包内包含的文件个数   }
        dirItemNum:   word;   {   包内目录项个数   }
        pad:   array[0..27]   of   byte;
    end;

    {   定义目录项结构   }
    PTPfDirItem   =   ^TPfDirItem;
    TPfDirItem   =   record
        fileId:   word;   {   文件ID:   ID为0的目录项为空闲目录项   }
        filename:   array[0..17]   of   char;   {   文件名   }
        extname:   array[0..3]   of   char;   {   扩展名   }
        offset:   dword;   {   文件在包内的偏移   }
        len:   dword;   {   文件长度   }
    end;

var
    PackFileForm:   TPackFileForm;
        ss:   file   of   PTPfDirItem;

implementation

{$R   *.dfm}

procedure   TPackFileForm.pfGridInit();