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

  #626  
Старый 11.06.2008, 19:31
Delimiter
Banned
Регистрация: 08.04.2005
Сообщений: 446
Провел на форуме:
2187381

Репутация: 518
По умолчанию

2 xxxxxxxxxxxx (3-я)
Код:
 void delete_rem(char *m_path)
{
   CFile f;
   CFileException e;
   char *file_buf;
   int fl=0;
   long l,i,n;
    if(f.Open(m_path,CFile::modeRead,&e))
   {
   	f.SeekToEnd();
        l=f.GetPosition();
        file_buf=new char[l];
	f.SeekToBegin();
	l=f.ReadHuge(file_buf,l);
	f.Close();
       for(i=0;i<l;i++)
       {
          switch(*(file_buf+i))
		  {
		  case 0x0d:
			  if(fl==1)
			  {
				  memmove(file_buf+n,file_buf+i,l-i);
				  l-=i-n;
				  i-=i-n;
				  fl=0;
			  }
			  break;
		  default:
			     if(i>0)
				  if(strncmp(file_buf+i-1,"//",2)==0 && fl==0)
				  { fl=1; n=i-1;}
				  else
				    if(strncmp(file_buf+i-1,"/*",2)==0)
					{ fl=2; n=i-1;}
					else
				          if(strncmp(file_buf+i-1,"*/",2)==0)
					 { 
					   if(fl==2)
					   {
			                         memmove(file_buf+n,file_buf+i+1,l-i-1);
						   l-=i-n;
				                   i-=i-n;
						   fl=0;
					   }

					 }

		  }
	   }
	   if(f.Open(m_path,CFile::modeCreate | CFile::modeWrite,&e))
	   {
                  f.WriteHuge(file_buf,l-1);
		   f.Close();
	   }
	delete[] file_buf;
  }
}
по поводу остальных задач .... ты должен был давать примеры входных данных в файле, если планируешь что ктото напишет, а если как некоторые думаешь ,что все уже кем то было написано, то Google в руки!

Последний раз редактировалось Delimiter; 11.06.2008 в 23:13..
 
Ответить с цитированием