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 metodo per eseguire l'iterazione TransformBlock tramite inputBytes la trasformazione in base blockSizea . Questo esempio di codice fa parte di un esempio più grande 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 carattere. È necessario mantenere 3 limiti di input di byte a 4 limiti di output di byte per corrispondere alla trasformazione del blocco.

Si applica a

Vedi anche