Как я могу загрузить файл Unicode и загрузить его в TTreeView? - PullRequest
2 голосов
/ 30 мая 2011

Мне нужно скачать файл TreeView в Unicode, используя idHTTP (String := idHTTP.Get). После загрузки мне нужно что-то сделать со строкой, а затем поместить ее в TTreeView. Я пользуюсь Delphi 2010.

s:=form2.idhttp1.Get(Adres+'list.ttt');
....
StrStream:=TStringStream.Create(s,t encoding.Unicode);
form2.TreeView1.LoadFromStream(strstream);
StrStream.Free;

Я не вижу Unicode в S или TreeView1. Я вижу Unicode в S, только если я пытаюсь загрузить не list.ttt, а list.html. Что мне нужно установить в idHTTP или что-то еще для правильной работы?

Ответы [ 2 ]

3 голосов
/ 30 мая 2011

Как заставить его работать с TIdHttp

Не используйте TStringStream, используйте TMemoryStream, чтобы не получать перекодировки содержимого.Пример:

var ResponseStream: TMemoryStream;
begin
  ResponseStream := TMemoryStream.Create;
  try
    H.Get(URL, ResponseStream);
    ResponseStream.Position := 0;
    Tree.LoadFromStream(ResponseStream);
  finally ResponseStream.Free;
  end;
end;
1 голос
/ 30 мая 2011

@ Майкл - Я понял, что вы видите данные в S, но это ANSIString, а не Unicode, верно? Вы уверены, что ваш источник 'list.ttt' является Unicode? Вы пытались объявить s явно как unicodeString или с помощью функции unicodeString? Просто некоторые вещи, чтобы рассмотреть - не совсем ответ. НТН

...