?? public.c
字號(hào):
#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:獲取數(shù)據(jù)庫(kù)登陸配置文件
=======================================================*/
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個(gè)不是空格的
{
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:錯(cuò)誤日志打印
============================================================*/
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:判斷條形碼是否輸過(guò)
return:返回當(dāng)前條碼的下標(biāo)
============================================================*/
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:實(shí)際收銀價(jià)格
=================================================*/
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;
}
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -