次の方法で共有


FromBase64Transform.TransformFinalBlock メソッド

指定したバイト配列の指定した領域を base 64 から変換します。

Public Overridable Function TransformFinalBlock( _
   ByVal inputBuffer() As Byte, _   ByVal inputOffset As Integer, _   ByVal inputCount As Integer _) As Byte() Implements ICryptoTransform.TransformFinalBlock
[C#]
public virtual byte[] TransformFinalBlock(byte[] inputBuffer,intinputOffset,intinputCount);
[C++]
public: virtual unsigned char TransformFinalBlock(unsigned charinputBuffer __gc[],intinputOffset,intinputCount)  __gc[];
[JScript]
public function TransformFinalBlock(
   inputBuffer : Byte[],inputOffset : int,inputCount : int) : Byte[];

パラメータ

  • inputBuffer
    base 64 から変換する入力。
  • inputOffset
    バイト配列内のデータの使用開始位置を示すオフセット。
  • inputCount
    バイト配列内でデータとして使用されるバイトの数。

戻り値

計算された変換後のデータ。

実装

ICryptoTransform.TransformFinalBlock

例外

例外の種類 条件
ObjectDisposedException 現在の FromBase64Transform は既に破棄されています。

使用例

 
Imports System
Imports System.IO
Imports System.Security.Cryptography

Namespace ToBase64Transform_Examples
    Class MyMainClass
        Public Shared Sub Main()
            'Insert your file names into this method call.
            DecodeFromFile("c:\encoded.txt", "c:\roundtrip.txt")
        End Sub 'Main

        Public Shared Sub DecodeFromFile(ByVal inFileName As String, ByVal outFileName As String)
            Dim myTransform As New FromBase64Transform(FromBase64TransformMode.IgnoreWhiteSpaces)

            Dim myOutputBytes(myTransform.OutputBlockSize - 1) As Byte

            'Open the input and output files.
            Dim myInputFile As New FileStream(inFileName, FileMode.Open, FileAccess.Read)
            Dim myOutputFile As New FileStream(outFileName, FileMode.Create, FileAccess.Write)

            'Retrieve the file contents into a byte array.
            Dim myInputBytes(myInputFile.Length - 1) As Byte
            myInputFile.Read(myInputBytes, 0, myInputBytes.Length)

            'Transform the data in chunks the size of InputBlockSize.
            Dim i As Integer = 0
            While myInputBytes.Length - i > 4 'myTransform.InputBlockSize
                myTransform.TransformBlock(myInputBytes, i, 4, myOutputBytes, 0) 'myTransform.InputBlockSize
                i += 4 'myTransform.InputBlockSize
                myOutputFile.Write(myOutputBytes, 0, myTransform.OutputBlockSize)
            End While

            'Transform the final block of data.
            myOutputBytes = myTransform.TransformFinalBlock(myInputBytes, i, myInputBytes.Length - i)
            myOutputFile.Write(myOutputBytes, 0, myOutputBytes.Length)

            'Free up any used resources.
            myTransform.Clear()

            myInputFile.Close()
            myOutputFile.Close()
        End Sub 'DecodeFromFile
    End Class 'MyMainClass
End Namespace 'ToBase64Transform_Examples

[C#] 
using System;
using System.IO;
using System.Security.Cryptography;

namespace ToBase64Transform_Examples
{
    class MyMainClass
    {
        public static void Main()
        {
            //Insert your file names into this method call.
            DecodeFromFile("c:\\encoded.txt", "c:\\roundtrip.txt");
        }

        public static void DecodeFromFile(string inFileName, string outFileName)
        {
            FromBase64Transform myTransform = new FromBase64Transform(FromBase64TransformMode.IgnoreWhiteSpaces);

            byte[] myOutputBytes = new byte[myTransform.OutputBlockSize];

            //Open the input and output files.
            FileStream myInputFile = new FileStream(inFileName, FileMode.Open, FileAccess.Read);
            FileStream myOutputFile = new FileStream(outFileName, FileMode.Create, FileAccess.Write);

            //Retrieve the file contents into a byte array.
            byte[] myInputBytes = new byte[myInputFile.Length];
            myInputFile.Read(myInputBytes, 0, myInputBytes.Length);

            //Transform the data in chunks the size of InputBlockSize.
            int i = 0;
            while(myInputBytes.Length - i > 4/*myTransform.InputBlockSize*/)
            {
                myTransform.TransformBlock(myInputBytes, i, 4/*myTransform.InputBlockSize*/, myOutputBytes, 0);
                i += 4/*myTransform.InputBlockSize*/;
                myOutputFile.Write(myOutputBytes, 0, myTransform.OutputBlockSize);
            }
            
            //Transform the final block of data.
            myOutputBytes = myTransform.TransformFinalBlock(myInputBytes, i, myInputBytes.Length - i);
            myOutputFile.Write(myOutputBytes, 0, myOutputBytes.Length);

            //Free up any used resources.
            myTransform.Clear();

            myInputFile.Close();
            myOutputFile.Close();
        }
    }
}

[C++] 
#using <mscorlib.dll>
using namespace System;
using namespace System::IO;
using namespace System::Security::Cryptography;

class MyMainClass
{
public:
    static void DecodeFromFile(String *inFileName, String *outFileName)
    {
        FromBase64Transform * myTransform = new FromBase64Transform(FromBase64TransformMode::IgnoreWhiteSpaces);

        Byte myOutputBytes __gc[] = new Byte __gc[myTransform->OutputBlockSize];

        //Open the input and output files.
        FileStream * myInputFile = new FileStream(inFileName, FileMode::Open, FileAccess::Read);
        FileStream * myOutputFile = new FileStream(outFileName, FileMode::Create, FileAccess::Write);

        //Retrieve the file contents into a Byte array.
        Byte myInputBytes __gc[] = new Byte __gc[myInputFile->Length];
        myInputFile->Read(myInputBytes, 0, myInputBytes->Length);

        //Transform the data in chunks the size of InputBlockSize.
        int i = 0;
        while(myInputBytes->Length - i > 4/*myTransform->InputBlockSize*/)
        {
            myTransform->TransformBlock(myInputBytes, i, 4/*myTransform->InputBlockSize*/, myOutputBytes, 0);
            i += 4/*myTransform->InputBlockSize*/;
            myOutputFile->Write(myOutputBytes, 0, myTransform->OutputBlockSize);
        }
        
        //Transform the final block of data.
        myOutputBytes = myTransform->TransformFinalBlock(myInputBytes, i, myInputBytes->Length - i);
        myOutputFile->Write(myOutputBytes, 0, myOutputBytes->Length);

        //Free up any used resources.
        myTransform->Clear();

        myInputFile->Close();
        myOutputFile->Close();
    }
};

int main()
{
    MyMainClass * m = new MyMainClass();
    //Insert your file names into this method call.
    m->DecodeFromFile("c:\\encoded.txt", "c:\\roundtrip.txt");
}

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

参照

FromBase64Transform クラス | FromBase64Transform メンバ | System.Security.Cryptography 名前空間 | 暗号サービス