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

Definition

Wandelt den angegebenen Bereich des Eingabebytearrays in Base-64 um und kopiert das Ergebnis in den angegebenen Bereich des Ausgabebytearrays.

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

Parameter

inputBuffer
Byte[]

Die in Base-64 zu konvertierende Eingabe.

inputOffset
Int32

Der Offset im Eingabebytearray, ab dem Daten verwendet werden sollen.

inputCount
Int32

Die Anzahl der Bytes im Eingabebytearray, die als Daten verwendet werden sollen.

outputBuffer
Byte[]

Die Ausgabe, in die das Ergebnis geschrieben werden soll.

outputOffset
Int32

Der Offset im Ausgabebytearray, ab dem Daten geschrieben werden sollen.

Gibt zurück

Die Anzahl der geschriebenen Byte

Implementiert

Ausnahmen

Das aktuelle ToBase64Transform-Objekt wurde bereits freigegeben.

Die Datengröße ist ungültig.

Der inputBuffer-Parameter enthält eine ungültige Offsetlänge.

- oder -

Der inputCount-Parameter hat einen ungültigen Wert.

Der inputBuffer-Parameter ist null.

Für den inputBuffer-Parameter ist eine nicht negative Zahl erforderlich.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie die TransformBlock -Methode aufgerufen wird, um die Transformation durch blockSizeinputBytes zu durchlaufen. Dieses Codebeispiel ist Teil eines größeren Beispiels, das für die ToBase64Transform-Klasse bereitgestellt wird.

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

Hinweise

Die ToBase64Transform -Klasse ist ein Blockalgorithmus, der Eingabeblöcke von 3 Bytes verarbeitet und Ausgabeblöcke von 4 Bytes erstellt. Die TransformBlock -Methode transformiert einen Eingabeblock mit 24 Bits in 32 Bits von Zeichendaten. Sie müssen 3 Byte-Eingabegrenzen bis zu 4 Byte-Ausgabegrenzen beibehalten, um der Blocktransformation zu entsprechen.

Gilt für:

Weitere Informationen