
unit string
{
	public const uint16 ID = 0;
	
	//[i] linkconst_int32_50 MaxLength;
	public const int32 MaxLength = 50;
	
	//[i] var_Cstring buffer;
	[uint8*MaxLength] buffer;
	
	//[i] var_int32 Length;
	public int32 Length;
	
	[uint8*11] number_buffer;
	
	//---------------------------------------------------
	//ʼ
	//[i] function_void OS_init;
	public void OS_init()
	{
		Clear();
	}
	
	//---------------------------------------------------
	//ջ
	//[i] function_void Clear;
	public void Clear()
	{
		Length = 0;
		buffer[0] = 0;
	}
	//---------------------------------------------------
	//жַǷ
	//[i] function_bool equal Cstring;
	public bool equal( [uint8*?] s )
	{
		int32 i = 0;
		while( s[i] != 0 ) {
			if( buffer[i] != s[i] ) {
				return false;
			}
			i + 1;
		}
		if( i != Length ) {
			return false;
		}
		return true;
	}
	//---------------------------------------------------
	//ַ
	//[i] function_void AddString Cstring;
	public void AddString( [uint8*?] s )
	{
		int32 i = 0;
		while( s[i] != 0 ) {
			buffer[Length] = s[i];
			Length + 1;
			i + 1;
		}
		buffer[Length] = 0;
	}
	//---------------------------------------------------
	//Ӣַ
	//[i] function_void AddAChar int32;
	public void AddAChar( int32 data0 )
	{
		buffer[Length] = (uint8)(uint16)(uint)data0;
		Length + 1;
	}
	//---------------------------------------------------
	//ַ
	//[i] function_void AddCChar int32;
	public void AddCChar( int32 data0 )
	{
		uint16 d = (uint16)(uint)data0;
		buffer[Length] = d.0(uint8);
		Length + 1;
		buffer[Length] = d.8(uint8);
		Length + 1;
	}
	//---------------------------------------------------
	//
	//[i] function_void AddNumber int32;
	public void AddNumber( int32 data0 )
	{
		//
		bool isNeg;
		uint32 data;
		if( data0 >= 0 ) {
			data = (uint)data0;
			isNeg = false;
		} else {
			data = (uint)-data0;
			isNeg = true;
		}
		//ֵ
		int16 i = 0;
		forever {
			uint8 ch = '0' + (uint8)(uint16)(data % 10);
			number_buffer[i] = ch;
			i + 1;
			data / 10;
			if( data == 0 ) {
				if( isNeg ) {
					number_buffer[i] = '-';
					i + 1;
				}
				break;
			}
		}
		do {
			i - 1;
			buffer[Length] = number_buffer[i];
			Length + 1;
		}
		while( i != 0 );
		
		buffer[Length] = 0;
	}
}







