| 
							JDRaveN
							 
								Гость 
							 
						 | 
						
							
								  | 
								
									
									 «  : 28-08-2008 13:20 »   | 
								
								 | 
							  
							 
							Всем привет! Не могу сделать копирование! В примерах так много всего наворочено, а мне надо просто с одной кнопкой, нажал - скопировало. Помогите пожалуйста! 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							RXL
							
						 | 
						
							
								  | 
								
									
									 « Ответ #1 : 28-08-2008 15:07 »   | 
								
								 | 
							  
							 
							JDRaveN, рассказывай, что сделал, что не выходит и т.п. 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С. 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							zubr
							 
								Гость 
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #2 : 28-08-2008 16:14 »   | 
								
								 | 
							  
							 
							Вот код из DRKB использующий WinInet-функции: function DownloadFile(const Url: string): string;  var    NetHandle: HINTERNET;    UrlHandle: HINTERNET;    Buffer: array[0..1024] of char;    BytesRead: cardinal;  begin    Result := '';    NetHandle := InternetOpen('My application', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0); 
    if Assigned(NetHandle) then      begin 
        UrlHandle := InternetOpenUrl(NetHandle, PChar(Url), nil, 0, INTERNET_FLAG_RELOAD, 0); 
        if Assigned(UrlHandle) then  { UrlHandle правильный? Начинаем загрузку }          begin            FillChar(Buffer, SizeOf(Buffer), 0);            repeat              Result := Result + Buffer;              FillChar(Buffer, SizeOf(Buffer), 0);              InternetReadFile(UrlHandle, @Buffer, SizeOf(Buffer), BytesRead);            until BytesRead = 0;            InternetCloseHandle(UrlHandle);          end        else          begin  { UrlHandle неправильный. Генерируем исключительную ситуацию. }            raise Exception.CreateFmt('Cannot open URL %s', [Url]);          end; 
        InternetCloseHandle(NetHandle);      end    else  { NetHandle недопустимый. Генерируем исключительную ситуацию }      raise Exception.Create('Unable to initialize Wininet');  end; 
  Но данный код предполагает обычное соединение (без прокси-сервера) по HTTP-протоколу. Не учитывает многих нюансов.  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							JDRaveN
							 
								Гость 
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #3 : 29-08-2008 07:49 »   | 
								
								 | 
							  
							 
							Код который прислал Zubr, наверняка работает и он то мне и нужен, т.к. файл лежит на сайте.   Я не могу разобраться в этом коде, не такой я хороший программист, но сделать эту беду надо.
  Я сделал форму на ней поместил кнопку, на событие OnClick прописал вот такую беду: begin IBDataBase1.Connected:=False; Windows.CopyFile('C:\Documents and Settings\Евгений Хомич\Рабочий стол\TERROR.GDB', 'C:\TERROR\Baza\TERROR.GDB',False); IBDataBase1.Connected:=True; end;
  ну это для теста на локальной машине, работает, а как вот правильно прописать, чтобы с сайта подсасывал не знаю.
 
  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							JDRaveN
							 
								Гость 
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #4 : 29-08-2008 08:07 »   | 
								
								 | 
							  
							 
							Zubr HELP!!! 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							zubr
							 
								Гость 
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #5 : 29-08-2008 09:21 »   | 
								
								 | 
							  
							 
							unit Unit1;
  interface
  uses   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,   Dialogs, wininet, StdCtrls;
  type   TForm1 = class(TForm)     Button1: TButton;     procedure Button1Click(Sender: TObject);   private     { Private declarations }   public     { Public declarations }   end;
  var   Form1: TForm1;
  implementation
  {$R *.dfm}
  function DownloadFile(const Url: string; stream: TMemoryStream): boolean; var   NetHandle: HINTERNET;   UrlHandle: HINTERNET;    Buffer: array[0..1024] of char;   BytesRead: cardinal; begin    Result := False;   NetHandle := InternetOpen('My application', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
    if Assigned(NetHandle) then      begin
        UrlHandle := InternetOpenUrl(NetHandle, PChar(Url), nil, 0, INTERNET_FLAG_RELOAD, 0); 
        if Assigned(UrlHandle) then { UrlHandle правильный? Начинаем загрузку }         begin            FillChar(Buffer, SizeOf(Buffer), 0);           repeat              FillChar(Buffer, SizeOf(Buffer), 0);             InternetReadFile(UrlHandle, @Buffer, SizeOf(Buffer), BytesRead);             stream.Write(Buffer, BytesRead);           until BytesRead = 0;           InternetCloseHandle(UrlHandle);         end        else          begin { UrlHandle неправильный. Генерируем исключительную ситуацию. }            raise Exception.CreateFmt('Cannot open URL %s', [Url]);           exit;         end; 
        InternetCloseHandle(NetHandle);     end   else  { NetHandle недопустимый. Генерируем исключительную ситуацию }   begin     raise Exception.Create('Unable to initialize Wininet');     exit;   end;   Result := True; end;
  procedure TForm1.Button1Click(Sender: TObject); var   ms: TMemoryStream; begin  ms := TMemoryStream.Create;  try   If not DownloadFile('http://MyUrl/MyInternetFile', ms) then   exit;   ms.SaveToFile('c:\MyLocalFile');  finally   ms.Free;  end; end;
  end.
  Читать книжки и учиться, учиться и учиться...  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							JDRaveN
							 
								Гость 
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #6 : 03-09-2008 07:14 »   | 
								
								 | 
							  
							 
							Я немного подредактировал код, для визуализации обновления. function DownloadFile(const Url: string; stream: TMemoryStream): boolean; var   NetHandle: HINTERNET;   UrlHandle: HINTERNET;   Buffer: array[0..1024] of char;   BytesRead: cardinal; begin    Result := False;   NetHandle := InternetOpen('MainProject.exe', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
    if Assigned(NetHandle) then      begin
        UrlHandle := InternetOpenUrl(NetHandle, PChar(Url), nil, 0, INTERNET_FLAG_RELOAD, 0);
        if Assigned(UrlHandle) then { UrlHandle правильный? Начинаем загрузку }         begin           FillChar(Buffer, SizeOf(Buffer), 0);           repeat             FillChar(Buffer, SizeOf(Buffer), 0);             InternetReadFile(UrlHandle, @Buffer, SizeOf(Buffer), BytesRead);             stream.Write(Buffer, BytesRead);           until BytesRead = 0;           InternetCloseHandle(UrlHandle);         end       else          begin { UrlHandle неправильный. Генерируем исключительную ситуацию. }            raise Exception.CreateFmt('Cannot open URL %s', [Url]);           exit;         end;
        InternetCloseHandle(NetHandle);     end   else { NetHandle недопустимый. Генерируем исключительную ситуацию }   begin     raise Exception.Create('Unable to initialize Wininet');     exit;   end;   Result := True; end;
  procedure TfrmMain.Button5Click(Sender: TObject); var   ms: TMemoryStream; begin
   ms := TMemoryStream.Create;  try   If not DownloadFile('http://...', ms) then   begin   exit;   ShowMessage('Ошибка!');   end;   IBDataBase1.Connected:=False;   ms.SaveToFile('C:\');   ShowMessage('Обновление успешно выполнено!');   IBDataBase1.Connected:=True;  finally   ms.Free;   end; end;  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	 |