Пишу программу которая должна скачать определенный файл из интернета.
И возникли 2 существенные проблемы:
1) при скачивании текстового файла напрочь теряются все ентеры, то есть то что было на разных строках сливается в одну длинющую, но при этом пробелы остаются.
2) при скачивании exe файла его не удается запустить, то есть он как бы запускается, но ничего не происходит
Пробовал вот такие функции, но результат один и тот же
Код:
function GetInetFile(const fileURL, FileName: string): boolean;
const
BufferSize = 1024;
var
hSession, hURL: HInternet;
Buffer: array[1..BufferSize] of Byte;
BufferLen: DWORD;
f: file;
sAppName: string;
begin
Result := False;
sAppName := ExtractFileName(Application.ExeName);
hSession := InternetOpen(PChar(sAppName),
INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
try
hURL := InternetOpenURL(hSession, PChar(fileURL), nil, 0, 0, 0);
try
AssignFile(f, FileName);
Rewrite(f,1);
repeat
InternetReadFile(hURL, @Buffer, SizeOf(Buffer), BufferLen);
BlockWrite(f, Buffer, BufferLen);
until
BufferLen = 0;
CloseFile(f);
Result := True;
finally
InternetCloseHandle(hURL);
end;
finally
InternetCloseHandle(hSession);
end;
end;
(Взято
отсюда)
и
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
MS:TFileStream;
begin
try
MS:=TFileStream.Create('SUt.exe',fmOpenReadWrite);
except
MS:=TFileStream.Create('SUt.exe',fmCreate);
end;
try
try
idHttp1.Get(URL,MS);
finally
idHttp1.Free;
end;
finally
MS.Free;
end;
end;
Помогите пожалуйста, или хотя бы подскажите в чем ошибка