把astrart转换成二进制信息aaa.然后读出a.exe的信息并也转化成二进制信息bbb.搜索bbb中是否包含aaa,包含的话从返回的位置开始读信息直到遇见aend为止.
这些只是我的想法.

解决方案 »

  1.   

    to xzisgood:怎样转换为二进制信息啊?
      

  2.   

    'astrart'和'aend'是怎么在exe上的,是在后面追加上的吗,还是编译前有的?
    如果是在后面追加上的就好办了,不知道你所说的是怎么回事
      

  3.   

    to bigfox():'astrart'和'aend'是在后面追加上的,你有办法吗?快告诉我,谢谢!
      

  4.   

    事实是以上方法好像不行,必须自己写Strcmp
      

  5.   

    TO:KISS2即使能把文件在后面追加上去的话这个.EXE也未必能运行。因为这个EXE的文件头会写明它的相关信息,就是没追加上去的那信息,我觉得这种技术需要编译知识才行。
      

  6.   

    to wzs:
    加上数据的exe当然可以运行
    1.先确定exe文件的实际字节数
    2.再确定你所追加的东东的字节数
    3.先用seek进行文件读定位,再用read,或blockread把你所追加的数据读
    到内存中buf : array[1..2048] of char
    利用buf[i]进行比较串,或转为string进行比较
      

  7.   

    1。要保证'astrart'和'aend'在.exe中没有重复;
    2。要有一个好的顺序查找算法,不要一下了全读到
       内存再查找;
      

  8.   

    你的astart和aend是什么?字符串还是整型变量?你要读出是东西又是什么?字符串还是二进制数据?
    把需求说清楚一点,大家才能具体分析该怎么做。
      

  9.   

    to sachow:
    'astrart'和'aend'是在追加到a.exe时任意定义的(主要是读数据时,能读出他们之间的内容即可),读出的数据是TStream类型
      

  10.   

    to bigfox兄,我以前有做测试,但没成功,你说把能把数据加到EXE上且EXE还能运行不知且什么方法能透露一下吗?还有一个问题(是以前我发的一个贴子)把2个exe合并成一个EXE但运行合并完的这个EXE它能分别运行合并前的那2个EXE?我想能把数据加到EXE文件中去基本上跟后面这个问题是类似的你能解决吗?
      

  11.   

    to wzs(兔子):当然能运行啊!不信你可以随便在一个EXE文件后用16进编辑器加上一些数据看看能不能运行!
      

  12.   

    to wzs:
    可以的,我就是说你正确使用blockread和blockwrite两函数,对一个exe文件后加任意
    文件都可以,就象把多个文件打成一个包一样