|
|
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
-
- namespace Hack.Xenosaga.Common
- {
- public static class Extension
- {
- /// <summary>
- /// Ecrit un bloc d'octet dans le flux actuel en utilisant des données lues dans une mémoire tampon (la position du flux actuel reste inchangée).
- /// </summary>
- /// <param name="buffer">Mémoire tamon dans laquelle lire les données</param>
- /// <param name="offset">Dans buffer, offset d'octet de base zéro d'où commencer la copie des octets dans le flux actuel</param>
- /// <param name="count">Nombre maximal d'octets à écrire</param>
- /// <param name="position">Position dans le flux actuel où écrire les données</param>
- public static void Write(this MemoryStream ms, byte[] buffer, int offset, int count, long position)
- {
- long pos = ms.Position;
-
- ms.Position = position;
-
- ms.Write(buffer, offset, count);
-
- ms.Position = pos;
- }
-
- /// <summary>
- /// Lit une séquence de 4 octets à partir du flux actuel et avance la position dans le flux du nombre d'octets lus.
- /// </summary>
- /// <returns>Valeur lue</returns>
- public static UInt32 Read(this MemoryStream ms)
- {
- UInt32 value = 0;
-
- for (int i = 0; i < 4; i++)
- value += (UInt32)(ms.ReadByte() << (i * 8) );
-
- return value;
- }
- }
- }
|