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

AngelFromNSK

HDD-drive
Пользователь
Регистрация
18.02.2020
Сообщения
42
Реакции
20
Как конвертировать istream в string?
 

Sneg_ST

floppy-диск
Пользователь
Регистрация
28.04.2020
Сообщения
3
Реакции
2

KONUNG

HDD-drive
Пользователь
Регистрация
03.12.2018
Сообщения
32
Реакции
49
Тот 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;
 

Sneg_ST

floppy-диск
Пользователь
Регистрация
28.04.2020
Сообщения
3
Реакции
2
Ну так-то да, можно.
Но конструкции Pointer(MyString) и uint64(nil^) могут однажды привести к проблемам при переходе на очередную версию Delphi или компиляции для новой платформы.
 

tilekvj

(L1) cache
Забанен
Регистрация
15.06.2020
Сообщения
545
Реакции
104
Пожалуйста, обратите внимание, что пользователь заблокирован
Ребята, хватит создавать такие темы с заголовком под типу помогиет, хелп, ау.
Нужно сразу указать "Как конвертировать istream в string в N языке?" в заголовке. Вродь тут за такое предупреждение дают. И да, с таким описанием больше шансов ответа
 

karim0

floppy-диск
Пользователь
Регистрация
26.08.2020
Сообщения
2
Реакции
-1
@
KONUNG


i think he cracked it up!
 
Верх