IndyのReadStringFromStream関数で、文字列のStreamを簡単にUnicodeStringに変換できる

IndyのReadStringFromStream関数で、文字列のStreamを簡単にUnicodeStringに変換できる。

/**
 * @param TStream* ストリーム
 * @param int ストリームから変換するサイズ
 * @param TEncoding* エンコーディング
 */
System::UnicodeString __fastcall ReadStringFromStream(
  Classes::TStream* AStream, 
  int ASize = 0xffffffff, 
  Sysutils::TEncoding* AByteEncoding = (Sysutils::TEncoding*)(0x0));

使用例

フォームにTIdHTTPコンポーネントを配置します。

#include <memory>

std::unique_ptr<TMemoryStream> ms(new TMemoryStream());
IdHTTP1->Get(L"http://www.yahoo.co.jp/", ms.get());
ms->Position = 0;
//文字コードがUTF-8のとき
UnicodeString s = ReadStringFromStream(ms.get(), ms->Size, TEncoding::UTF8);

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください