
02.08.2007, 12:30
|
|
Участник форума
Регистрация: 11.07.2006
Сообщений: 125
Провел на форуме: 413927
Репутация:
71
|
|
я кагда то так делал
Код:
#include "stdio.h"
#include "windows.h"
#define LEN 64
void insert(char *str,FILE *in,FILE *out)
{
long incurpos=ftell(in);
long outcurpos=ftell(out);
char *buf=new char[LEN];
*buf='#';
fread(++buf,1,LEN-2,in);
buf--;
buf[LEN-1]='\0';
if(!strcmp(buf,"############################################################"))
{
strcpy(buf,str);
fwrite(buf,1,LEN-2,out);
}
else
fseek(in,incurpos,SEEK_SET);
return;
}
int main(int argc, char *argv[])
{
if(argc<3)return 0;
char name[128],str[LEN],buf[1];
strcpy(name,*(argv+1));//strcpy(name,"TestConsole.exe");
strcpy(str,*(argv+2));//strcpy(str,"da_ff");
FILE *in,*out;
if(!(in=fopen(name,"rb")))return 0;
if(!(out=fopen(strcat(name,".exe"),"wb")))return 0;
while(fread(buf,1,1,in))
{
if(buf[0]=='#')insert(str,in,out);
fwrite(buf,1,1,out);
}
fclose(in);
fclose(out);
printf("ok");
return 0;
}
а в подопытном должна быть строка "################################################# ###########" =)
Последний раз редактировалось da_ff; 02.08.2007 в 12:37..
|
|
|