dataarray.cpp

来自「IO函数调用测试」· C++ 代码 · 共 79 行

CPP
79
字号
#include "stdafx.h"

#include "DataArray.h"

#define BANDSIZE 8


/****************************************************************************
*                           CDataArray::bandCount
* Result: UINT
*       The number of bands required to display the data
****************************************************************************/

UINT CDataArray::bandCount()
    {
     if(GetSize() == 0)
	return 0;

     return (GetSize() + BANDSIZE) / BANDSIZE;
    }


/****************************************************************************
*                            CDataArray::byteBand
* Inputs:
*	UINT i: Band to be displayed
* Result: CString
*       Formatted display
* Notes: 
* BANDSIZE = 16
*       
*            1111111111222222222233333333334444444444555555555566666666677777
* 012345678901234567890123456789012345678901234567890123456789012345678901234
* 00000	|xxxxxxxx xxxxxxxx| xx xx xx xx xx xx xx xx   xx xx xx xx xx xx xx xx
*
* BANDSIZE = 8
*            111111111122222222223333333333444
* 01234567890123456789012345678901234567890123
* 00000	|xxxx xxxx| xx xx xx xx    xx xx xx xx
****************************************************************************/

CString CDataArray::byteBand(UINT band)
    {
     UINT start = band * BANDSIZE;
     UINT limit = (band +1) * BANDSIZE;
     UINT mid = start + BANDSIZE / 2 - 1;

     CString s;
     s.Format(_T("%05x |"), start);

     for(UINT i = start; i < limit; i++)
        { /* scan chars */
	 BYTE ch;
	 ch = i >= (UINT)GetSize() ? ' ' : GetAt(i);
	 if(ch < ' ')
	    ch = '.';
	 // TODO: ch->Unicode if in UNICODE mode...
	 s += (TCHAR)ch;
	 if(i == mid)
	    s += _T(" ");
	} /* scan chars */
     s += _T("|");

     for(i = start; i < limit; i++)
        { /* scan hex */
	 CString t;
	 if(i >= (UINT)GetSize())
	    t = _T("   ");
         else
	    t.Format(_T(" %02x"), GetAt(i));
         s += t;
	 if(i == mid)
	    s += _T("   ");
	} /* scan hex */

     return s;
    }
 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?