本文整理汇总了C#中System.Text.Decoder.GetCharCount方法的典型用法代码示例。如果您正苦于以下问题:C# Decoder.GetCharCount方法的具体用法?C# Decoder.GetCharCount怎么用?C# Decoder.GetCharCount使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Text.Decoder
的用法示例。
在下文中一共展示了Decoder.GetCharCount方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GetStringFromByteArray
// GetStringFromByteArray metodu byte dizisindeki belli uzunluktaki
// bir parçayı alarak, string olarak döndürür.
//
// bytes: Byte dizisi.
// iStart: Byte dizisindeki başlangıç konumu.
// iLen: Çevrilecek byte parçasının uzunluğu.
// dec: Çevirmede kullanılacak Decoder.
public static string GetStringFromByteArray(Byte[] bytes, int iStart,
int iLen, Decoder dec)
{
// Parametrelerin hata kontrolünü yap.
if ((iStart + iLen <= bytes.Length) && (iStart >= 0) && (iLen > 0))
{
// Karakter dizisi nesnesi oluştur.
Char[] chars;
// StringBuilder nesnesi oluştur.
StringBuilder sb = new StringBuilder();
// GetCharCount metoduyla, byte dizisindeki kodlaması çözülecek
// olan byte'lar için gerekli karakter sayısını hesapla.
int iCharCount = dec.GetCharCount(bytes, iStart, iLen);
// Karakter dizisini boyutlandır.
chars = new Char[iCharCount];
// GetChars metoduyla, belirtilen sayı kadar, byte dizisinden
// alınan elemanların karakter dizisine çevrilmesi:
dec.GetChars(bytes, iStart, iLen, chars, 0);
// must skip null-termination of C++ string
// Karakter dizisinin sonundaki null kontrolü için:
for (int i = 0; i < iCharCount; ++i)
{
// Konrol karakteri var mı?
if (Char.GetUnicodeCategory(chars[i]) != UnicodeCategory.Control)
{
// Karakter dizini doldur.
sb.Append(chars[i].ToString());
}
else
{
break; // Konrol karakteri yakalandı.
}//if
}//for
return sb.ToString();
}
else
{
// Parametrelerde hata bulundu. Boş bir string çevir.
return String.Empty;
}
}
示例2: ReadMinimum
public static string ReadMinimum(this Stream stream, Decoder decoder)
{
var buffer = new byte[16];
for (int i = 0; i < buffer.Length; ++i)
{
var read = stream.Read(buffer, i, 1);
if (read == 0)
{
if (i != 0) throw new Exception("invalid encoded text?");
return null;
}
var charCount = decoder.GetCharCount(buffer, 0, i + 1);
if (charCount != 0)
{
var chars = new char[charCount];
decoder.GetChars(buffer, 0, i + 1, chars, 0);
return new string(chars);
}
}
throw new Exception("impossible?");
}
示例3: GetCharsFromStream
private int GetCharsFromStream(Stream inputStream, int count, Decoder decoder, char[] chars)
{
// Now, read just the field value.
PGUtil.CheckedStreamRead(inputStream, _inputBuffer, 0, count);
int charCount = decoder.GetCharCount(_inputBuffer, 0, count);
decoder.GetChars(_inputBuffer, 0, count, chars, 0);
return charCount;
}