Пример #1
0
        private void Initialize()
        {
            byte[] oldentry, newentry;
            bool   entry_result = false;
            bool   text_result  = false;
            int    min_length   = Math.Min(_First.Count, _Second.Count);

            bool[] summaryflags = null;

            using (var first = TLKFILE.Open(_First.FilePath))
                using (var second = TLKFILE.Open(_Second.FilePath))
                {
                    for (int i = 0; i < min_length; i++)
                    {
                        oldentry = first.GetEntryNoText(i);
                        newentry = second.GetEntryNoText(i);

                        entry_result = oldentry.SequenceEqual(newentry);
                        text_result  = string.Equals(_First[i].Text, _Second[i].Text);

                        if (entry_result && text_result)
                        {
                            continue;
                        }

                        summaryflags = first.CompareEntrise(oldentry, newentry);
                        summaryflags[summaryflags.Length - 1] = !text_result;

                        TLKInfos.Add(new TLKInfo(i, summaryflags));
                    }
                }

            if (_First.Count == _Second.Count)
            {
                return;
            }

            var maxTLK     = _First.Count > _Second.Count ? _First : _Second;
            int max_length = maxTLK.Count;

            // 아래 항목들은 추가 또는 삭제가 필요한 항목.
            for (int i = 0; i < summaryflags.Length; i++)
            {
                summaryflags[i] = true;
            }

            for (int i = min_length; i < max_length; i++)
            {
                TLKInfos.Add(new TLKInfo(i, summaryflags));
            }
        }
Пример #2
0
        private bool disposedValue = false; // 중복 호출을 검색하려면

        protected virtual void Dispose(bool disposing)
        {
            if (!disposedValue)
            {
                if (disposing)
                {
                    // TODO: 관리되는 상태(관리되는 개체)를 삭제합니다.
                    TLKInfos.Clear();

                    _First.IsCompare  = false;
                    _Second.IsCompare = false;

                    Tabs.Clear();
                    Tabs = null;

                    _Collection = null;
                }

                // TODO: 관리되지 않는 리소스(관리되지 않는 개체)를 해제하고 아래의 종료자를 재정의합니다.
                // TODO: 큰 필드를 null로 설정합니다.

                disposedValue = true;
            }
        }