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 da cui iniziare a usare i dati.

inputCount
Int32

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

outputBuffer
Byte[]

Output in cui scrivere il risultato.

outputOffset
Int32

Offset nella matrice di byte di output da cui iniziare la scrittura dei dati.

Restituisce

Numero di byte scritti.

Implementazioni

Eccezioni

L'oggetto ToBase64Transform corrente è già stato eliminato.

Le dimensioni dei dati non sono valide.

Il parametro inputOffset contiene una lunghezza di offset non valida.

-o-

Il parametro inputCount contiene un valore non valido.

Il parametro inputBuffer è null.

Il parametro inputCount richiede un numero non negativo e minore o uguale alla lunghezza di inputBuffer.

Esempio

Nell'esempio di codice seguente viene illustrato come chiamare il metodo TransformBlock per scorrere inputBytes trasformazione tramite blockSize. Questo esempio di codice fa parte di un esempio più ampio fornito per la classe 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

Commenti

La classe ToBase64Transform è un algoritmo a blocchi che elabora blocchi di input di 3 byte e crea blocchi di output di 4 byte. Il metodo TransformBlock 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