tlibc_error_code_t tlibc_read_vector_end(tlibc_abstract_reader_t *self, const char* vec_name)
{
	tlibc_error_code_t ret;
	ret = del_name(self, vec_name);
	if(ret != E_TLIBC_NOERROR)
	{
		return ret;
	}
	if(self->read_vector_end == NULL)
	{
		return E_TLIBC_NOERROR;
	}
	return self->read_vector_end(self, vec_name);
}
Esempio n. 2
0
/*
 * End a transaction
 */
void
dlz_closeversion(const char *zone, isc_boolean_t commit,
		 void *dbdata, void **versionp)
{
	struct dlz_example_data *state = (struct dlz_example_data *)dbdata;

	if (!state->transaction_started) {
		state->log(ISC_LOG_INFO,
			   "dlz_example: transaction not started for zone %s",
			   zone);
		*versionp = NULL;
		return;
	}

	state->transaction_started = ISC_FALSE;

	*versionp = NULL;

	if (commit) {
		int i;
		state->log(ISC_LOG_INFO,
			   "dlz_example: committing transaction on zone %s",
			   zone);
		for (i = 0; i < MAX_RECORDS; i++) {
			if (strlen(state->adds[i].name) > 0U) {
				add_name(state, &state->current[0],
					 state->adds[i].name,
					 state->adds[i].type,
					 state->adds[i].ttl,
					 state->adds[i].data);
			}
		}
		for (i = 0; i < MAX_RECORDS; i++) {
			if (strlen(state->deletes[i].name) > 0U) {
				del_name(state, &state->current[0],
					 state->deletes[i].name,
					 state->deletes[i].type,
					 state->deletes[i].ttl,
					 state->deletes[i].data);
			}
		}
	} else {
		state->log(ISC_LOG_INFO,
			   "dlz_example: cancelling transaction on zone %s",
			   zone);
	}
	memset(state->adds, 0, sizeof(state->adds));
	memset(state->deletes, 0, sizeof(state->deletes));
}
tlibc_error_code_t tlibc_read_field_end(tlibc_abstract_reader_t *self, const char *var_name)
{
	tlibc_error_code_t ret = E_TLIBC_NOERROR;

	if(self->read_field_end != NULL)
	{
		ret = self->read_field_end(self, var_name);
		if(ret != E_TLIBC_NOERROR)
		{
			return ret;
		}
	}	
	ret = del_name(self, var_name);
	return ret;
}
void expurgate(void)
{
    char option;
    char sign;
    system("cls");
    switch(language)
    {
        case '1' :
                  {
                      printf("                                  学生成绩管理系统\n");
                      printf("                                                                      来自:Dack");
	                  printf("================================================================================\n");
                      printf("1.按照学生序号删除.\n");
                      printf("2.按照学生学号来删除.\n");
                      printf("3.按照学生姓名来删除.\n");
                      printf("4.返回上一层菜单.\n");
                      printf("5.返回主菜单.\n\n");
                  }
                  break;
        case '2' :
                  {
                      printf("                      Student achievement management system\n");
                      printf("                                                                         By Dack");
	                  printf("================================================================================\n");
                      printf("1.According to the serial number to delete.\n");
                      printf("2.According to the student ID deleted.\n");
                      printf("3.According to the name to delete.\n");
                      printf("4.Back to a layer of menu.\n");
                      printf("5.Back to the main menu.\n\n");
                  }
                  break;
        case '3' :
                  {
                      printf("                              生徒の成績管理システム\n");
                      printf("                                                                      出自:dack");
	                  printf("================================================================================\n");
                      printf("1.入力してください削除する学生の番号にしなければならない.\n");
                      printf("2.入力してください削除しなければならない」とした学生の学籍番号だった.\n");
                      printf("3.入力してください削除しなければならない学生の名前だ.\n");
                      printf("4.戻ってきてに一层のメニュー.\n");
                      printf("5.メインメニューに戻る.\n\n");
                  }
                  break;
    }
    do
    {
        switch(language)
        {
            case '1' :
                      {
                          printf("请输入序号 : ");
                      }
                      break;
            case '2' :
                      {
                          printf("Please enter the serial number : ");
                      }
                      break;
            case '3' :
                      {
                          printf("番号を入力してください : ");
                      }
                      break;
        }
        fflush(stdin);
        scanf("%1c",&option);
        fflush(stdin);
        if(option<'1'||option>'5'){
            switch(language)
            {
                case '1' :
                      {
                          printf("错误!你想结束程序吗 ?\n");
                          printf("请输入 Y 或者 N : ");
                      }
                      break;
                case '2' :
                      {
                          printf("Error! Do you want finish the program?\n");
                          printf("Please enter the Y or N : ");
                      }
                      break;
                case '3' :
                      {
                          printf("誤ったもので、あなたは终わりにプログラムだったのだろうか?\n");
                          printf("Y あるいは Nで入力してください : ");
                      }
                      break;
            }
            scanf("%c",&sign);
            if(toupper(sign)!='N')
                exit(0);
        }
    }while(option<'1'||option>'5');
    fflush(stdin);
    switch(option)
    {
        case '1' : del_sequence(); break;
        case '2' : del_id();       break;
        case '3' : del_name();     break;
        case '4' : main_menu();    break;
        case '5' : main_menu();    break;
    }
    switch(language)
    {
        case '1' :
                  {
                      printf("你想返回主菜单吗 ?\n");
                      printf("请输入 Y 或者 N  ");
                  }
                  break;
        case '2' :
                  {
                      printf("Do you want back to main menu ?\n");
                      printf("Please enter the Y or N ");
                  }
                  break;
        case '3' :
                  {
                      printf("あなたに戻りたいメインメニューだったのだろうか ?\n");
                      printf("Y あるいは N で入力してください ");
                  }
                  break;
    }
    scanf("%c",&sign);
    fflush(stdin);
    if(toupper(sign)!='N'){
        system("cls");
        main_menu();
    }
    else
        expurgate();
}