ToBase64Transform.TransformBlock(Byte[], Int32, Int32, Byte[], Int32) メソッド

定義

入力バイト配列の指定した領域を base 64 に変換し、その結果を出力バイト配列の指定した領域にコピーします。Converts the specified region of the input byte array to base 64 and copies the result to the specified region of the output byte array.

public:
 virtual int TransformBlock(cli::array <System::Byte> ^ inputBuffer, int inputOffset, int inputCount, cli::array <System::Byte> ^ outputBuffer, int outputOffset);
public int TransformBlock (byte[] inputBuffer, int inputOffset, int inputCount, byte[] outputBuffer, int outputOffset);
abstract member TransformBlock : byte[] * int * int * byte[] * int -> int
override this.TransformBlock : byte[] * int * int * byte[] * int -> int
Public Function TransformBlock (inputBuffer As Byte(), inputOffset As Integer, inputCount As Integer, outputBuffer As Byte(), outputOffset As Integer) As Integer

パラメーター

inputBuffer
Byte[]

base 64 に変換する入力。The input to compute to base 64.

inputOffset
Int32

入力バイト配列内のデータの使用開始位置を示すオフセット。The offset into the input byte array from which to begin using data.

inputCount
Int32

データとして使用する入力バイト配列内のバイト数。The number of bytes in the input byte array to use as data.

outputBuffer
Byte[]

結果を書き込む先の出力。The output to which to write the result.

outputOffset
Int32

データの書き込みの開始位置を示す出力バイト配列内のオフセット。The offset into the output byte array from which to begin writing data.

戻り値

書き込むバイト数。The number of bytes written.

実装

例外

現在の ToBase64Transform オブジェクトは既に破棄されています。The current ToBase64Transform object has already been disposed.

データ サイズが有効ではありません。The data size is not valid.

inputBuffer パラメーターに無効なオフセット長が含まれています。The inputBuffer parameter contains an invalid offset length.

または-or- inputCount パラメーターに正しくない値が含まれています。The inputCount parameter contains an invalid value.

inputBuffer パラメーターが null です。The inputBuffer parameter is null.

inputBuffer パラメーターには、負でない数が必要です。The inputBuffer parameter requires a non-negative number.

次のコード例では、TransformBlock メソッドを呼び出して、blockSizeによって変換 inputBytes を反復処理する方法を示します。The following code example demonstrates how to call the TransformBlock method to iterate through inputBytes transforming by blockSize. このコード例は、ToBase64Transform クラス用に用意されている大規模な例の一部です。This code example is part of a larger example provided for the ToBase64Transform class.

int inputBlockSize = base64Transform->InputBlockSize;
while ( inputBytes->Length - inputOffset > inputBlockSize )
{
   base64Transform->TransformBlock(
      inputBytes,
      inputOffset,
      inputBytes->Length - inputOffset,
      outputBytes,
      0 );

   inputOffset += base64Transform->InputBlockSize;
   outputFileStream->Write(
      outputBytes,
      0,
      base64Transform->OutputBlockSize );
}
int inputBlockSize = base64Transform.InputBlockSize;

while(inputBytes.Length - inputOffset > inputBlockSize)
{
    base64Transform.TransformBlock(
        inputBytes,
        inputOffset,
        inputBytes.Length - inputOffset,
        outputBytes,
        0);

    inputOffset += base64Transform.InputBlockSize;
    outputFileStream.Write(
        outputBytes, 
        0, 
        base64Transform.OutputBlockSize);
}
Dim inputBlockSize As Integer = base64Transform.InputBlockSize

While (inputBytes.Length - inputOffset > inputBlockSize)
    base64Transform.TransformBlock( _
        inputBytes, _
        inputOffset, _
        inputBytes.Length - inputOffset, _
        outputBytes, _
        0)

    inputOffset += base64Transform.InputBlockSize
    outputFileStream.Write(outputBytes, _
        0, _
        base64Transform.OutputBlockSize)
End While

注釈

ToBase64Transform クラスは、3バイトの入力ブロックを処理し、4バイトの出力ブロックを作成するブロックアルゴリズムです。The ToBase64Transform class is a block algorithm that processes input blocks of 3 bytes and creates output blocks of 4 bytes. TransformBlock メソッドは、24ビットの入力ブロックを32ビットの文字データに変換します。The TransformBlock method transforms an input block of 24 bits into 32 bits of character data. ブロック変換に一致させるには、3バイトの入力境界を4バイトの出力境界に保持する必要があります。You must maintain 3 byte input boundaries to 4 byte output boundaries in order to match the block transform.

適用対象

こちらもご覧ください