/[rdesktop]/sourceforge.net/trunk/seamlessrdp/ClientDLL/tokenizer.cpp
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /sourceforge.net/trunk/seamlessrdp/ClientDLL/tokenizer.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 932 by astrand, Thu Jun 30 14:14:56 2005 UTC revision 933 by astrand, Thu Jun 30 14:46:14 2005 UTC
# Line 18  Line 18 
18  static char THIS_FILE[] = __FILE__;  static char THIS_FILE[] = __FILE__;
19  #endif  #endif
20    
21  CTokenizer::CTokenizer(const CStdString& cs, const CStdString& csDelim):  CTokenizer::CTokenizer(const CStdString & cs,
22          m_cs(cs),                         const CStdString & csDelim):m_cs(cs), m_nCurPos(0)
         m_nCurPos(0)  
23  {  {
24          SetDelimiters(csDelim);      SetDelimiters(csDelim);
25  }  }
26    
27  void CTokenizer::SetDelimiters(const CStdString& csDelim)  void CTokenizer::SetDelimiters(const CStdString & csDelim)
28  {  {
29          for(int i = 0; i < csDelim.GetLength(); ++i)      for (int i = 0; i < csDelim.GetLength(); ++i)
30                  m_delim.set(static_cast<BYTE>(csDelim[i]));          m_delim.set(static_cast < BYTE > (csDelim[i]));
31  }  }
32    
33  bool CTokenizer::Next(CStdString& cs)  bool CTokenizer::Next(CStdString & cs)
34  {  {
35          cs.Empty();      cs.Empty();
36    
37          while(m_nCurPos < m_cs.GetLength() && m_delim[static_cast<BYTE>(m_cs[m_nCurPos])])      while (m_nCurPos < m_cs.GetLength()
38                  ++m_nCurPos;             && m_delim[static_cast < BYTE > (m_cs[m_nCurPos])])
39            ++m_nCurPos;
40    
41          if(m_nCurPos >= m_cs.GetLength())      if (m_nCurPos >= m_cs.GetLength())
42                  return false;          return false;
43    
44          int nStartPos = m_nCurPos;      int nStartPos = m_nCurPos;
45          while(m_nCurPos < m_cs.GetLength() && !m_delim[static_cast<BYTE>(m_cs[m_nCurPos])])      while (m_nCurPos < m_cs.GetLength()
46                  ++m_nCurPos;             && !m_delim[static_cast < BYTE > (m_cs[m_nCurPos])])
47                    ++m_nCurPos;
         cs = m_cs.Mid(nStartPos, m_nCurPos - nStartPos);  
48    
49          return true;      cs = m_cs.Mid(nStartPos, m_nCurPos - nStartPos);
50    
51        return true;
52  }  }
53    
54  CStdString CTokenizer::Tail() const       CStdString CTokenizer::Tail() const const const
55  {       {
56          int nCurPos = m_nCurPos;           int nCurPos = m_nCurPos;
57    
58          while(nCurPos < m_cs.GetLength() && m_delim[static_cast<BYTE>(m_cs[nCurPos])])           while (nCurPos < m_cs.GetLength()
59                  ++nCurPos;                  && m_delim[static_cast < BYTE > (m_cs[nCurPos])])
60                 ++nCurPos;
61    
62          CStdString csResult;           CStdString csResult;
63    
64          if(nCurPos < m_cs.GetLength())           if (nCurPos < m_cs.GetLength())
65                  csResult = m_cs.Mid(nCurPos);               csResult = m_cs.Mid(nCurPos);
66    
67          return csResult;           return csResult;
68  }       }

Legend:
Removed from v.932  
changed lines
  Added in v.933

  ViewVC Help
Powered by ViewVC 1.1.26