Decoder.GetChars Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
En cas de substitution dans une classe dérivée, décode une séquence d’octets en un ensemble de caractères.
Surcharges
| Nom | Description |
|---|---|
| GetChars(ReadOnlySpan<Byte>, Span<Char>, Boolean) |
En cas de substitution dans une classe dérivée, décode une séquence d’octets d’étendue et d’octets dans la mémoire tampon interne dans un ensemble de caractères stockés à partir du pointeur de caractères spécifié. Un paramètre indique s’il faut effacer l’état interne du décodeur après la conversion. |
| GetChars(Byte*, Int32, Char*, Int32, Boolean) |
En cas de substitution dans une classe dérivée, décode une séquence d’octets commençant par le pointeur d’octet spécifié et les octets de la mémoire tampon interne dans un ensemble de caractères stockés à partir du pointeur de caractères spécifié. Un paramètre indique s’il faut effacer l’état interne du décodeur après la conversion. |
| GetChars(Byte[], Int32, Int32, Char[], Int32) |
En cas de substitution dans une classe dérivée, décode une séquence d’octets à partir du tableau d’octets spécifié et de tous les octets de la mémoire tampon interne dans le tableau de caractères spécifié. |
| GetChars(Byte[], Int32, Int32, Char[], Int32, Boolean) |
En cas de substitution dans une classe dérivée, décode une séquence d’octets à partir du tableau d’octets spécifié et de tous les octets de la mémoire tampon interne dans le tableau de caractères spécifié. Un paramètre indique s’il faut effacer l’état interne du décodeur après la conversion. |
GetChars(ReadOnlySpan<Byte>, Span<Char>, Boolean)
En cas de substitution dans une classe dérivée, décode une séquence d’octets d’étendue et d’octets dans la mémoire tampon interne dans un ensemble de caractères stockés à partir du pointeur de caractères spécifié. Un paramètre indique s’il faut effacer l’état interne du décodeur après la conversion.
public:
virtual int GetChars(ReadOnlySpan<System::Byte> bytes, Span<char> chars, bool flush);
public virtual int GetChars(ReadOnlySpan<byte> bytes, Span<char> chars, bool flush);
abstract member GetChars : ReadOnlySpan<byte> * Span<char> * bool -> int
override this.GetChars : ReadOnlySpan<byte> * Span<char> * bool -> int
Public Overridable Function GetChars (bytes As ReadOnlySpan(Of Byte), chars As Span(Of Char), flush As Boolean) As Integer
Paramètres
- bytes
- ReadOnlySpan<Byte>
Étendue d’octets à décoder.
- flush
- Boolean
true pour effacer l’état interne du décodeur après la conversion ; sinon, false.
Retours
Nombre réel de caractères écrits à l’étendue indiquée par le chars paramètre.
Remarques
N’oubliez pas que l’objet enregistre l’état Decoder entre les appels à GetChars. Une fois l’application terminée avec un flux de données, elle doit définir le flush paramètre pour true s’assurer que les informations d’état sont vidées. Avec ce paramètre, le décodeur ignore les octets non valides à la fin du bloc de données et efface la mémoire tampon interne.
Pour calculer la taille exacte de l’étendue requise GetChars pour stocker les caractères résultants, l’application doit utiliser GetCharCount.
Si GetChars elle est appelée avec flush la valeur définie false, le décodeur stocke les octets de fin à la fin du bloc de données dans une mémoire tampon interne et les utilise dans l’opération de décodage suivante. L’application doit appeler GetCharCount un bloc de données immédiatement avant d’appeler GetChars sur le même bloc, afin que les octets de fin du bloc précédent soient inclus dans le calcul.
Si votre application consiste à convertir de nombreux segments d’un flux d’entrée, envisagez d’utiliser la Convert méthode. GetChars lève une exception si l’étendue de sortie n’est pas suffisamment grande, mais Convert remplit autant d’espace que possible et retourne les octets lus et les caractères écrits, à condition que le tableau de sortie autorise au moins deux caractères. Consultez également la Encoding.GetChars rubrique pour plus de commentaires.
S’applique à
GetChars(Byte*, Int32, Char*, Int32, Boolean)
Important
Cette API n’est pas conforme CLS.
En cas de substitution dans une classe dérivée, décode une séquence d’octets commençant par le pointeur d’octet spécifié et les octets de la mémoire tampon interne dans un ensemble de caractères stockés à partir du pointeur de caractères spécifié. Un paramètre indique s’il faut effacer l’état interne du décodeur après la conversion.
public:
virtual int GetChars(System::Byte* bytes, int byteCount, char* chars, int charCount, bool flush);
[System.CLSCompliant(false)]
[System.Runtime.InteropServices.ComVisible(false)]
public virtual int GetChars(byte* bytes, int byteCount, char* chars, int charCount, bool flush);
[System.CLSCompliant(false)]
[System.Runtime.InteropServices.ComVisible(false)]
[System.Security.SecurityCritical]
public virtual int GetChars(byte* bytes, int byteCount, char* chars, int charCount, bool flush);
[System.CLSCompliant(false)]
public virtual int GetChars(byte* bytes, int byteCount, char* chars, int charCount, bool flush);
[<System.CLSCompliant(false)>]
[<System.Runtime.InteropServices.ComVisible(false)>]
abstract member GetChars : nativeptr<byte> * int * nativeptr<char> * int * bool -> int
override this.GetChars : nativeptr<byte> * int * nativeptr<char> * int * bool -> int
[<System.CLSCompliant(false)>]
[<System.Runtime.InteropServices.ComVisible(false)>]
[<System.Security.SecurityCritical>]
abstract member GetChars : nativeptr<byte> * int * nativeptr<char> * int * bool -> int
override this.GetChars : nativeptr<byte> * int * nativeptr<char> * int * bool -> int
[<System.CLSCompliant(false)>]
abstract member GetChars : nativeptr<byte> * int * nativeptr<char> * int * bool -> int
override this.GetChars : nativeptr<byte> * int * nativeptr<char> * int * bool -> int
Paramètres
- bytes
- Byte*
Pointeur vers le premier octet à décoder.
- byteCount
- Int32
Nombre d’octets à décoder.
- chars
- Char*
Pointeur vers l’emplacement auquel commencer l’écriture du jeu de caractères résultant.
- charCount
- Int32
Nombre maximal de caractères à écrire.
- flush
- Boolean
true pour effacer l’état interne du décodeur après la conversion ; sinon, false.
Retours
Nombre réel de caractères écrits à l’emplacement indiqué par le chars paramètre.
- Attributs
Exceptions
byteCount ou charCount est inférieur à zéro.
charCount est inférieur au nombre de caractères résultant.
Un secours s’est produit (pour plus d’informations, consultez Encodage de caractères dans .NET)
-et-
Fallback a la valeur DecoderExceptionFallback.
Remarques
N’oubliez pas que l’objet enregistre l’état Decoder entre les appels à GetChars. Une fois l’application terminée avec un flux de données, elle doit définir le flush paramètre pour true s’assurer que les informations d’état sont vidées. Avec ce paramètre, le décodeur ignore les octets non valides à la fin du bloc de données et efface la mémoire tampon interne.
Pour calculer la taille exacte de la mémoire tampon qui GetChars nécessite de stocker les caractères résultants, l’application doit utiliser GetCharCount.
Si GetChars elle est appelée avec flush la valeur définie false, le décodeur stocke les octets de fin à la fin du bloc de données dans une mémoire tampon interne et les utilise dans l’opération de décodage suivante. L’application doit appeler GetCharCount un bloc de données immédiatement avant d’appeler GetChars sur le même bloc, afin que les octets de fin du bloc précédent soient inclus dans le calcul.
Si votre application consiste à convertir de nombreux segments d’un flux d’entrée, envisagez d’utiliser la Convert méthode. GetChars lève une exception si la mémoire tampon de sortie n’est pas suffisamment grande, mais Convert remplit autant d’espace que possible et retourne les octets lus et les caractères écrits, à condition que le tableau de sortie autorise au moins deux caractères. Consultez également la Encoding.GetChars rubrique pour plus de commentaires.
Voir aussi
S’applique à
GetChars(Byte[], Int32, Int32, Char[], Int32)
En cas de substitution dans une classe dérivée, décode une séquence d’octets à partir du tableau d’octets spécifié et de tous les octets de la mémoire tampon interne dans le tableau de caractères spécifié.
public:
abstract int GetChars(cli::array <System::Byte> ^ bytes, int byteIndex, int byteCount, cli::array <char> ^ chars, int charIndex);
public abstract int GetChars(byte[] bytes, int byteIndex, int byteCount, char[] chars, int charIndex);
abstract member GetChars : byte[] * int * int * char[] * int -> int
Public MustOverride Function GetChars (bytes As Byte(), byteIndex As Integer, byteCount As Integer, chars As Char(), charIndex As Integer) As Integer
Paramètres
- bytes
- Byte[]
Tableau d’octets contenant la séquence d’octets à décoder.
- byteIndex
- Int32
Index du premier octet à décoder.
- byteCount
- Int32
Nombre d’octets à décoder.
- chars
- Char[]
Tableau de caractères à contenir le jeu de caractères résultant.
- charIndex
- Int32
Index auquel commencer l’écriture du jeu de caractères résultant.
Retours
Nombre réel de caractères écrits en chars.
Exceptions
byteIndex ou byteCountcharIndex est inférieur à zéro.
-ou-
byteIndex et byteCount ne désignent pas une plage valide en bytes.
-ou-
charIndex n’est pas un index valide dans chars.
chars n’a pas suffisamment de capacité de charIndex la fin du tableau pour prendre en charge les caractères résultants.
Un secours s’est produit (pour plus d’informations, consultez Encodage de caractères dans .NET)
-et-
Fallback a la valeur DecoderExceptionFallback.
Exemples
L’exemple suivant montre comment décoder une plage d’éléments à partir d’un tableau d’octets et les stocker dans un tableau de caractères Unicode. La GetCharCount méthode est utilisée pour calculer le nombre de caractères nécessaires pour stocker les éléments décodés dans le tableau bytes. La GetChars méthode décode les éléments spécifiés dans le tableau d’octets et les stocke dans le nouveau tableau de caractères.
using System;
using System.Text;
class UnicodeEncodingExample {
public static void Main() {
Char[] chars;
Byte[] bytes = new Byte[] {
85, 0, 110, 0, 105, 0, 99, 0, 111, 0, 100, 0, 101, 0
};
Decoder uniDecoder = Encoding.Unicode.GetDecoder();
int charCount = uniDecoder.GetCharCount(bytes, 0, bytes.Length);
chars = new Char[charCount];
int charsDecodedCount = uniDecoder.GetChars(bytes, 0, bytes.Length, chars, 0);
Console.WriteLine(
"{0} characters used to decode bytes.", charsDecodedCount
);
Console.Write("Decoded chars: ");
foreach (Char c in chars) {
Console.Write("[{0}]", c);
}
Console.WriteLine();
}
}
/* This code example produces the following output.
7 characters used to decode bytes.
Decoded chars: [U][n][i][c][o][d][e]
*/
Imports System.Text
Class UnicodeEncodingExample
Public Shared Sub Main()
Dim chars() As Char
Dim bytes() As Byte = { _
85, 0, 110, 0, 105, 0, 99, 0, 111, 0, 100, 0, 101, 0 _
}
Dim uniDecoder As Decoder = Encoding.Unicode.GetDecoder()
Dim charCount As Integer = uniDecoder.GetCharCount(bytes, 0, bytes.Length)
chars = New Char(charCount - 1) {}
Dim charsDecodedCount As Integer = _
uniDecoder.GetChars(bytes, 0, bytes.Length, chars, 0)
Console.WriteLine( _
"{0} characters used to decode bytes.", _
charsDecodedCount _
)
Console.Write("Decoded chars: ")
Dim c As Char
For Each c In chars
Console.Write("[{0}]", c)
Next c
Console.WriteLine()
End Sub
End Class
'This code example produces the following output.
'
'7 characters used to decode bytes.
'Decoded chars: [U][n][i][c][o][d][e]
'
Remarques
N’oubliez pas que l’objet enregistre l’état Decoder entre les appels à GetChars. Une fois l’application terminée avec un flux de données, elle doit définir le flush paramètre pour true s’assurer que les informations d’état sont vidées. Avec ce paramètre, le décodeur ignore les octets non valides à la fin du bloc de données et efface la mémoire tampon interne.
Pour calculer la taille exacte du tableau qui GetChars nécessite de stocker les caractères résultants, l’application doit utiliser GetCharCount.
Si GetChars elle est appelée avec flush la valeur définie false, le décodeur stocke les octets de fin à la fin du bloc de données dans une mémoire tampon interne et les utilise dans l’opération de décodage suivante. L’application doit appeler GetCharCount un bloc de données immédiatement avant d’appeler GetChars sur le même bloc, afin que les octets de fin du bloc précédent soient inclus dans le calcul.
Si votre application consiste à convertir de nombreux segments d’un flux d’entrée, envisagez d’utiliser la Convert méthode. GetChars lève une exception si la mémoire tampon de sortie n’est pas suffisamment grande, mais Convert remplit autant d’espace que possible et retourne les octets lus et les caractères écrits, à condition que le tableau de sortie autorise au moins deux caractères. Consultez également la Encoding.GetChars rubrique pour plus de commentaires.
Voir aussi
S’applique à
GetChars(Byte[], Int32, Int32, Char[], Int32, Boolean)
En cas de substitution dans une classe dérivée, décode une séquence d’octets à partir du tableau d’octets spécifié et de tous les octets de la mémoire tampon interne dans le tableau de caractères spécifié. Un paramètre indique s’il faut effacer l’état interne du décodeur après la conversion.
public:
virtual int GetChars(cli::array <System::Byte> ^ bytes, int byteIndex, int byteCount, cli::array <char> ^ chars, int charIndex, bool flush);
public virtual int GetChars(byte[] bytes, int byteIndex, int byteCount, char[] chars, int charIndex, bool flush);
abstract member GetChars : byte[] * int * int * char[] * int * bool -> int
override this.GetChars : byte[] * int * int * char[] * int * bool -> int
Public Overridable Function GetChars (bytes As Byte(), byteIndex As Integer, byteCount As Integer, chars As Char(), charIndex As Integer, flush As Boolean) As Integer
Paramètres
- bytes
- Byte[]
Tableau d’octets contenant la séquence d’octets à décoder.
- byteIndex
- Int32
Index du premier octet à décoder.
- byteCount
- Int32
Nombre d’octets à décoder.
- chars
- Char[]
Tableau de caractères à contenir le jeu de caractères résultant.
- charIndex
- Int32
Index auquel commencer l’écriture du jeu de caractères résultant.
- flush
- Boolean
true pour effacer l’état interne du décodeur après la conversion ; sinon, false.
Retours
Nombre réel de caractères écrits dans le chars paramètre.
Exceptions
byteIndex ou byteCountcharIndex est inférieur à zéro.
-ou-
byteIndex et byteCount ne désignent pas une plage valide en bytes.
-ou-
charIndex n’est pas un index valide dans chars.
chars n’a pas suffisamment de capacité de charIndex la fin du tableau pour prendre en charge les caractères résultants.
Un secours s’est produit (pour plus d’informations, consultez Encodage de caractères dans .NET)
-et-
Fallback a la valeur DecoderExceptionFallback.
Remarques
N’oubliez pas que l’objet enregistre l’état Decoder entre les appels à GetChars. Une fois l’application terminée avec un flux de données, elle doit définir le flush paramètre pour true s’assurer que les informations d’état sont vidées. Avec ce paramètre, le décodeur ignore les octets non valides à la fin du bloc de données et efface la mémoire tampon interne.
Pour calculer la taille exacte du tableau qui GetChars nécessite de stocker les caractères résultants, l’application doit utiliser GetCharCount.
Si GetChars elle est appelée avec flush la valeur définie false, le décodeur stocke les octets de fin à la fin du bloc de données dans une mémoire tampon interne et les utilise dans l’opération de décodage suivante. L’application doit appeler GetCharCount un bloc de données immédiatement avant d’appeler GetChars sur le même bloc, afin que les octets de fin du bloc précédent soient inclus dans le calcul.
Si votre application consiste à convertir de nombreux segments d’un flux d’entrée, envisagez d’utiliser la Convert méthode. GetChars lève une exception si la mémoire tampon de sortie n’est pas suffisamment grande, mais Convert remplit autant d’espace que possible et retourne les octets lus et les caractères écrits, à condition que le tableau de sortie autorise au moins deux caractères. Consultez également la Encoding.GetChars rubrique pour plus de commentaires.