Exemplo n.º 1
0
        /// <summary>
        /// Wywala z tablicy bajty o określonych wartościach z poczatku i/lub końca.
        /// Usuwanie bajtów zatrzymuje się po napotkaniu pierwszego bajtu spoza bajtów
        /// określonych jako parametr.
        /// </summary>
        /// <param name="bytesToTrim">Bajty, które mają być usunięte z tablicy.</param>
        /// <param name="fromStart">Czy bajty mają być usuwane z początku tablicy.</param>
        /// <param name="fromEnd">Czy bajty mają być usuwane z końca tablicy.</param>
        public ByteArray Trim(ByteArray bytesToTrim, Boolean fromStart, Boolean fromEnd)
        {
            Int32 trimStartLength = 0;
            Int32 trimEndLength   = 0;

            if (fromStart)
            {
                for (int i = 0; i < Length && bytesToTrim.IndexOf(this[i]) >= 0; i++, trimStartLength++)
                {
                    ;
                }
            }

            if (fromEnd)
            {
                for (int i = Length - 1; i >= 0 && bytesToTrim.IndexOf(this[i]) >= 0; i--, trimEndLength++)
                {
                    ;
                }
            }

            return(Extract(trimStartLength, Length - trimEndLength - trimStartLength));
        }