📄 dragontoken.cpp
字号:
#include "stdafx.h"
#include "DragonToken.h"
CDragonToken::CDragonToken()
{
b_initialized = FALSE;
for(unsigned short i=0;i<512;i++)
m_position[i] = 0;
m_seperator = ' ';
m_string_type = 0; // char*
m_token_count = 0;
p_sz_tokenBuffer = NULL;
p_sourceString = NULL;
}
CDragonToken::CDragonToken(char* sourceString,char seperator)
{
for(unsigned short i=0;i<512;i++)
m_position[i] = 0;
m_seperator = seperator;
m_string_type = 0;
m_token_count = 0;
p_sourceString = new char[strlen(sourceString)+1];
p_sz_tokenBuffer = new char[512];
memset(p_sz_tokenBuffer,0,512);
strcpy(p_sourceString,sourceString);
b_initialized = TRUE;
BreakString();
}
CDragonToken::~CDragonToken()
{
if(p_sz_tokenBuffer != NULL)
delete p_sz_tokenBuffer;
if(p_sourceString != NULL)
delete p_sourceString;
}
int CDragonToken::BreakString()
{
if(b_initialized)
{
m_token_count = 0;
int currentIndex = 1;
int b_found = 0;
int len = strlen(p_sourceString);
for(unsigned short i=0 ; i <len ; i++)
{
if(*(p_sourceString+i) == m_seperator)
{
m_position[currentIndex] = i+1;
currentIndex++;
b_found = 1;
}
}
if(b_found)
{
m_position[currentIndex] = len + 2;
m_token_count = currentIndex;
}
return m_token_count;
}
else
return 0;
}
int CDragonToken::GetTokenCount()
{
if(b_initialized)
return m_token_count;
else
return -1;
}
char* CDragonToken::GetToken(int m_count)
{
if(m_count > m_token_count)
return NULL;
int len = m_position[m_count+1] - m_position[m_count] - 1;
if(len > 0 && len < 512)
{
strncpy(p_sz_tokenBuffer,p_sourceString+m_position[m_count],len);
*(p_sz_tokenBuffer+len) = NULL;
}
else
strcpy(p_sz_tokenBuffer,"");
return p_sz_tokenBuffer;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -