5,386
社区成员
发帖
与我相关
我的任务
分享
procedure ThreadDown.Execute;
var
str:TMemoryStream;
begin
str:=TMemoryStream.Create;
try TIdhttp.Get(TUrl,str);
str.SaveToFile(TName);
if TAuto='True' then
ShellExecute(0,'Open',PChar(TName),nil,nil,SW_SHOW);
str.Free;
TIdhttp.Free;
finally
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
var
StringStream: TStringStream;
str,strHex: string;
begin
if Length(BytesGB18030) < 1 then Exit;
{直接根据字节数组建立 TStringStream}
StringStream := TStringStream.Create(BytesGB18030);
{TStringStream.DataString 就已经是标准的 string}
str := StringStream.DataString;
Memo1.Lines.Add(StringStream.DataString);
Memo1.Lines.Add(ToHex(@StringStream.Bytes[0], Length(StringStream.Bytes)));
Memo1.Lines.Add('');
Memo1.Lines.Add(str);
Memo1.Lines.Add(ToHex(@str[1], ByteLength(str)));
StringStream.Free;
end;
function ComponentToStr(AComponent: TComponent): string;
var
BinStream: TMemoryStream;
StrStream: TStringStream;
s: string;
begin
BinStream := TMemoryStream.Create;
try
StrStream := TStringStream.Create(s);
try
BinStream.WriteComponent(AComponent);
BinStream.Seek(0, soFromBeginning);
ObjectBinaryToText(BinStream, StrStream);
StrStream.Seek(0, soFromBeginning);
Result := StrStream.DataString;
finally
StrStream.Free;
end;
finally
BinStream.Free
end;
end;
function StrToComponent(const Value: string;
Instance: TComponent): TComponent;
var
StrStream: TStringStream;
BinStream: TMemoryStream;
begin
StrStream := TStringStream.Create(Value);
try
BinStream := TMemoryStream.Create;
try
ObjectTextToBinary(StrStream, BinStream);
BinStream.Seek(0, soFromBeginning);
Result := BinStream.ReadComponent(Instance);
finally
BinStream.Free;
end;
finally
StrStream.Free;
end;
end;