Condividi tramite


ToBase64Transform.TransformBlock(Byte[], Int32, Int32, Byte[], Int32) Metodo

Definizione

Converte l'area specificata della matrice di byte di input in Base 64 e copia il risultato nell'area specificata della matrice di byte di output.

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

Parametri

inputBuffer
Byte[]

Input da calcolare in Base 64.

inputOffset
Int32

Offset nella matrice di byte di input dal quale iniziare a utilizzare i dati.

inputCount
Int32

Numero di byte nella matrice di byte di input da usare come dati.

outputBuffer
Byte[]

Output nel quale scrivere il risultato.

outputOffset
Int32

Offset nella matrice di byte di output dal quale iniziare a scrivere i dati.

Restituisce

Numero di byte scritti.

Implementazioni

Eccezioni

L'oggetto ToBase64Transform corrente è già stato eliminato.

La dimensione dei dati non è valida.

Il parametro inputBuffer contiene una lunghezza di offset non valida.

-oppure-

Il parametro inputCount contiene un valore non valido.

Il valore del parametro inputBuffer è null.

Per il parametro inputBuffer è richiesto un numero non negativo.

Esempio

Nell'esempio di codice seguente viene illustrato come chiamare il TransformBlock metodo per scorrere inputBytes la trasformazione tramite blockSize. Questo esempio di codice fa parte di un esempio più ampio fornito per la ToBase64Transform classe .

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

Commenti

La ToBase64Transform classe è un algoritmo a blocchi che elabora blocchi di input di 3 byte e crea blocchi di output di 4 byte. Il TransformBlock metodo trasforma un blocco di input di 24 bit in 32 bit di dati di tipo carattere. È necessario mantenere 3 limiti di input di byte a 4 limiti di output di byte per trovare la corrispondenza con la trasformazione del blocco.

Si applica a

Vedi anche