SymbolExplorer.ViewModels.ByteDataViewModel.GenerateHexText C# (CSharp) Method

GenerateHexText() private method

private GenerateHexText ( ) : string
return string
        private string GenerateHexText()
        {
            StringBuilder sb = new StringBuilder();
            if (_data != null)
            {
                for (int byteIndex = 0; byteIndex < _data.Length; )
                {
                    int lineBytes = Math.Min(_columnCount, _data.Length - byteIndex);
                    int pad = _columnCount - lineBytes;
                    int lineIndex = byteIndex;

                    if (_showAddress)
                    {
                        sb.AppendFormat("0x{0:X8}  ", _startingAddress + byteIndex);
                    }

                    for (int y = 0; y < lineBytes; ++y)
                    {
                        sb.AppendFormat("{0:X2} ", _data[lineIndex]);
                        ++lineIndex;
                    }
                    for (int y = 0; y < pad; ++y)
                    {
                        sb.Append("   ");
                    }

                    sb.Append(' ');

                    lineIndex = byteIndex;
                    for (int y = 0; y < lineBytes; ++y)
                    {
                        char c = ToPrintable(_data[lineIndex]);
                        sb.Append(c);
                        ++lineIndex;
                    }
                    for (int y = 0; y < pad; ++y)
                    {
                        sb.Append(' ');
                    }

                    sb.AppendLine();
                    byteIndex += lineBytes;
                }
            }

            _hexText = sb.ToString();
            OnPropertyChanged("HexText");
            return _hexText;
        }