请问,我有一个exe程序,还有一个文本文件,文本文件里面有一些数据,我想把这个exe和这个文本文件打包到一个exe里面,
可不可以做到呢? 应该怎么做?非常感谢!

解决方案 »

  1.   

    把文本文件加到exe的资源里面去,需要的时候再从资源里面加载。
      

  2.   

    同意楼上,,,,下面是摘得Exe的东西,要是 Txt可以直接读的  var WinTempdir: string;// 第一个过程是释放exe
    //第2个过程是调用 第一个过程并执行释放出的exeProcedure TNetUpdate.ExtractUpdateResource;
    Var
      reshandle: THandle;
      hglobal: THandle;
      ressize: dword;
      ptr: pointer;
      binfile: File Of byte;
      Srcname: String;
      buf: Array[0..MAX_PATH] Of Char;
    Begin
      // UPD 是以资源方式编译进去的exe 的资源名
      ResHandle := FindResource(hinstance, 'UPD', PChar(RT_RCDATA));
      hglobal := LoadResource(hinstance, reshandle);
      Ressize := SizeOfResource(hinstance, reshandle);
      ptr := LockResource(hglobal);
      //取Windows Temp 目录
      If (Length(WinTempDir) >= 1) And (WinTempDir[Length(WinTempDir)] <> '\') Then
        WinTempDir := WinTempDir + '\';  //准备释放到temp 目录下的 upd.exe
      SrcName := WinTempDir + 'upd.exe';  //写 upd.exe
      AssignFile(binfile, SrcName);
      Rewrite(binfile);
      Blockwrite(binfile, ptr^, ResSize);
      Closefile(binfile);
    End;//********************************************************
    //********************************************************//执行释放出来的 EXE
    Procedure TNetUpdate.RestartProgram;
    Var
      proch: dword;
      allow: Boolean;
      StartupInfo: TStartupInfo;
      ProcessInfo: TProcessInformation;
      StartErrorCode: dword;
      TmpBuf: Array[0..1024] Of char;
      RestartParam : String;
    Begin
      Allow := True;
       //调用上面的释放过程, 从资源文件 wupdate.res 中提取出 upd.exe 的压缩文件资源
        ExtractUpdateResource;    //取得当前进程ID
        proch := GetCurrentProcessID;    FillChar(StartupInfo, Sizeof(StartupInfo), #0);
        StartupInfo.cb := Sizeof(StartupInfo);
        StartupInfo.dwFlags := STARTF_USESHOWWINDOW;
        StartupInfo.wShowWindow := SW_SHOWNORMAL;    If Not CreateProcess(Nil,
          pchar(WinTempdir + 'upd.exe '),
          Nil,
          Nil,
          true,
          CREATE_NEW_CONSOLE Or NORMAL_PRIORITY_CLASS, { creation flags }
          Nil, { pointer to new environment block }
          Nil, { pointer to current directory name, PChar}
          StartupInfo, { pointer to STARTUPINFO }
          ProcessInfo) Then
        Begin
          StartErrorCode := GetLastError;
          FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM,
            Nil,
            StartErrorCode,
            0,
            TmpBuf,
            SizeOf(TmpBuf),
            Nil);
        End;
    End; 
      

  3.   

    用Rar就可以啊,不用Delphi。
    做法如下:
    1.选择你的文件(exe文件和txt文件,还可以多加几个都没关系)
    2.右键--添加到压缩档案
    3.文件名:自己取一个,“创建自释放格式档案文件”打钩(第二个选项)
    4.打开“高级”页面--sfx选项,然后做第五,第六步:
    5.安装程序中,释放后运行中填你要执行的exe文件名比如(abc.exe)
    6.“模式”页面:解压到临时文件夹打钩,缄默模式选“全部隐藏”(第三个),覆盖方式选“覆盖所有文件”(第二个)
    7.然后点确定,再点确定。
    ok,打包好了。