Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.04.2009, 20:09   #1
дядя
 
Регистрация: 10.05.2008
Сообщений: 5
По умолчанию Немогу вывести во временый файл

Немогу вывести во временный файл последнюю строку каждого из найденных фалов. Файлы найдены по заданной маске поиска и скопированы в один каталог. И всё ступор. Далее дело не идёт. Спросить у преподователя не хочется, а то он и так делает замечание, что все тупые на курсе. Поправте, что не так. Вот часть кода. До этой части все фунциклирует, а дальше выводится не то, что надо (BDS 2006,C++ console application):

Код:
#include<windows.h>
#include<conio.h>
#include<iostream>

using namespace std;

/////////////////
int main(int argc, char* argv[])
{
const int MAX=255;
char Buff[MAX];
char** Puth;
char str[MAX],s[MAX];
int d,c;
HANDLE hnd;
WIN32_FIND_DATA w32fd;
int n[MAX];
static int f=1;
////////////////////

 cout<<"\nSkolko Katalogov Nado Sozdat : ";cin>>d;
  Puth=new char*[d];

 for(int j=0;j<d;j++)
 {
	Puth[j]=new char[MAX];

	cout<<"\nVvedite imya Kataloga : ";cin>>str;
	strcpy(Puth[j],str);

   if(CreateDirectory(Puth[j],NULL))
	 MessageBox(NULL,Puth[j],"Каталог Создан!",MB_OK);
	else
	{
	  MessageBox(NULL,Puth[j],"Каталог Не Создан!",MB_OK);
	  return 0;
	}
 }

 SYSTEMTIME st;
 FILETIME ft;
 char ch=92;
 cout<<"\nVvedite MAsku Poiska : ";cin>>s;

 for(int j=0;j<d;j++)
 {
	SetCurrentDirectory(Puth[j]);

	hnd=FindFirstFile(s,&w32fd);

	FileTimeToLocalFileTime(&w32fd.ftLastAccessTime,&ft);
	FileTimeToSystemTime(&ft,&st);

	cout<<"\nPoslednee obrasenie k "<<f<<" Filu - "
	<<Puth[j]<<ch<<w32fd.cFileName<<" bilo : "<<st.wYear<<"g. "
	<<st.wMonth<<"m. "<<st.wDay<<"d. ";

	 while(n[f++]=FindNextFile(hnd,&w32fd))
	   {
		  cout<<"\nPoslednee obrasenie k "<<f<<" Filu - "
		  <<Puth[j]<<ch<<w32fd.cFileName<<" bilo : "<<st.wYear<<"g."
		  <<st.wMonth<<"m. "<<st.wDay<<"d. ";
	   }
 }

  FindClose(hnd);

  cout<<"\n\nNaideno Po Zadanoy Maske : "<<--f<<" Filov";

  cout<<"\n\nImya New Katalog : ";cin>>s;
  strcpy(Buff,s);

   if(CreateDirectory(Buff,NULL))
	  MessageBox(NULL,Buff,"Каталог Создан!",MB_OK);
   else
   {
	  MessageBox(NULL,Buff,"Каталог Не Создан!",MB_OK);
	  return 0;
   }

  char** s1;
  char** s2;

  s1=new char*[f];
  s2=new char*[f];

  for(int j=0;j<f;j++)
  {
	  s1[j]=new char[MAX];
	  s2[j]=new char[MAX];

	  cout<<"\nVibery Kakoy Copy File: ";cin>>str;
	  strcpy(s1[j],str);
	  cout<<"\nVibery Imya dla Copy : ";cin>>str;
	  strcpy(s2[j],str);

	  if(CopyFile(s1[j],s2[j],TRUE))
		 MessageBox(NULL,s1[j],"Файл успешно скопирован",MB_OK);
		 else
		 {
			 MessageBox(NULL,s1[j],"Файл не скопирован",MB_OK);
			 return 0;
		 }
  }
 
SetCurrentDirectory(Buff);

  HANDLE h,H[MAX],H1;
  char s3[MAX],**s4;
  DWORD a,b,r[MAX];

  cout<<"Kuda : ";cin>>s3;

  h=CreateFile(s3,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,
			   FILE_ATTRIBUTE_NORMAL,NULL);

  s4=new char*[f];

  for(int j=0;j<f;j++)
  {
	s4[j]=new char[MAX];

	H[j]=CreateFile(s2[j],GENERIC_READ,0,NULL,OPEN_EXISTING,0,NULL);

  while(ReadFile(H[j],s4[j],sizeof(s4[j]),&a,NULL)&& a>0)
   {
	
	   r[j]=SetFilePointer(H[j],0x08,NULL,FILE_BEGIN);
	   WriteFile(h,s4[j],r[j],&b,NULL);
   }
  }

  H1=GetStdHandle(STD_OUTPUT_HANDLE);

  for(int j=0;j<f;j++)
  WriteConsole(H1,s4[j],sizeof(s4[j]),&b,NULL);

  for(int j=0;j<d;j++)
   CloseHandle(H[j]);

   CloseHandle(h);
   CloseHandle(H1);

  for(int i=0;i<d;i++)
  {
	delete[]Puth[i];
	delete[]s1[i];
	delete[]s2[i];
	delete[]s4[i];
  }
	delete[]Puth;
	delete[]s1;
	delete[]s2;
	delete[]s4;

getch();
	return 0;
}

Последний раз редактировалось MaTBeu; 06.04.2009 в 23:27.
дядя вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дан текстовый файл. Вывести количество содержащихся в нем символов и строк Настенька..Блонди Помощь студентам 4 12.02.2009 19:28
как определить какие файлы есть в папке и вывести их имена в текстовый файл Tdoctor Паскаль, Turbo Pascal, PascalABC.NET 3 04.11.2008 05:18
Как в С++ вывести(записать ) информацию в файл, когда инфа находится в методе класса? Artur_cod Общие вопросы C/C++ 1 06.05.2007 00:34
С++_как вывести инфо которая в методе в файл?плиз Artur_cod Общие вопросы C/C++ 1 03.05.2007 06:52
Как из Memo вывести строки в txt файл в конец там существующих Saili Компоненты Delphi 8 16.12.2006 11:23