Files
envi-code/SourceCode/Code2026/tg_shs/inc/TArch/TCheckFloorRectData.h
T

61 lines
1.8 KiB
C++
Raw Normal View History

2026-09-28 15:28:50 +08:00
#ifndef _TCHECKFLOORRECTDATA_H_
#define _TCHECKFLOORRECTDATA_H_
/*============================================================================*
* Copyright(c), 1994-2008, Beijing Tangent Engineering Software Co.Ltd.
* 作 者: 宋戈
* 创建时间: 2010-5-12
* 描 述: 用于楼层框专用,用于检查层号、层高数据的用户输入是否合理
* 修改记录:
=============================================================================*/
class TARCH_EXP XCheckFloorRectData
{
public:
XCheckFloorRectData();
~XCheckFloorRectData();
public: // 提供的与调用处交互的接口
// 检查层高输入是否合法
// 若返回false,请调用GetPrompt函数,获得提示语
bool IsHeightLegal(CString &csHeight);
// 检查层号输入是否合法
// 若返回false,请调用GetPrompt函数,获得提示语
bool IsNameLegal(CString &csName);
// 获取提示语
CString GetPrompt() const;
// 获取楼层号数组
void GetFloors(AcDbIntArray &aryFloors) const;
private:
CString m_csPrompt; // 警告提示语
AcDbIntArray m_aryFloors; // 楼层号数组
private: // 以下函数对楼层号字符串进行分析
// 判断是否存在“指定”间断符号连接的楼层号,递归调用
bool IsDisconnectNum(CString csSymb, CString &csName);
// 判断是否存在连续的楼层号
bool IsContinuousNum(CString &csName, int &nLow, int &nUp);
// 判断是否存在指定符号的连续的楼层号
bool IsContinuousNum(CString csSymb, CString &csName, int &nLow, int &nUp);
// 检查楼层号是否是正负一到三位数以内的整型数,直接返回楼层号,根据提示是否为空判断是否获取成功
int GetFloorNumber(CString &csName);
// 处理空格
void DealSpace(CString csSymb, CString &csName);
private: // 以下函数对楼层号数组进行操作
void ClearFloors();
// 向数组中增加楼层号,自动检查,若和aryFloorNum中有重复,返回false。nLow为下限,nUp为上限,自动过滤掉0
bool AppendNum(int nNum);
bool AppendNum(int nLow, int nUp);
};
#endif