示例#1
0
        private void Write(StreamReader aReader, StreamWriter aWriter, RCFileContent aRcFileContent)
        {
            var  stringLines = SortStringLinesAfterId(aRcFileContent);
            var  iterator    = stringLines.GetEnumerator();
            bool hasNext     = iterator.MoveNext();

            while (!aReader.EndOfStream)
            {
                string        line         = aReader.ReadLine();
                List <string> lineElements = ParseUtility.BuildListOfStringsFromReadLine(line, Parse.kSplitResourceElementsChars);

                int numberPositionsToSkip = hasNext ? NumberPositionToSkip(aRcFileContent, iterator) : 0;
                while (numberPositionsToSkip-- > 0)
                {
                    hasNext = iterator.MoveNext();
                }

                if (LineRepresentString(lineElements.Count, hasNext) == false ||
                    !ParseUtility.TransformToDecimal(lineElements[2], out int stringId))
                {
                    aWriter.WriteLine(line);
                }
                else if (CheckForAddedStrings(aWriter, iterator, line, stringId, aRcFileContent))
                {
                    hasNext = iterator.MoveNext();
                }
            }
        }
示例#2
0
        public List <KeyValuePair <string, string> > SortByIdValue()
        {
            var elements = mHeaderElements.ToList();

            elements.Sort((pair1, pair2) =>
            {
                ParseUtility.TransformToDecimal(pair1.Value, out int id1);
                ParseUtility.TransformToDecimal(pair2.Value, out int id2);
                return(id1.CompareTo(id2));
            });
            return(elements);
        }