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

📄 parse.h

📁 c语言编写的微型数据库 实现了插入、删除、更新等基本功能
💻 H
字号:
#ifndef PARSE_H
#define PARSE_H
#include "Glob_Var.H"
#include "Tools.H"
/* -------------------------------------------------- */
CmdRec_Type CmdLine_To_CmdRec(char*CmdLine)
{
    
    CmdRec_Type CmdRec ;
    
    int i,k,TokenPos ;
    
    char Token[30];

   Init_CmdRec(CmdRec);
    
    CmdRec.Fld=(FldInfor_T*)malloc(15*sizeof(FldInfor_T));
    
    for(i=1;i<=15;i++)
    
    {
        CmdRec.Fld[i].FldLen=0 ;
        
        CmdRec.Fld[i].DicimalLen=0 ;
    }

    TokenPos=0 ;
    
    CutBlank_Head_Tail(CmdLine);
    
    GetSubStr_Between(CmdLine,&TokenPos,'(',')',CmdRec.Token1); /* 取得括号之间的字符串 */

    k=CountSymbol(CmdRec.Token1,',')+1 ;

    CmdRec.Count=k ;
    
 if(strlen(CmdRec.Token1)>0)

    {
        CmdLine[strlen(CmdLine)-strlen(CmdRec.Token1)-2]='\0' ;
    }
    
    CutBlank_Head_Tail(CmdLine);
    
  while(strlen(CmdLine)>=1)
    
    {
        CutBlank_Head_Tail(CmdLine);
        
        TokenPos=0 ;
        
        GetSubStr_By_Delimitor(CmdLine,&TokenPos," ",Token);
        
        for(i=0;i<strlen(Token)&&!strstr(Token,"=");i++)
        {
            Token[i]=toupper(Token[i]);
        }
        
        for(i=0;i<8;i++)
        
        {
            /* 判断是否为命令动词 */
            if(strcmp(Token,SysWordArray[i].SysW_S)==0)
            {
                CmdRec.Cmd_N=SysWordArray[i].SysW_N ;
            }
            
            /* 判断是否为介词 */
            else if((strcmp(Token,"TABLE")==0)||
            (strcmp(Token,"VALUES")==0)||
            (strcmp(Token,"INTO")==0)||
            (strcmp(Token,"FROM")==0)||
            (strcmp(Token,"SET")==0))
            
            {
                strcpy(CmdRec.Phase,Token);
            }
            
            else 
            
            {
                /* 判断是否为表达式 */
                char*ptr ;
                
                ptr=strchr(Token,'=');
                
                if(ptr)strcpy(CmdRec.Exp,Token);
                
                else 
                
                {
                    ptr=strchr(Token,'*');
                    /*  判断是否为全部范围 */
                    
                    if(ptr)strcpy(CmdRec.Range,"*");
                    
                    else 
                    {
                        
                        ptr=strchr(Token,',');
                        
                        if(ptr)strcpy(CmdRec.Range,Token);
                        /* 判断是那些字段范围 */
                        
                        else strcpy(CmdRec.UserStr,Token);
                    }
                }
            }
        }
        
        strncpy(CmdLine,&CmdLine[strlen(Token)],strlen(CmdLine)-strlen(Token)+1);
        
    }

    return CmdRec ;
}
#endif

⌨️ 快捷键说明

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