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

📄 dt900lib.c

📁 CASIO 手持终端盘点系统源代码——C语言
💻 C
📖 第 1 页 / 共 3 页
字号:
     if(sdata[i]=='.') point=i;
    }
    
   if(point==100)
    { 
      strcpy(fint,sdata); 
      strcpy(fdecimal,"000");
    }  
    
   else if(point==0)
    {
     strcpy(fint,"0"); 
     strcpy(fdecimal,sdata);
    } 
   else
   { 
     for(i=0;i<point;i++) fint[i]=sdata[i];
      fint[i]=0x0;
      
     if((strlen(sdata)-point)==3)
      { fdecimal[0]=sdata[point+1];
        fdecimal[1]=sdata[point+2];
        fdecimal[2]='0';
      } 
     if((strlen(sdata)-point)==2)
      { fdecimal[0]=sdata[point+1];
        fdecimal[1]='0';
        fdecimal[2]='0';
      }  
     else 
      { for(i=point+1,j=0;j<3;i++,j++) fdecimal[j]=sdata[i]; }
     fdecimal[3]=0x0;
   }  
 }
  
 void Dsp_str( B *data,H gyo,H keta)
{

	lcd_csr_put( gyo, keta );
/*	lcd_string( dsp_ank, dsp_mode, (B *)data, LCD_LF_OFF );*/
        cputstr(LCD_ATTR_NORMAL,(B*)data);
	/*cputstr800(dsp_mode,(B *)data); */
}


void Dsp_str2( B *data,H gyo,H keta)
{

	lcd_csr_put( gyo, keta );
        cputstr(LCD_ATTR_REVERS, (UB*)data);
}

void Dsp_str3( B *data,H gyo,H keta)
{

	lcd_csr_put( gyo, keta );
        cputstr(LCD_ATTR_WIDTH, (UB*)data);
}


void Dsp_str4( B *data,H gyo,H keta)
{

	lcd_csr_put( gyo, keta );
        cputstr(LCD_ATTR_DOUBLE, (UB*)data);
}

 

void addfloat_str(B *str,B *str1,B *str2)
{
  B str1_1[15],str1_2[15],str2_1[15],str2_2[15],str_int[15],str_frct[15];
  W  add_frct;
  ER itg;
  
  memset(str2_1,0,9);
  memset(str2_2,0,9);
  add_frct=0;
  strsub(str1,str1_1,str1_2);
  strsub(str2,str2_1,str2_2);
  if(str2[0]=='-') add_frct=atoi(str1_2)-atoi(str2_2);
  else
    add_frct=atoi(str1_2)+atoi(str2_2);
  itg=0;
  if(add_frct>=1000) {add_frct-=1000; itg=1; }
  if(add_frct<0) {add_frct+=1000; itg=-1; }
  sprintf(str_frct,"%3ld",add_frct); 
  if(str_frct[0]==' ') str_frct[0]='0';
  if(str_frct[1]==' ') str_frct[1]='0';
  sprintf(str_int,"%5ld",(atoi(str1_1)+atoi(str2_1)+itg));   
        	
  strcpy(str,str_int);
  strcat(str,".");
  strcat(str,str_frct);  

} 



/***********************************************************
*   程序名称: strtake
*   详细说明: 在某字符串中截取某一长度的字符串
*   参数    : B *str    :  原始字符串指针
*             B *strsub :  截取出的字符串指针
*             H sos     :  在原始字符串中截取的起始位置
*             H len     :  在原始字符串中截取的字符长度
*   返回值  : 空
***********************************************************/              
void strtake(B *strsub, B *str, H sos, H len)
 {
   
   H i,j;  
   for(i=sos,j=0;j<len;i++,j++)   strsub[j]=str[i];
   strsub[j]=0x0;
    
 }
 
void strcmb(B *str, B *strsub, H sos)
 {
   H i,j;
   for(i=sos,j=0;j<strlen(strsub);i++,j++)  str[i]=strsub[j];
   
 }
 
 /********************************************************************/
/* Notice: 对长度为len的字符串,在其后补加空格,使其长度达到KeyLen  */ 

/*******************************************************************/
void addspace(B *str,H Keylen)
{          
  H i;
  B str0[30];
  
  strcpy(str0,str);  
  for(i=strlen(str0);i<Keylen;i++) str[i]=' ';
  str[Keylen]=0x0;          
}    


void zeroadd(B *str,H len, H KeyLen)
{          
  B temp[20];
  H i;
  
  for(i=0;i<(KeyLen-len);i++) temp[i]='0';
  temp[i]=0x0;
  strcat(temp,str);
  strcpy(str,temp); 
  str[KeyLen]=0x0;          
}  

/*将字符串str中含有的子字符串substr剪切掉.mode是选择全部剪切还是只剪切第一个*/
void str_cut(B *str,B *substr,B *mode)
{
  ER k[30];
  ER i,j,m,n;
  B strnew[30];
 
    
    m=0;
    for(i=0,j=0;i<strlen(str);i++)
     {
       
       if(str[i]==substr[j])   j++;
       else 
        {j=0;
         continue;
        }
        
       if(j==strlen(substr))
        { 
          k[m]=i-j+1;
          j=0;
          m++;
        }

     }
 if (m>0)  
   {
    if (strcmp(mode,"FIRST")==0)m=1;
    n=0;j=0;
    for (i=0;i<strlen(str);i++)
     {
       if (i==k[n]&& n<m)
         {
           i=i+strlen(substr)-1;
           n++;
           continue;
         }
       if(i!=k[n])
         {
           strnew[j]=str[i];
           j++;
         }  
     }
    strnew[j]=0x0;
    strcpy(str,strnew); 
   } 
}

/*将string中所有的字符charold改为charnew*/
void char_change(B *string,char charold,char charnew)
{
 H len,i;
 
 len=strlen(string);
 for (i=0;i<len;i++)
   {
    if (string[i]==charold)
      {string[i]=charnew;}
    else continue;  
   }
}



/*******************************************************************
*     程序名称: sendfile
*     详细说明: 上传一文件
*     参数    : UB *fname : 传输的文件名指针
*               文件名形式: 主文件名为8位,不足者加空格
*                           后缀名为txt,主文件名与后缀名间无小数点
*     返回值  : 1 :  错误
*               0:   正确
********************************************************************/               
int sendfile (UB *fname)
{

        H                      ercd,fup;
        UH                      idx,i,j,k;
        struct sys_tty          param;
        B                       rec_buff[60],ftemp[15];
        FILE                    *file_a,*file_b;
        CU_FILE_INFO_FORM       fileInfo[1];

        lcd_cls();
	Dsp_str("Sending....",3,1);
	
	      
        lcd_cls();
        Dsp_str("打开通讯口...",3,0);
        Dsp_str("<F1--终止>",5,0);
        
        
        cu_stopKeySet( CU_FNC_1 );
        
        param.speed = B_19200;
        param.length = CHAR_8;
        param.parity = PARI_NON;
        param.stop_bit = STOP_1;
        
        ercd = cu_open( COM , CU_CNCT_MULT , &param );
        if(ercd != E_OK)
        {
                cu_stopKeySet( CU_FNC_NON );
                
                lcd_cls();
                lcd_csr_put( 1 , 0 );
                cputstr( LCD_ATTR_NORMAL , (UB *)"COM 打开错误" );
                lcd_csr_put( 5 , 0 );
                cputstr( LCD_ATTR_NORMAL ,  (UB *)" 按任意键 !" );
                  
                key_clear();
                getkey();
                
                return( 1 );
        }
                        
        memcpy(fileInfo[0].fileName,fname,11);           
                                      
        ercd = cu_fileSend( COM , 0 , CU_KIND_OTHER , 1 , &fileInfo , CU_GRAPH_ON_1 , 1 );  
             
        if(ercd != E_OK)
        {
                cu_close( COM );
                cu_stopKeySet( CU_FNC_NON );
                
                lcd_cls();
                Dsp_str("数据文件未上传!",3,0);
                Wait2(20L);
                return( 1 );
        }
        
        cu_close( COM );
        cu_stopKeySet( CU_FNC_NON );
                     
        key_clear();
                           
        return( 0 );
}


int recvfile()
 {
        ER                      ercd,fup;
        UH                      idx;
        struct sys_tty          param;
        B                       rec_buff[60];
        FILE                    *file_a,*file_b;
        CU_FILE_INFO_FORM       fileInfo[2];
        UH                      fileCount;
        
        lcd_cls();
	Dsp_str("Recieving...",3,1);
	Dsp_str(" <F1--终止>",5,1);
	
        cu_stopKeySet( CU_FNC_1 );
        param.speed = B_19200;
        param.length = CHAR_8;
        param.parity = PARI_NON;
        param.stop_bit = STOP_1;
                
        ercd = cu_open( COM , CU_CNCT_MULT , &param );
        if(ercd != E_OK)
        {
                cu_stopKeySet( CU_FNC_NON );
                
                lcd_cls();
                lcd_csr_put( 1 , 0 );
                cputstr( LCD_ATTR_NORMAL , (B *)"COM 打开错误" );
                lcd_csr_put( 5 , 0 );
                cputstr( LCD_ATTR_NORMAL ,  (B *)" 按任意键 !" );
                  
                key_clear();
                getkey();
                
                return( 1 );
        }
       
        fileCount=20;
        ercd = cu_fileRecv( COM , 0 , CU_KIND_OTHER , &fileCount , &fileInfo , CU_GRAPH_ON_1 , 1 ); 

        if(ercd != E_OK)
        {
                cu_close( COM );
                cu_stopKeySet( CU_FNC_NON );
                
                lcd_cls();
                lcd_csr_put( 1 , 0 );
                cputstr(LCD_ATTR_NORMAL ,  (B *)" 文件下传错误" );
                lcd_csr_put( 5 , 0 );
                cputstr( LCD_ATTR_NORMAL , (B *)"  请按任意键!" );
                  
                key_clear();
                getkey();
                return( 1 );
        }
        
        cu_close( COM );
        cu_stopKeySet( CU_FNC_NON );
                     
        key_clear();
        lcd_cls();
        lcd_csr_put( 1 , 0 );
        cputstr(LCD_ATTR_NORMAL ,  (B *)" 文件下传结束" );
        lcd_csr_put( 5 , 0 );
        cputstr( LCD_ATTR_NORMAL , (B *)"  请按任意键!" );
        getkey();
        return( 0 );
 }
          


int half_search(ER fn,W pos,H fieldsize,H keypos,H keylen,UB *code,UB *sdata,W *fpos,W num,int lenth)
{
	int i,signal=2;
	int er=0,loca;
	ER len1=0,len2=0;
	W cpos;
	W min=0L,top=0L,bott=num-1;
	B tempcode[15];
	B Top[6],Bott[6],Min[6];
		
	cpos=pos;
	len1=keylen-lenth;
	er=lseek(fn,cpos,0);
	if(er==E_LOWERR) 
	{
		return E_PRM;
	}
	
	if(er!=pos)
	{
		return E_PRM;
	}
	if(cpos>=0L && cpos<=num*fieldsize)loca=0;
	else loca=1;
	while(top<=bott && loca==0)
	{
		min=(top+bott)/2;
		len2=0;

   	        cpos=min*fieldsize;
	
		lseek(fn,cpos,0);
		er=read(fn,sdata,fieldsize);
		if(er==E_LOWERR)  break;
		if(er!=fieldsize) break;
		
		for(i=0;i<keylen;i++)
		   {
		   	tempcode[i]=sdata[i+keypos];
		   	if(tempcode[i]==' ')len2++;
		   }
		tempcode[i]=0x0;
		
		if (strcmp(code,tempcode)==0)break;

		if (len1<len2)signal=0;
		if (len1>len2)signal=1;

		if (len1==len2)
		  {

           	     for (i=0;i<lenth;i++)		  	
           	       {
           	         if (code[i]!=tempcode[i])
           	             {
           	               if (code[i]>tempcode[i])signal=0;
           	               if (code[i]<tempcode[i])signal=1;
           	               break;
           	             }
           	       }
		  }

		
		if (signal==1)
		   {

		        bott=min-1;	

		   }
                if (signal==0)
                   {

                        top=min+1;	
                   }
		if(top>bott)er=-1;                   

	}
	
		
	if(er==E_LOWERR) return E_PRM;
	
	if(er!=fieldsize) return E_NG;
	
	     *fpos=cpos;
	     return E_OK;
	if(er==-1)	return E_PRM;
}

ER Order_Search(ER fd,W start_adr,H fieldsize,H keypos,H keylen,B *code,B *sdata,W *fpos)
{
	int i;
	int er=0;
	W cpos;
	
	cpos=start_adr;
	er=lseek(fd,cpos,0);
	if(er==E_LOWERR) 
	{
		return E_PRM;
	}
	
	if(er!=start_adr)
	{
		return E_PRM;
	}
	
	while(1)
	{
		
		er=read(fd,sdata,fieldsize);
		if(er==E_LOWERR)  break;
		if(er!=fieldsize) break;
		
		for(i=0;i<keylen;i++)
		{
			if(code[i]!=sdata[i+keypos]) break;
		};
		
		if(i==keylen) break; /* compare OK */
		cpos+=fieldsize;
	}
	
		
	if(er==E_LOWERR) return E_PRM;
	
	if(er!=fieldsize) return E_NG;
	
	*fpos=cpos;
	return E_OK;
	
}


void alert(int i)
{
  int j;
  
  for(j=1;j<=i;j++)
  {
    s_sound(2250,3*j);
    Wait2(10L);
   } 
}

⌨️ 快捷键说明

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