Compartir vía


ToBase64Transform.TransformBlock(Byte[], Int32, Int32, Byte[], Int32) Método

Definición

Convierte la región especificada de la matriz de bytes de entrada a base 64 y copia el resultado en la región especificada de la matriz de bytes de salida.

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

Parámetros

inputBuffer
Byte[]

Entrada para calcular en base 64.

inputOffset
Int32

Desplazamiento en la matriz de bytes de entrada a partir del cual se van a empezar a usar los datos.

inputCount
Int32

Número de bytes de la matriz de bytes de entrada que se van a usar como datos.

outputBuffer
Byte[]

Salida en la que se escribe el resultado.

outputOffset
Int32

Desplazamiento en la matriz de bytes de salida a partir del cual se van a empezar a escribir los datos.

Devoluciones

El número de bytes escritos.

Implementaciones

Excepciones

El objeto ToBase64Transform actual ya se ha desechado.

El tamaño de los datos no es válido.

El parámetro inputBuffer contiene una longitud de desplazamiento no válida.

o bien

El parámetro inputCount contiene un valor no válido.

El parámetro inputBuffer es null.

El parámetro inputBuffer requiere un número no negativo.

Ejemplos

En el ejemplo de código siguiente se muestra cómo llamar al TransformBlock método para iterar mediante inputBytes la transformación mediante blockSize. Este ejemplo de código es parte de un ejemplo más grande proporcionado para la clase ToBase64Transform.

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

Comentarios

La ToBase64Transform clase es un algoritmo de bloque que procesa bloques de entrada de 3 bytes y crea bloques de salida de 4 bytes. El TransformBlock método transforma un bloque de entrada de 24 bits en 32 bits de datos de caracteres. Debe mantener 3 límites de entrada de bytes en 4 límites de salida de bytes para que coincidan con la transformación de bloque.

Se aplica a

Consulte también