📄 public.c
字号:
#include <time.h>
#include <stdio.h>
#include "public.h"
#include "link.h"
#include "oradb.h"
/*=====================================================
function:去除左空格
=====================================================*/
void LeftTrim(char *str)
{
int len;
int i;
len=strlen(str);
for(i=0;i<len;i++)
{
if(str[i]==32)
continue;
else
{
strcpy(str,&str[i]);
break;
}
}
}
/*=========================================================
function:去除右空格
===========================================================*/
void RightTrim(char *str)
{
int len,i;
len=strlen(str)-1;
for(i=len;i>=0;i--)
{
if(str[i]==32)
continue;
else
{
str[i+1]='\0';
break;
}
}
}
/*========================================
function:去除左右空格
========================================*/
void Trim(char *str)
{
LeftTrim(str);
RightTrim(str);
}
/*=====================================================
function:获取数据库登陆配置文件
=======================================================*/
void get_dba_cnf(char *usr,char *pwd)
{
FILE *fp;
int confcount = 0;
char buffer[128];
int len = 0;
int i = 0;
int j = 0;
int flag=0;
char getStr[2][20]={'\0'};
fp = fopen("pos.conf","r");
while( fgets(buffer,128,fp)!= NULL)
{
if (buffer[0]=='\r' || buffer[0]=='\n' || buffer[0]=='#') //删除空行和注释行
{
memset(buffer,'\0',sizeof(buffer));
continue;
}
len = strlen(buffer);
i = len -1;
while(buffer[i]==' ' || buffer[i]=='\r' || buffer[i]=='\n') //找到尾部第1个不是空格的
{
i--;
}
buffer[i+1] = '\0'; //去除右空格
while(buffer[i]!=' ')
{
i--;
}
strcpy(getStr[j],&buffer[i+1]);
j++;
}
strcpy(usr,getStr[0]);
strcpy(pwd,getStr[1]);
}
/*==========================================================
function:错误日志打印
============================================================*/
void elog(char *msg,char *fname,int len)
{
time_t curTime;
struct tm *tblock;
FILE *fp;
char *pathname;
int slen;
char str_tm[22];
pathname=(fname!=NULL)?fname:"msg.log";
slen=(len)?len:strlen(msg);
curTime=time(NULL);
tblock=localtime(&curTime);
strftime(str_tm,sizeof("[2002-01-01 00:00:00]"),"[%Y-%m-%d %H:%M:%S]",tblock);
if ((fp=fopen(pathname,"a"))!=NULL)
{
fwrite(str_tm,sizeof(char),strlen(str_tm),fp);
fwrite(msg,sizeof(char),slen,fp);
fwrite("\n",sizeof(char),strlen("\n"),fp);
fclose(fp);
}
}
/*==========================================================
function:判断条形码是否输过
return:返回当前条码的下标
============================================================*/
int code_in_list(char *bar_code)
{
int i=1;
for (; i<=salelist.count; i++)
{
NODE *n=salelist.get_node_by_index(&salelist,i);
PRODUCT *pro_info=(PRODUCT *)malloc(sizeof(PRODUCT));
pro_info=(PRODUCT *)n->data;
if ( strcmp(bar_code,pro_info->bar_code)==0 )
{
return i;
}
}
return 0;
}
/*================================================
function:实际收银价格
=================================================*/
float real_cash()
{
int i=1;
float sum=0;
PRODUCT *pro_info=(PRODUCT *)malloc(sizeof(PRODUCT));
NODE *n=NULL;
for (; i<=salelist.count; i++)
{
n=salelist.get_node_by_index(&salelist,i);
if (n!=NULL)
{
pro_info=(PRODUCT *)n->data;
}
if (pro_info!=NULL)
{
sum+=pro_info->sale_price*pro_info->count;
}
}
return sum;
}
/*=========================================
function:判断是否是float型字符串
===========================================*/
int is_float(char *str)
{
int len=0 ,i ,j=0 ;
len = strlen(str);
if (str[0] == '.')
return 0;
for(i=0;i<len;i++)
if (isdigit(str[i]) || str[i] == '.') {
if (str[i] == '.') {
j++;
}
if (j>=2) {
break;
}
continue;
}
else
break;
if (i != len) {
return 0;
}
else
return 1;
}
/*=======================================
function:判断是否是闰年
========================================*/
int leap_year(int year)
{
if((year%400==0) || (year%4==0 && year%100!=0))
{
return 1;
}
else
{
return 0;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -