Witam. Chciałem napisać program, który ściągałby bazę danych z internetu i wyświetlił tę bazę. Czy jest to możliwe?
Jak najbardziej jest możliwe :D -> FAQ oraz http://4programmers.net/file.php?id=1735
Nie chciało się poszukać ??
dzieki. Zapomniałem poszukać. Teraz wszystko jasne. A nie wiesz czy można zrobić pasek postępu? Tzn. plik się sciąga a progressbar wskazuje ile sie ściągnęło.
lewymati napisał(a)
dzieki. Zapomniałem poszukać. Teraz wszystko jasne. A nie wiesz czy można zrobić pasek postępu? Tzn. plik się sciąga a progressbar wskazuje ile sie ściągnęło.
mozesz uzyc komponentu httpget - dziala tylko na porcie 80 ale pokazanie progressbara jest tam dziecinnie proste :)
a skąd wziąć ten komponent?
lewymati napisał(a)
a skąd wziąć ten komponent?
stad: imieniny
lewymati napisał(a)
czy można zrobić pasek postępu?
Bardzo dobry kod Adama Boducha z progresem
uses
WinInet;
private
procedure Download(const URL: String; FileName: String);
procedure TForm1.Download(const URL: String; FileName: String);
var
Buffer : array[1..1024] of Byte; // bufor zawierający ściągnięty fragment pliku
hSession, hURL : HINTERNET;
dwRead : DWORD; // ilość odczytanych danych
dwSize : DWORD; // rozmiar pliku
F : File;
pBuf : Pointer;
dwBufLen : DWORD;
dwIndex : DWORD;
TotalRead : Integer;
begin
hSession := InternetOpen('Fast Download', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
Application.ProcessMessages;
try
{ otwarcie podanego adresu URL }
hURL := InternetOpenURL(hSession, PChar(URL), nil, 0, 0, 0);
Application.ProcessMessages;
dwBufLen := 1024;
dwIndex := 0;
GetMem(pBuf, dwBufLen);
{ pobranie informacji na temat wielkości pliku }
HttpQueryInfo(hURL, HTTP_QUERY_CONTENT_LENGTH,
pBuf, dwBufLen, dwIndex);
dwSize := StrToInt(StrPas(pBuf));
ProgressBar.Max := (dwSize div 1024);
FreeMem(pBuf, dwBufLen);
try
AssignFile(F, FileName);
try
Rewrite(F, 1);
repeat
InternetReadFile(hURL, @Buffer, SizeOf(Buffer), dwRead);
BlockWrite(F, Buffer, dwRead); // zapisanie buforu do pliku
TotalRead := TotalRead + dwRead;
Application.ProcessMessages;
Label1.Caption := 'Pobrano ' + IntToStr(TotalRead div 1024) + ' kB z ' + IntToStr(dwSize div 1024) + ' kB';
ProgressBar.Position := TotalRead div 1024;
until dwRead = 0;
finally
CloseFile(F);
end;
finally
InternetCloseHandle(hSession);
end;
finally
InternetCloseHandle(hURL);
end;
Label1.caption := 'Gotowe !';
end;
//wywołanie ściągania
begin
try
begin
Label1.Caption := 'Łączenie...';
DownloadInfo('http://www.strona.pl/plik.exe',ExtractFilePath(Application.ExeName) + 'plik.exe');
end;
except
Label1.Caption := 'Błąd połączenia';
end;
end;
Wielkie dzięki wam wszystkkim. Wie może ktoś czy można zapisywać pliki do internetu znając adres ftp, hasło itd.?
lewymati napisał(a)
Wielkie dzięki wam wszystkkim. Wie może ktoś czy można zapisywać pliki do internetu znając adres ftp, hasło itd.?
tak wiemy. Indy + idFTP + google + dema do Indy9 i juz masz. Zamierzasz nas o wszystko pytac?
ok. Już wszystko wiem. Dzięki wam wszystkim