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

📄 data.c

📁 可以在嵌入式应用中
💻 C
字号:
#include <CsAgb.h>
#include <rb_data.h>
#include <rbasic.h>

void dat_add_num(double num)//置数字数据
{
   if (num_dat_sta==NULL)
   {
      num_dat_sta=(struct num_dat *)malloc(sizeof(struct num_dat));
      if (num_dat_sta==NULL)
      {
         rb_error=1;
         return;
      }
      num_dat_end=num_dat_sta;
      num_dat_now=num_dat_sta;
      num_dat_sta->num=num;
      num_dat_sta->next=NULL;
   }
   else
   {
      num_dat_end->next=(struct num_dat *)malloc(sizeof(struct num_dat));
      if (num_dat_end->next==NULL)
      {
         rb_error=1;
         return;
      }
      num_dat_end=num_dat_end->next;
      num_dat_end->num=num;
      num_dat_end->next=NULL;
   }
}
double dat_read_num()//读数据
{
   double num;
   if (num_dat_now==NULL)
   {
      rb_error=20;
      return 0.0;
   }
   num=num_dat_now->num;
   num_dat_now=num_dat_now->next;
   return num;
}
void dat_add_str(char *str)//置字符串数据
{
   u8 len=str_len(str);
   char *strp=(char *)malloc(len);
   if (strp==NULL)
   {
      rb_error=6;
      return;
   }
   if (str_dat_sta==NULL)
   {
      str_dat_sta=(struct str_dat *)malloc(sizeof(struct str_dat));
      if (str_dat_sta==NULL)
      {
         rb_error=1;
         return;
      }
      str_dat_sta->str=strp;
      strcpy(str_dat_sta->str,str);
      str_dat_sta->next=NULL;
      str_dat_end=str_dat_sta;
      str_dat_now=str_dat_sta;
   }
   else
   {
      str_dat_end->next=(struct str_dat *)malloc(sizeof(struct str_dat));
      if (str_dat_end->next==NULL)
      {
         rb_error=6;
         return;
      }
      str_dat_end=str_dat_end->next;
      str_dat_end->next=NULL;
      str_dat_end->str=strp;
      strcpy(str_dat_end->str,str);
   }
}

char *dat_read_str()//读字符串数据
{
   char *strp;
   if (str_dat_now==NULL)
   {
      rb_error=6;
      return NULL;
   }
   strp=str_dat_now->str;
   str_dat_now=str_dat_now->next;
   return strp;
}

void dat_restore(u8 ty)//数据重置
{
   if (ty) str_dat_now=str_dat_sta;
   else num_dat_now=num_dat_sta;
}

void dat_clean_num(struct num_dat *cls)//数据清除
{
   struct num_dat *next;
   while (cls!=NULL)
   {
      next=cls->next;
      free(cls);
      cls=next;
   }
}

void rb_clean_num()
{
   dat_clean_num(num_dat_sta);
   num_dat_sta=NULL;
   num_dat_end=NULL;
   num_dat_now=NULL;
}
void dat_clean_str(struct str_dat *cls)
{
   struct str_dat *next;
   while (cls!=NULL)
   {
      next=cls->next;
      free(cls);
      cls=next;
   }
}
void rb_clean_str()
{
   dat_clean_str(str_dat_sta);
   str_dat_sta=NULL;
   str_dat_end=NULL;
   str_dat_now=NULL;
}

⌨️ 快捷键说明

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