开发者

How can I download a Unicode file and load it in a TTreeView?

开发者 https://www.devze.com 2023-03-08 22:40 出处:网络
I need to download a file of TreeView in Unicode using idHTTP (String := idHTTP.Get). After downloading, I need do something with the string and then put it in a TTreeView. I\'m using Delphi 2010.

I need to download a file of TreeView in Unicode using idHTTP (String := idHTTP.Get). After downloading, I need do something with the string and then put it in a TTreeView. I'm using Delphi 2010.

s:=form2.idhttp1.Get(Adres+'list.ttt');
....
StrStream:=TStringStream.Crea开发者_运维技巧te(s,t encoding.Unicode);
form2.TreeView1.LoadFromStream(strstream);
StrStream.Free;

I cannot see Unicode in S or TreeView1. I only see Unicode in S if I try to download not list.ttt but list.html. What do I need to set in idHTTP or something else to work properly?


How to make it work with TIdHttp

Don't use a TStringStream, use a TMemoryStream so you don't get any re-encodings of the contents. Example:

var ResponseStream: TMemoryStream;
begin
  ResponseStream := TMemoryStream.Create;
  try
    H.Get(URL, ResponseStream);
    ResponseStream.Position := 0;
    Tree.LoadFromStream(ResponseStream);
  finally ResponseStream.Free;
  end;
end;


@Michael - I gather that you do see data in S, but it is ansiString and not Unicode, correct? Are you sure your source 'list.ttt' is Unicode? Have you tried declaring s explicitely as a unicodeString or using the unicodeString function? Just some things to consider - not really an answer. HTH

0

精彩评论

暂无评论...
验证码 换一张
取 消