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

61 lines
2.1 KiB
C++
Raw Normal View History

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