コード例 #1
0
        private string HexDumpB(ref string s, EHexDump ehdFmt = EHexDump.ehdOneColumn)
        {
            string functionReturnValue = null;

            functionReturnValue = clsSupport.bpeNullString;

            //UPGRADE_TODO: Code was upgraded to use System.Text.UnicodeEncoding.Unicode.GetBytes() which may not have the same behavior. Click for more: 'ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="vbup1059"'
            byte[] ab = System.Text.UnicodeEncoding.Unicode.GetBytes(s);
            functionReturnValue = HexDump(ref ab, ehdFmt);
            return(functionReturnValue);
        }
コード例 #2
0
        private string HexDump(ref byte[] ab, EHexDump ehdFmt = EHexDump.ehdOneColumn)
        {
            string functionReturnValue = null;
            string sDump   = clsSupport.bpeNullString;
            string sAscii  = clsSupport.bpeNullString;
            int    iColumn = 0;
            int    iCur    = 0;
            string sCur    = clsSupport.bpeNullString;
            string sLine   = clsSupport.bpeNullString;
            int    i       = 0;

            functionReturnValue = clsSupport.bpeNullString;
            switch (ehdFmt)
            {
            case EHexDump.ehdOneColumn:
            case EHexDump.ehdSample8:
                iColumn = 8;
                break;

            case EHexDump.ehdTwoColumn:
            case EHexDump.ehdSample16:
                iColumn = 16;
                break;

            case EHexDump.ehdEndless:
                iColumn = 32767;
                break;
            }
            bool continueLoop = true;

            for (i = Information.LBound(ab); i <= Information.UBound(ab) && continueLoop; i++)
            {
                //Get current character
                iCur = ab[i];
                sCur = Strings.Chr(iCur).ToString();

                //Append its hex value
                sLine += Strings.Right("0" + Conversion.Hex(iCur), 2) + " ";

                //Append its ASCII value or dot
                if (ehdFmt <= EHexDump.ehdTwoColumn)
                {
                    if (iCur >= 32 && iCur < 127)
                    {
                        sAscii = sAscii + sCur;
                    }
                    else
                    {
                        sAscii = sAscii + ".";
                    }
                }

                //Append ASCII to dump and wrap every paragraph
                if ((i + 1) % 8 == 0)
                {
                    sLine = sLine + " ";
                }
                if ((i + 1) % iColumn == 0)
                {
                    if (ehdFmt >= EHexDump.ehdSample8)
                    {
                        sLine        = sLine + "...";
                        continueLoop = false;
                    }
                    else
                    {
                        sLine  = sLine + " " + sAscii + Constants.vbCrLf;
                        sDump  = sDump + sLine;
                        sAscii = clsSupport.bpeNullString;
                        sLine  = clsSupport.bpeNullString;
                    }
                }
            }

            if (ehdFmt <= EHexDump.ehdTwoColumn)
            {
                if (((i + 1) % iColumn) > 0)
                {
                    if (ehdFmt > 0)
                    {
                        sLine = Strings.Left(sLine + Strings.Space(53), 53) + sAscii;
                    }
                    else
                    {
                        sLine = Strings.Left(sLine + Strings.Space(26), 26) + sAscii;
                    }
                }
                sDump = sDump + sLine;
            }
            else
            {
                sDump = sLine;
            }
            functionReturnValue = sDump;
            return(functionReturnValue);
        }