![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема копирования в TStream [D7, WinME]
Victor_ © (2003-01-27 20:27:00)пытаюсь я получить и обработать информацию из сети с помощью компонентов Indy:
procedure TForm1.FormCreate(Sender: TObject);
var
buffer,mbuffer:TStream;
myHTTP : TidHTTP;
begin
buffer:=TFileStream.Create("1.dat",fmCreate or fmOpenWrite);
mbuffer:=TMemoryStream.Create;
myHTTP := TidHTTP.Create(nil);
myHTTP.Get(str,mbuffer);
buffer.CopyFrom(mbuffer,mbuffer.Size);
mbuffer.Free;
buffer.Free;
end;
на buffer.CopyFrom получаю ошибку.
Что делать??
код
procedure TForm1.FormCreate(Sender: TObject);
var
buffer,mbuffer:TStream;
myHTTP : TidHTTP;
begin
mbuffer := TFileStream.Create("1.dat", fmOpenReadWrite);
buffer := TFileStream.Create("2.dat", fmOpenReadWrite);
buffer.CopyFrom(mbuffer,mbuffer.Size);
buffer.Free;
mbuffer.Free
end;
работает нормально :(
Victor_ (2003-01-27 21:51:00) [1]Спасибо за mbuffer.Position := 0;, а насчет
procedure TForm1.FormCreate(Sender: TObject);
var
buffer:TStream;
myHTTP : TidHTTP;
begin
buffer:=TFileStream.Create("c:\1.dat",fmCreate or fmOpenWrite);
myHTTP := TidHTTP.Create(nil);
myHTTP.Get(" http://microsoft.com", buffer);
buffer.Free;
myHTTP.Free;
end;
то нужно именно 2 буфера (один для обработки)
dumb (2003-01-27 21:01:00) [2]Нужно вставить
mbuffer.Position := 0;
после
myHTTP.Get(str,mbuffer);
а вообще лучше так
procedure TForm1.FormCreate(Sender: TObject);
var
buffer:TStream;
myHTTP : TidHTTP;
begin
buffer:=TFileStream.Create("c:\1.dat",fmCreate or fmOpenWrite);
myHTTP := TidHTTP.Create(nil);
myHTTP.Get(" http://microsoft.com", buffer);
buffer.Free;
myHTTP.Free;
end;