Показать сообщение отдельно

  #7  
Старый 02.08.2007, 12:30
da_ff
Участник форума
Регистрация: 11.07.2006
Сообщений: 125
Провел на форуме:
413927

Репутация: 71
Отправить сообщение для da_ff с помощью ICQ
По умолчанию

я кагда то так делал
Код:
#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..
 
Ответить с цитированием