⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 util.lst

📁 W3100是WIZnet公司专门为以太网互联和嵌入式设备推出的硬件TCP/IP协议栈芯片
💻 LST
📖 第 1 页 / 共 2 页
字号:
                               base - Base of value; must be in the range 2 ~ 16
              Return Value  :  pointer to string
              Note          :  Version 2.0
              */
              char* ITOA(u_int value,char* str,char base)
              {
                      char c;
                      char* tstr = str;
                      char* ret = str;
                      if(value == 0) *str++='0';
                      while(value > 0)
                      {
                              *str++ = D2C(value%base);
                              value /= base;
                      }
                      *str-- ='\0';
                      while(tstr < str )
                      {
                              c = *tstr;
                              *tstr++ = *str; 
                              *str-- = c;
                      }
                      return ret;
              }
              /*
              Description   :  Convert Character string to (hexa-)decimal.
              Argument      :  str - Source string (INPUT)
                               base - Base of value; must be in the range 2 ~ 16 
                               ret - Value of Number to be converted
C51 COMPILER V8.02   UTIL                                                                  10/17/2006 15:15:28 PAGE 5   

              Return Value  :  Verify digit character in str, 
                               Verify success : 1
                                      fail    : -1
              Note          :  Version 2.0
              */
              char ValidATOI(char* str, int base, int* ret)
              {
                      char c;
                      char* tstr = str;
                      if(str == 0 || *str == '\0') return -1;
                      while(*tstr != '\0')
                      {
                              c = C2D(*tstr);
                              if( c >= 0 && c < base) tstr++;
                              else    return -1;
                      }
                      
                      *ret = ATOI(str,base);
                      return 1;
              }
              
              
              /*
              Description   :  Cut out whitespace in src
              Argument      :  src - Source string (INPUT)
              Return Value  :  Trimed string
              Note          :  Version 2.0
              */
              void StrTrim(char* src)
              {
                      int size = StrLen(src);
                      char c;
                      while(size > 0)
                      {
                              c = *(src+size);
                              if( c == ' ' || c == '\t' || c == '\r' || c == '\n' || c == '\b')
                                      *(src+size) = 0;
                              else break;
                              size--;
                      }
              }
              
              /*
              Description   :  Compare source string to destination source
              Argument      :  str - Source string (INPUT)
                               dst - destination string
              Return Value  :  src > dst : 1
                               src = dst : 0
                               src < dst : -1
              Note          :  Version 2.0
              */
              int CmpStr(char* src, char* dst)
              {
                      while(*src != '\0')
                      {
                              if(*src > *dst) return 1;
                              else if(*src < *dst)    return -1;
                              src++;
                              dst++;
                      }
                      if(*dst != '\0') return 1;
                      return 0;
C51 COMPILER V8.02   UTIL                                                                  10/17/2006 15:15:28 PAGE 6   

              }
              
              /*
              Description   :  Replace with assigned character in Character String 
              Argument      :  src - character string to replace specific-character(INPUT, OUTPUT)
                               s - Character to be placed  
                               d - replacement character
              Return Value  :  
              Note          :  
              */
              void ReplaceAll(UCHAR * src,char s,char d)
              {
                      while(*src != '\0')
                      {
                              if(*src == s)   *src = d;
                              src++;
                      }
              }
              
              /*
              Description   : Turncate character string by Delimeter
              Argument      :  src - character string to be Tokenize (INPUT)
                               sep - Delimeter character  (INPUT)
                               tok - Copy string in front of Delimeter with character string Pointer to be assigned.(OUT
             -PUT)
              
              Return Value  :Pointer to assign beginning of tag in original string Delimeter
              Note          :  Version 2.0
              */
              UCHAR * StrTok(UCHAR* src,char sep,UCHAR* tok)
              {
                      UCHAR * tsrc;
                      if((tsrc = FindFirst(src,sep)) != 0)
                      {
                              while(src != tsrc)      *tok++ = *src++;
                              *tok = '\0';
                      }
                      else
                      {
                              MemCopy(tok,src);
                              return 0 ;
                      }
                      while(*src == sep)src++;
                      if(*src == '\0')
                      {
                              return 0;
                      }
                      return src;
              }
              
              
              /*
              Description   :  Copy src string to dst.
              Argument      :  src -Source string (INPUT)
                               dst -  Taget string (OUTPUT)
              Return Value  :  Length of copied string
              Note          :  
              */
              UINT MemCopy(UCHAR *dst,UCHAR * src)
              {
                      UINT i=0;
                      while(*src !=0) *dst++ = *src++, i++;
C51 COMPILER V8.02   UTIL                                                                  10/17/2006 15:15:28 PAGE 7   

                      *dst = '\0';
                      return i;
              }
              
              /*
              Description   :  Find first location of character in string  
              Argument      :  src - source string (INPUT)
                                 c -  Character to find in source string (INPUT)
              Note          :  
              */
              UCHAR * FindFirst(UCHAR * src,char c)
              {
                      
                      while(*src != '\0')
                      {
                              if(*src == c)   return src;
                              src++;
                      }
                      return 0;
              }
              
              
              /*
              Description   :  Convert small letter to capital letter in string  
              Argument      :  src -  source string (INPUT)
              Return Value  :  
              Note          :  
              */
              void MakeUpper(UCHAR* src)
              {
                      while(*src != '\0')
                      {
                              if(*src >= 'a' && *src <= 'z')  *src = *src + 'A' - 'a';
                              src++;
                      }
              }
              
              /*
              Description   : Find  out Length of string
              Return Value  :  Length of source string
              Note          :  
              */
              UINT StrLen(UCHAR* str)
              {
                      UINT i = 0;
                      while(*str++ != '\0') i++;
                      return i;
              }
              
              
              #endif


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    164    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       4
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.

C51 COMPILER V8.02   UTIL                                                                  10/17/2006 15:15:28 PAGE 8   


C51 COMPILATION COMPLETE.  1 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -