• XSS.stack #1 – первый литературный журнал от юзеров форума

конвертация istream

Тот istream, который объявлен в ActiveX.pas?
Я бы сделал в два этапа: сначала в TStreamAdapter, как описано здесь: https://stackoverflow.com/questions/14466353/how-to-convert-istream-to-tstreamadapter
А потом из TStreamAdapter в TStringStream. В TStringStream данные доступны через свойство DataString.
Это лишнее, зачем эим прокладочные переменные, можно сразу конвертировать в string
Как конвертировать istream в string?
Код:
var MyString: string;
    MyStream: IStream;
    IstrSize: uint64;
begin
...
  MyStream.Seek(0, 2, IstrSize);
  MyStream.Seek(0, 0, uint64(nil^));
  SetLength(MyString, IstrSize);
  MyStream.Read(Pointer(MyString), IstrSize, 0);
end;
 
Ну так-то да, можно.
Но конструкции Pointer(MyString) и uint64(nil^) могут однажды привести к проблемам при переходе на очередную версию Delphi или компиляции для новой платформы.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Ребята, хватит создавать такие темы с заголовком под типу помогиет, хелп, ау.
Нужно сразу указать "Как конвертировать istream в string в N языке?" в заголовке. Вродь тут за такое предупреждение дают. И да, с таким описанием больше шансов ответа
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх