Cette page vous a-t-elle été utile ?
Votre avis sur ce contenu est important. N'hésitez pas à nous faire part de vos commentaires.
Vous avez d'autres commentaires ?
1500 caractères restants
GetChars, méthode (Byte[], Int32, Int32, Char[], Int32)
Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source

Decoder.GetChars, méthode (Byte[], Int32, Int32, Char[], Int32)

En cas de substitution dans une classe dérivée, décode une séquence d'octets du tableau d'octets spécifié et les octets de la mémoire tampon interne dans le tableau de caractères spécifié.

Espace de noms :  System.Text
Assembly :  mscorlib (dans mscorlib.dll)

public abstract int GetChars(
	byte[] bytes,
	int byteIndex,
	int byteCount,
	char[] chars,
	int charIndex
)

Paramètres

bytes
Type : System.Byte[]
Tableau d'octets contenant la séquence d'octets à décoder.
byteIndex
Type : System.Int32
Index du premier octet à décoder.
byteCount
Type : System.Int32
Nombre d'octets à décoder.
chars
Type : System.Char[]
Tableau de caractères contenant le jeu de caractères obtenu.
charIndex
Type : System.Int32
Index auquel commencer l'écriture du jeu de caractères obtenu.

Valeur de retour

Type : System.Int32
Nombre réel de caractères écrits dans chars.

ExceptionCondition
ArgumentNullException

bytes est null (Nothing).

ou

chars est null (Nothing).

ArgumentOutOfRangeException

byteIndex, byteCount ou charIndex est inférieur à zéro.

ou

byteindex et byteCount ne désignent pas une plage valide de bytes.

ou

charIndex n'est pas un index valide dans chars.

ArgumentException

chars ne possède pas une capacité suffisante entre charIndex et la fin du tableau pour prendre en charge les caractères obtenus.

DecoderFallbackException

Un secours s'est produit (consultez Encodage de caractères dans le .NET Framework pour obtenir une explication plus complète)

– et –

Fallback a la valeur DecoderExceptionFallback.

Souvenez-vous que l'objet Decoder enregistre l'état entre les appels à GetChars. Lorsque l'application est faite avec un flux de données, elle doit affecter au paramètre flush la valeur true pour 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 tableau requise par GetChars pour stocker les caractères obtenus, l'application doit utiliser GetCharCount.

Si GetChars est appelé avec flush ayant comme valeur false, le décodeur stocke les octets de queue à la fin du bloc de données dans une mémoire tampon interne et les utilise lors de la prochaine opération de décodage. L'application doit appeler GetCharCount sur un bloc de données juste avant d'appeler GetChars sur le même bloc, de telle sorte que tous les octets de queue du bloc précédent soient inclus dans le calcul.

Si votre application est utilisée pour convertir de nombreux segments d'un flux d'entrée, envisagez d'utiliser la méthode Convert. GetChars lèvera une exception si la mémoire tampon de sortie n'est pas assez grande, mais Convert remplira autant d'espace que possible et retournera les octets lus et les caractères écrits. Consultez également la rubrique Encoding.GetChars pour plus de commentaires.

L'exemple suivant montre comment décoder une plage d'éléments d'un tableau d'octets et comment stocker ces derniers dans un tableau de caractères Unicode. La méthode GetCharCount permet de calculer le nombre de caractères nécessaires au stockage des éléments décodés dans le tableau bytes. La méthode GetChars décode les éléments spécifiés du 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]

*/


.NET Framework

Pris en charge dans : 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

Bibliothèque de classes portable

Pris en charge dans : Bibliothèque de classes portable

.NET pour les applications du Windows Store

Pris en charge dans : Windows 8

.NET pour les applications Windows Phone

Pris en charge dans : Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (rôle principal du serveur non pris en charge), Windows Server 2008 R2 (rôle principal du serveur pris en charge avec SP1 ou version ultérieure ; Itanium non pris en charge)

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

Ajouts de la communauté

AJOUTER
Afficher:
© 2015 Microsoft