Sdílet prostřednictvím


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

Definice

Převede zadanou oblast vstupního pole bajtů na základ 64 a zkopíruje výsledek do zadané oblasti výstupního pole bajtů.

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

Parametry

inputBuffer
Byte[]

Vstup pro výpočet do základu 64.

inputOffset
Int32

Posun vstupního pole bajtů, ze kterého chcete začít používat data.

inputCount
Int32

Počet bajtů ve vstupním poli bajtů, které se mají použít jako data.

outputBuffer
Byte[]

Výstup, do kterého chcete zapsat výsledek.

outputOffset
Int32

Posun výstupního pole bajtů, ze kterého se mají začít zapisovat data.

Návraty

Počet zapsaných bajtů.

Implementuje

Výjimky

Aktuální ToBase64Transform objekt již byl odstraněn.

Velikost dat není platná.

Parametr inputBuffer obsahuje neplatnou délku posunu.

-nebo-

Parametr inputCount obsahuje neplatnou hodnotu.

Parametr inputBuffer je null.

Parametr inputBuffer vyžaduje nezáporné číslo.

Příklady

Následující příklad kódu ukazuje, jak volat metodu TransformBlock k iteraci prostřednictvím inputBytes transformace pomocí blockSize. Tento příklad kódu je součástí většího příkladu ToBase64Transform pro třídu .

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

Poznámky

Třída ToBase64Transform je blokový algoritmus, který zpracovává vstupní bloky o 3 bajtech a vytváří výstupní bloky se 4 bajty. Metoda TransformBlock transformuje vstupní blok 24 bitů na 32 bitů znakových dat. Aby se vstupní hranice 3 bajtu shodovaly s transformací bloku, musíte udržovat vstupní hranice až po 4 bajtové výstupní hranice.

Platí pro

Viz také