本文整理汇总了C#中ByteReader类的典型用法代码示例。如果您正苦于以下问题:C# ByteReader类的具体用法?C# ByteReader怎么用?C# ByteReader使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
ByteReader类属于命名空间,在下文中一共展示了ByteReader类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ReadContent
protected override void ReadContent(ByteReader reader)
{
this.Nodes = new Dictionary<ushort, IndexNode>(this.ItemCount);
for (var i = 0; i < this.ItemCount; i++)
{
var index = reader.ReadUInt16();
var levels = reader.ReadByte();
var node = new IndexNode(levels);
node.Page = this;
node.Position = new PageAddress(this.PageID, index);
node.KeyLength = reader.ReadUInt16();
node.Key = reader.ReadBsonValue(node.KeyLength);
node.DataBlock = reader.ReadPageAddress();
for (var j = 0; j < node.Prev.Length; j++)
{
node.Prev[j] = reader.ReadPageAddress();
node.Next[j] = reader.ReadPageAddress();
}
this.Nodes.Add(node.Position.Index, node);
}
}
示例2: read
public void read(byte[] bytes, ByteReader byteReader = null)
{
ByteReader reader = byteReader == null ? new ByteReader(bytes) : byteReader;
key = reader.ReadString();
value = reader.ReadString();
}
示例3: loadFromPath
public static Model loadFromPath(string path)
{
var io=new ByteReader(File.ReadAllBytes(path));
var model=new Model();
model.Magic=io.GetAscii(30);
model.ModelName=io.GetSJIS(20);
int boneMotionCount=io.GetInt();
model.BoneMotions=Enumerable.Range(1, boneMotionCount).Select(_
=>GetBoneMotion(io)).ToArray();
return model;
}
示例4: GetBoneMotion
private static BoneMotion GetBoneMotion(ByteReader io)
{
// ?
var motion=new BoneMotion();
motion.BoneName=io.GetSJIS(15);
motion.FrameNum=io.GetUInt();
motion.Position=io.GetVector3();
motion.Rotation=io.GetVector4();
var bezierParams=new byte[64];
io.GetBytes(ref bezierParams);
return motion;
}
示例5: Read
public unsafe byte* Read(ByteReader r, HttpRawRequest request)
{
// field-value = *( field-content / obs-fold )
// field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]
// field-vchar = VCHAR / obs-text
// obs-fold = CRLF 1*( SP / HTAB )
// obs-text = %x80-FF
byte* pValueEnd = r.Position;
while (r.Next().IsVcharOrObsTextOrSpaceOrTab())
if (!r.Current.IsSpaceOrHtab())
pValueEnd = r.Position;
byte c = r.Current;
if (c == '\r' && r.Next() == '\n')
return pValueEnd;
throw new BadRequestException();
}
示例6: Start
private void Start()
{
#if !UNITY_METRO
// Check for overridden localization data.
var localizationFilePath = Application.persistentDataPath + "/Localization.txt";
FileInfo localizationFile = new FileInfo(localizationFilePath);
if (localizationFile.Exists)
{
Debug.Log("Found localization file at " + localizationFilePath);
using (var fileStream = localizationFile.OpenRead())
{
using (var binaryReader = new BinaryReader(fileStream))
{
var bytes = binaryReader.ReadBytes((int)localizationFile.Length);
var nguiByteReader = new ByteReader(bytes);
var localizationData = nguiByteReader.ReadDictionary();
Localization.Set("TestLanguage", localizationData);
return;
}
}
}
#endif
// Get current system language.
SystemLanguage systemLanguage = Application.systemLanguage;
Debug.Log(string.Format("System Language: {0}", systemLanguage));
// Check if available, otherwise fallback to English.
TextAsset textAsset = Resources.Load(systemLanguage.ToString(), typeof(TextAsset)) as TextAsset;
if (textAsset == null)
{
systemLanguage = SystemLanguage.English;
Debug.Log(string.Format("Using fallback language: {0}", systemLanguage));
}
Localization.language = systemLanguage.ToString();
}
示例7: ReadContent
protected override void ReadContent(ByteReader reader)
{
this.DataBlocks = new Dictionary<ushort, DataBlock>(ItemCount);
for (var i = 0; i < ItemCount; i++)
{
var block = new DataBlock();
block.Page = this;
block.Position = new PageAddress(this.PageID, reader.ReadUInt16());
block.ExtendPageID = reader.ReadUInt32();
for (var j = 0; j < CollectionIndex.INDEX_PER_COLLECTION; j++)
{
block.IndexRef[j] = reader.ReadPageAddress();
}
var size = reader.ReadUInt16();
block.Data = reader.ReadBytes(size);
this.DataBlocks.Add(block.Position.Index, block);
}
}
示例8: LoadAssetReaders
internal ContentTypeReader[] LoadAssetReaders()
{
#pragma warning disable 0219, 0649
// Trick to prevent the linker removing the code, but not actually execute the code
if (falseflag)
{
// Dummy variables required for it to work on iDevices ** DO NOT DELETE **
// This forces the classes not to be optimized out when deploying to iDevices
var hByteReader = new ByteReader();
var hSByteReader = new SByteReader();
var hDateTimeReader = new DateTimeReader();
var hDecimalReader = new DecimalReader();
var hBoundingSphereReader = new BoundingSphereReader();
var hBoundingFrustumReader = new BoundingFrustumReader();
var hRayReader = new RayReader();
var hCharListReader = new ListReader<Char>();
var hRectangleListReader = new ListReader<Rectangle>();
var hVector3ListReader = new ListReader<Vector3>();
var hStringListReader = new ListReader<StringReader>();
var hSpriteFontReader = new SpriteFontReader();
var hTexture2DReader = new Texture2DReader();
var hCharReader = new CharReader();
var hRectangleReader = new RectangleReader();
var hStringReader = new StringReader();
var hVector2Reader = new Vector2Reader();
var hVector3Reader = new Vector3Reader();
var hVector4Reader = new Vector4Reader();
var hCurveReader = new CurveReader();
var hIndexBufferReader = new IndexBufferReader();
var hBoundingBoxReader = new BoundingBoxReader();
var hMatrixReader = new MatrixReader();
var hBasicEffectReader = new BasicEffectReader();
var hVertexBufferReader = new VertexBufferReader();
var hAlphaTestEffectReader = new AlphaTestEffectReader();
}
#pragma warning restore 0219, 0649
int numberOfReaders;
// The first content byte i read tells me the number of content readers in this XNB file
numberOfReaders = _reader.Read7BitEncodedInt();
contentReaders = new ContentTypeReader[numberOfReaders];
// For each reader in the file, we read out the length of the string which contains the type of the reader,
// then we read out the string. Finally we instantiate an instance of that reader using reflection
for (int i = 0; i < numberOfReaders; i++)
{
// This string tells us what reader we need to decode the following data
// string readerTypeString = reader.ReadString();
string originalReaderTypeString = _reader.ReadString();
// Need to resolve namespace differences
string readerTypeString = originalReaderTypeString;
readerTypeString = PrepareType(readerTypeString);
Type l_readerType = Type.GetType(readerTypeString);
if(l_readerType !=null)
contentReaders[i] = (ContentTypeReader)Activator.CreateInstance(l_readerType,true);
else
throw new ContentLoadException("Could not find matching content reader of type " + originalReaderTypeString + " (" + readerTypeString + ")");
// I think the next 4 bytes refer to the "Version" of the type reader,
// although it always seems to be zero
int typeReaderVersion = _reader.ReadInt32();
}
return contentReaders;
}
示例9: LoadAssetReaders
internal ContentTypeReader[] LoadAssetReaders()
{
if (ContentTypeReaderManager.falseflag)
{
ByteReader byteReader = new ByteReader();
SByteReader sbyteReader = new SByteReader();
DateTimeReader dateTimeReader = new DateTimeReader();
DecimalReader decimalReader = new DecimalReader();
BoundingSphereReader boundingSphereReader = new BoundingSphereReader();
BoundingFrustumReader boundingFrustumReader = new BoundingFrustumReader();
RayReader rayReader = new RayReader();
ListReader<char> listReader1 = new ListReader<char>();
ListReader<Rectangle> listReader2 = new ListReader<Rectangle>();
ArrayReader<Rectangle> arrayReader1 = new ArrayReader<Rectangle>();
ListReader<Vector3> listReader3 = new ListReader<Vector3>();
ListReader<StringReader> listReader4 = new ListReader<StringReader>();
ListReader<int> listReader5 = new ListReader<int>();
SpriteFontReader spriteFontReader = new SpriteFontReader();
Texture2DReader texture2Dreader = new Texture2DReader();
CharReader charReader = new CharReader();
RectangleReader rectangleReader = new RectangleReader();
StringReader stringReader = new StringReader();
Vector2Reader vector2Reader = new Vector2Reader();
Vector3Reader vector3Reader = new Vector3Reader();
Vector4Reader vector4Reader = new Vector4Reader();
CurveReader curveReader = new CurveReader();
IndexBufferReader indexBufferReader = new IndexBufferReader();
BoundingBoxReader boundingBoxReader = new BoundingBoxReader();
MatrixReader matrixReader = new MatrixReader();
BasicEffectReader basicEffectReader = new BasicEffectReader();
VertexBufferReader vertexBufferReader = new VertexBufferReader();
AlphaTestEffectReader testEffectReader = new AlphaTestEffectReader();
EnumReader<SpriteEffects> enumReader1 = new EnumReader<SpriteEffects>();
ArrayReader<float> arrayReader2 = new ArrayReader<float>();
ArrayReader<Vector2> arrayReader3 = new ArrayReader<Vector2>();
ListReader<Vector2> listReader6 = new ListReader<Vector2>();
ArrayReader<Matrix> arrayReader4 = new ArrayReader<Matrix>();
EnumReader<Blend> enumReader2 = new EnumReader<Blend>();
NullableReader<Rectangle> nullableReader = new NullableReader<Rectangle>();
EffectMaterialReader effectMaterialReader = new EffectMaterialReader();
ExternalReferenceReader externalReferenceReader = new ExternalReferenceReader();
}
int length = this._reader.Read7BitEncodedInt();
this.contentReaders = new ContentTypeReader[length];
for (int index = 0; index < length; ++index)
{
string str = this._reader.ReadString();
Func<ContentTypeReader> func;
if (ContentTypeReaderManager.typeCreators.TryGetValue(str, out func))
{
this.contentReaders[index] = func();
}
else
{
string typeName = ContentTypeReaderManager.PrepareType(str);
Type type = Type.GetType(typeName);
if (type != (Type) null)
{
try
{
this.contentReaders[index] = ContentExtensions.GetDefaultConstructor(type).Invoke((object[]) null) as ContentTypeReader;
}
catch (TargetInvocationException ex)
{
throw new InvalidOperationException("Failed to get default constructor for ContentTypeReader. To work around, add a creation function to ContentTypeReaderManager.AddTypeCreator() with the following failed type string: " + str);
}
}
else
throw new ContentLoadException("Could not find matching content reader of type " + str + " (" + typeName + ")");
}
this._reader.ReadInt32();
}
return this.contentReaders;
}
示例10: LoadAssetReaders
internal ContentTypeReader[] LoadAssetReaders()
{
#pragma warning disable 0219, 0649
// Trick to prevent the linker removing the code, but not actually execute the code
if (falseflag)
{
// Dummy variables required for it to work on iDevices ** DO NOT DELETE **
// This forces the classes not to be optimized out when deploying to iDevices
var hByteReader = new ByteReader();
var hSByteReader = new SByteReader();
var hDateTimeReader = new DateTimeReader();
var hDecimalReader = new DecimalReader();
var hBoundingSphereReader = new BoundingSphereReader();
var hBoundingFrustumReader = new BoundingFrustumReader();
var hRayReader = new RayReader();
var hCharListReader = new ListReader<Char>();
var hRectangleListReader = new ListReader<Rectangle>();
var hRectangleArrayReader = new ArrayReader<Rectangle>();
var hVector3ListReader = new ListReader<Vector3>();
var hStringListReader = new ListReader<StringReader>();
var hIntListReader = new ListReader<Int32>();
var hSpriteFontReader = new SpriteFontReader();
var hTexture2DReader = new Texture2DReader();
var hCharReader = new CharReader();
var hRectangleReader = new RectangleReader();
var hStringReader = new StringReader();
var hVector2Reader = new Vector2Reader();
var hVector3Reader = new Vector3Reader();
var hVector4Reader = new Vector4Reader();
var hCurveReader = new CurveReader();
var hIndexBufferReader = new IndexBufferReader();
var hBoundingBoxReader = new BoundingBoxReader();
var hMatrixReader = new MatrixReader();
var hBasicEffectReader = new BasicEffectReader();
var hVertexBufferReader = new VertexBufferReader();
var hAlphaTestEffectReader = new AlphaTestEffectReader();
var hEnumSpriteEffectsReader = new EnumReader<Graphics.SpriteEffects>();
var hArrayFloatReader = new ArrayReader<float>();
var hArrayVector2Reader = new ArrayReader<Vector2>();
var hListVector2Reader = new ListReader<Vector2>();
var hArrayMatrixReader = new ArrayReader<Matrix>();
var hEnumBlendReader = new EnumReader<Graphics.Blend>();
var hNullableRectReader = new NullableReader<Rectangle>();
var hEffectMaterialReader = new EffectMaterialReader();
var hExternalReferenceReader = new ExternalReferenceReader();
var hSoundEffectReader = new SoundEffectReader();
var hSongReader = new SongReader();
}
#pragma warning restore 0219, 0649
int numberOfReaders;
// The first content byte i read tells me the number of content readers in this XNB file
numberOfReaders = _reader.Read7BitEncodedInt();
contentReaders = new ContentTypeReader[numberOfReaders];
// For each reader in the file, we read out the length of the string which contains the type of the reader,
// then we read out the string. Finally we instantiate an instance of that reader using reflection
for (int i = 0; i < numberOfReaders; i++)
{
// This string tells us what reader we need to decode the following data
// string readerTypeString = reader.ReadString();
string originalReaderTypeString = _reader.ReadString();
Func<ContentTypeReader> readerFunc;
if (typeCreators.TryGetValue(originalReaderTypeString, out readerFunc))
{
contentReaders[i] = readerFunc();
}
else
{
//System.Diagnostics.Debug.WriteLine(originalReaderTypeString);
// Need to resolve namespace differences
string readerTypeString = originalReaderTypeString;
readerTypeString = PrepareType(readerTypeString);
var l_readerType = Type.GetType(readerTypeString);
if (l_readerType != null)
{
try
{
contentReaders[i] = l_readerType.GetDefaultConstructor().Invoke(null) as ContentTypeReader;
}
catch (TargetInvocationException ex)
{
// If you are getting here, the Mono runtime is most likely not able to JIT the type.
// In particular, MonoTouch needs help instantiating types that are only defined in strings in Xnb files.
throw new InvalidOperationException(
"Failed to get default constructor for ContentTypeReader. To work around, add a creation function to ContentTypeReaderManager.AddTypeCreator() " +
"with the following failed type string: " + originalReaderTypeString);
}
}
else
throw new ContentLoadException(
"Could not find ContentTypeReader Type. Please ensure the name of the Assembly that contains the Type matches the assembly in the full type name: " +
originalReaderTypeString + " (" + readerTypeString + ")");
}
//.........这里部分代码省略.........
示例11: LoadCSV
/// <summary>
/// Load the specified CSV file.
/// </summary>
static bool LoadCSV (byte[] bytes, TextAsset asset, bool merge = false)
{
if (bytes == null) return false;
ByteReader reader = new ByteReader(bytes);
// The first line should contain "KEY", followed by languages.
BetterList<string> temp = reader.ReadCSV();
// There must be at least two columns in a valid CSV file
if (temp.size < 2) return false;
// Clear the dictionary
if (!merge || temp.size - 1 != mLanguage.Length)
{
merge = false;
mDictionary.Clear();
}
temp[0] = "KEY";
mLanguages = new string[temp.size - 1];
for (int i = 0; i < mLanguages.Length; ++i)
mLanguages[i] = temp[i + 1];
// Read the entire CSV file into memory
while (temp != null)
{
AddCSV(temp, !merge);
temp = reader.ReadCSV();
}
return true;
}
示例12: LoadCSV
/// <summary>
/// Load the specified CSV file.
/// </summary>
static bool LoadCSV (byte[] bytes, TextAsset asset, bool merge = false)
{
if (bytes == null) return false;
ByteReader reader = new ByteReader(bytes);
// The first line should contain "KEY", followed by languages.
BetterList<string> header = reader.ReadCSV();
// There must be at least two columns in a valid CSV file
if (header.size < 2) return false;
header.RemoveAt(0);
string[] languagesToAdd = null;
if (string.IsNullOrEmpty(mLanguage)) localizationHasBeenSet = false;
// Clear the dictionary
if (!localizationHasBeenSet || (!merge && !mMerging) || mLanguages == null || mLanguages.Length == 0)
{
mDictionary.Clear();
mLanguages = new string[header.size];
if (!localizationHasBeenSet)
{
mLanguage = PlayerPrefs.GetString("Language", header[0]);
localizationHasBeenSet = true;
}
for (int i = 0; i < header.size; ++i)
{
mLanguages[i] = header[i];
if (mLanguages[i] == mLanguage)
mLanguageIndex = i;
}
}
else
{
languagesToAdd = new string[header.size];
for (int i = 0; i < header.size; ++i) languagesToAdd[i] = header[i];
// Automatically resize the existing languages and add the new language to the mix
for (int i = 0; i < header.size; ++i)
{
if (!HasLanguage(header[i]))
{
int newSize = mLanguages.Length + 1;
#if UNITY_FLASH
string[] temp = new string[newSize];
for (int b = 0, bmax = arr.Length; b < bmax; ++b) temp[b] = mLanguages[b];
mLanguages = temp;
#else
System.Array.Resize(ref mLanguages, newSize);
#endif
mLanguages[newSize - 1] = header[i];
Dictionary<string, string[]> newDict = new Dictionary<string, string[]>();
foreach (KeyValuePair<string, string[]> pair in mDictionary)
{
string[] arr = pair.Value;
#if UNITY_FLASH
temp = new string[newSize];
for (int b = 0, bmax = arr.Length; b < bmax; ++b) temp[b] = arr[b];
arr = temp;
#else
System.Array.Resize(ref arr, newSize);
#endif
arr[newSize - 1] = arr[0];
newDict.Add(pair.Key, arr);
}
mDictionary = newDict;
}
}
}
Dictionary<string, int> languageIndices = new Dictionary<string, int>();
for (int i = 0; i < mLanguages.Length; ++i)
languageIndices.Add(mLanguages[i], i);
// Read the entire CSV file into memory
for (;;)
{
BetterList<string> temp = reader.ReadCSV();
if (temp == null || temp.size == 0) break;
if (string.IsNullOrEmpty(temp[0])) continue;
AddCSV(temp, languagesToAdd, languageIndices);
}
if (!mMerging && onLocalize != null)
{
mMerging = true;
OnLocalizeNotification note = onLocalize;
onLocalize = null;
note();
onLocalize = note;
mMerging = false;
}
//.........这里部分代码省略.........
示例13: Load
/// <summary>
/// Load the specified asset and activate the localization.
/// </summary>
public void Load (TextAsset asset)
{
ByteReader reader = new ByteReader(asset);
Set(asset.name, reader.ReadDictionary());
OnLocalizationChanged();
}
示例14: Load
/// <summary>
/// Load the specified asset and activate the localization.
/// </summary>
static public void Load (TextAsset asset)
{
ByteReader reader = new ByteReader(asset);
Set(asset.name, reader.ReadDictionary());
}
示例15: Load
/// <summary>
/// Reload the font data.
/// </summary>
static public void Load (BMFont font, string name, byte[] bytes)
{
font.Clear();
if (bytes != null)
{
ByteReader reader = new ByteReader(bytes);
char[] separator = new char[] { ' ' };
while (reader.canRead)
{
string line = reader.ReadLine();
if (string.IsNullOrEmpty(line)) break;
string[] split = line.Split(separator, System.StringSplitOptions.RemoveEmptyEntries);
int len = split.Length;
if (split[0] == "char")
{
// Expected data style:
// char id=13 x=506 y=62 width=3 height=3 xoffset=-1 yoffset=50 xadvance=0 page=0 chnl=15
int channel = (len > 10) ? GetInt(split[10]) : 15;
if (len > 9 && GetInt(split[9]) > 0)
{
Debug.LogError("Your font was exported with more than one texture. Only one texture is supported by NGUI.\n" +
"You need to re-export your font, enlarging the texture's dimensions until everything fits into just one texture.");
break;
}
if (len > 8)
{
int id = GetInt(split[1]);
BMGlyph glyph = font.GetGlyph(id, true);
if (glyph != null)
{
glyph.x = GetInt(split[2]);
glyph.y = GetInt(split[3]);
glyph.width = GetInt(split[4]);
glyph.height = GetInt(split[5]);
glyph.offsetX = GetInt(split[6]);
glyph.offsetY = GetInt(split[7]);
glyph.advance = GetInt(split[8]);
glyph.channel = channel;
}
else Debug.Log("Char: " + split[1] + " (" + id + ") is NULL");
}
else
{
Debug.LogError("Unexpected number of entries for the 'char' field (" + name + ", " + split.Length + "):\n" + line);
break;
}
}
else if (split[0] == "kerning")
{
// Expected data style:
// kerning first=84 second=244 amount=-5
if (len > 3)
{
int first = GetInt(split[1]);
int second = GetInt(split[2]);
int amount = GetInt(split[3]);
BMGlyph glyph = font.GetGlyph(second, true);
if (glyph != null) glyph.SetKerning(first, amount);
}
else
{
Debug.LogError("Unexpected number of entries for the 'kerning' field (" +
name + ", " + split.Length + "):\n" + line);
break;
}
}
else if (split[0] == "common")
{
// Expected data style:
// common lineHeight=64 base=51 scaleW=512 scaleH=512 pages=1 packed=0 alphaChnl=1 redChnl=4 greenChnl=4 blueChnl=4
if (len > 5)
{
font.charSize = GetInt(split[1]);
font.baseOffset = GetInt(split[2]);
font.texWidth = GetInt(split[3]);
font.texHeight = GetInt(split[4]);
int pages = GetInt(split[5]);
if (pages != 1)
{
Debug.LogError("Font '" + name + "' must be created with only 1 texture, not " + pages);
break;
}
}
else
//.........这里部分代码省略.........