PowerTCP Mail for .NET
GetMaxCharCount Method
See Also  Example Send comments on this topic.
Dart.PowerTCP.Mail Namespace > ImapUTF7Encoding Class : GetMaxCharCount Method




byteCount
The number of bytes to decode.
Calculates the maximum number of characters that can result from decoding a specified number of bytes.

Syntax

Visual Basic (Declaration) 
Public Overrides Function GetMaxCharCount( _
   ByVal byteCount As Integer _
) As Integer
Visual Basic (Usage)Copy Code
Dim instance As ImapUTF7Encoding
Dim byteCount As Integer
Dim value As Integer
 
value = instance.GetMaxCharCount(byteCount)
C# 
public override int GetMaxCharCount( 
   int byteCount
)
Managed Extensions for C++ 
public: int GetMaxCharCount( 
   int byteCount
) override 
C++/CLI 
public:
int GetMaxCharCount( 
   int byteCount
) override 

Parameters

byteCount
The number of bytes to decode.

Return Value

The maximum number of characters that can result from decoding byteCount number of bytes.

Example

The following example demonstrates encoding/decoding data using the ImapUTF7Encoding class.
Visual BasicCopy Code
Private Sub ImapUTF7Test()

   ' Create Unicode character array
   ' ChrW(35)  = #
   ' ChrW(37)  = %
   ' ChrW(928) = Pi
   ' ChrW(931) = Sigma
   Dim chars() As Char = {ChrW(35), ChrW(37), ChrW(928), ChrW(931)}

   ' Initialize ImapUTF7 encoder
   Dim ImapUTF7 As New ImapUTF7Encoding()

   ' Determine how big target byte array needs to be 
   Dim Count As Integer = ImapUTF7.GetByteCount(chars, 0, chars.Length)
   ' You could also use the following to get the maximum size
   ' Dim Count As Integer = ImapUTF7.GetMaxByteCount(chars.Length)
   Debug.WriteLine(Count & " bytes needed to encode characters.")

   ' Initialize target byte array
   Dim Bytes(Count - 1) As Byte

   ' Encode data
   Count = ImapUTF7.GetBytes(chars, 0, chars.Length, bytes, 0)
   Debug.WriteLine(Count & " bytes encoded.")

   ' Show encoded bytes
   Dim B As Byte
   For Each B In Bytes
      Debug.WriteLine(B)
   Next

   ' Now to decode...first determine how big target char array needs to be
   Count = ImapUTF7.GetCharCount(Bytes, 0, Bytes.Length)
   ' You could also use the following to get the maximum size
   ' Count = ImapUTF7.GetMaxCharCount(Bytes.Length)
   Debug.WriteLine(Count & " characters needed to decode bytes.")

   ' Initialize target char array
   ReDim chars(Count - 1)

   ' Decode data
   Count = ImapUTF7.GetChars(Bytes, 0, Bytes.Length, chars, 0)
   Debug.WriteLine(Count & " bytes decoded.")

   ' Show decoded characters
   Dim C As Char
   For Each C In chars
      Debug.WriteLine(C)
   Next
End Sub
C#Copy Code
private void ImapUTF7Test()
{
   // Create Unicode character array
   char[] chars = {
      '\u0023', // #
      '\u0025', // %
      '\u03a0', // Pi
      '\u03a3'  // Sigma
   };

   // Initialize ImapUTF7 encoder
   ImapUTF7Encoding ImapUTF7 = new ImapUTF7Encoding();

   // Determine how big target byte array needs to be 
   int count = ImapUTF7.GetByteCount(chars, 0, chars.Length);
   // You could also use the following to get the maximum size
   // int count = ImapUTF7.GetMaxByteCount(chars.Length);
   Debug.WriteLine(count + " bytes needed to encode characters.");

   // Initialize target byte array
   byte[] bytes = new byte[count];

   // Encode data
   count = ImapUTF7.GetBytes(chars, 0, chars.Length, bytes, 0);
   Debug.WriteLine(count + " bytes encoded.");

   // Show encoded bytes
   foreach(byte b in bytes)
      Debug.WriteLine(b);

   // Now to decode...first determine how big target char array needs to be
   count = ImapUTF7.GetCharCount(bytes, 0, bytes.Length);
   // You could also use the following to get the maximum size
   // count = ImapUTF7.GetMaxCharCount(bytes.Length);
   Debug.WriteLine(count + " characters needed to decode bytes.");

   // Initialize target char array
   chars = new char[count];

   // Decode data
   count = ImapUTF7.GetChars(bytes, 0, bytes.Length, chars, 0);
   Debug.WriteLine(count + " bytes decoded.");

   // Show decoded characters
   foreach(char c in chars)
      Debug.WriteLine(c);
}

Remarks

Use ImapUTF7Encoding.GetCharCount to calculate exactly, or ImapUTF7Encoding.GetMaxCharCount to calculate at most, the array size required by the ImapUTF7Encoding.GetChars method to store decoded bytes.

Requirements

Target Platforms: Microsoft .NET Framework 2.0

See Also

Documentation Version 3.2
© 2010 Dart Communications. All Rights Reserved.