Exemple #1
0
void list_delete_all(list *listo)
{
	int i;
	
	for(i=listo->item_count-1; i>=0; i--)
		list_delete_index(listo, i);
}
Exemple #2
0
void list_delete_item(list *listo, void *item)
{
	int i;
	
	for(i=0; i < listo->item_count; i++)
	{		
		if( listo->items[i] == item )
			list_delete_index(listo, i);
	}
}
Exemple #3
0
void list_delete_name(list *listo, char *name)
{
	int i;
	//int j;
	//char remove = 0;
	
	//	int length_name = strlen(name);
	int item_name;
	
	if(name == NULL)
		return;
	
	for(i=0; i < listo->item_count; i++)
	{
		item_name = strlen(name);
				
		if( name != NULL && (strncmp(listo->names[i], name, strlen(name)) == 0) )
			list_delete_index(listo, i);
	}
}
Exemple #4
0
/* редактор списка структур */
void list_edit(LPLIST lpList)
{
	int ItemIndex = -1; /* текущий индекс элемента */
	LPITEM lpItem = 0; /* выбранный элемент */


	if (lpList->Count > 0)
		ItemIndex = 0;

	/* цикл  */
	while (1)
	{
		clrscr();
		/* заголовок */
		printf("Edit List [Count = %d] [Max Count = %d] ", lpList->Count, BUFF_SIZE);
		if (ItemIndex < 0)
			printf("[no selected]\n");
		else
			printf("[Current elem = %d]\n", ItemIndex);
		separator();

		/* клавиши управления */
		printf("q - exit\n");
		printf("a - add\n");
		printf("d - delete\n");
		printf("e - edit\n");
		printf("l - print list\n");
		printf("s = sorter\n");
		printf("c - clear list\n");
		printf("f - find item\n");
		printf("b - back elem\tn - next elem\n\n");

		if (ItemIndex >= 0)
		{
			table_head();
			item_out(&lpList->Items[ItemIndex]);
		}
		separator();
		/* обработка клавиш */
		switch (getch())
		{
		case 'c': /* очистка списка */
			list_clear(lpList);
			ItemIndex = -1;
			break;
		case 'b': /* переход на предыдущий элемент */
			if (ItemIndex > 0)
				ItemIndex--;
			break;
		case 'n': /* переход на следующий элемент */
			if (ItemIndex < lpList->Count - 1)
				ItemIndex++;
			break;
		case 's':
			sort_mode(lpList);
			list_out(lpList);
			printf("\npress any key to back menu");
			getch();
			break;
		case 'f':
			ItemIndex = find_mode(lpList);
			break;
		case 'd':
			if (ItemIndex >= 0)
			{
				list_delete_index(lpList, ItemIndex);
				if (ItemIndex >= lpList->Count)
					ItemIndex = lpList->Count - 1;
			}
			break;
		case 'e':
			if (ItemIndex >= 0)
			{
				item_edit(&lpList->Items[ItemIndex]);
			}
			break;
		case 'a': /* добавление элемента в список */
			lpItem = list_find_empty(lpList); /* поиск пустой структуры в списке */
			if (lpItem)
			{
				lpList->Count++;
				item_in(lpItem);
				ItemIndex = list_index_of(lpList, lpItem);
			}
			else
				printf("no empty element!");
			break;
		case 'l': /* отображаем список в виде таблицы */
			list_out(lpList);
			printf("\npress any key to back menu");
			getch();
			break;
		case 'q': /* выход из программы */
			exit(1);
			break;
		}
	}
}
Exemple #5
0
/* удаление элемента из списка */
void list_delete(LPLIST lpList, LPITEM lpItem)
{
	int i = list_index_of(lpList, lpItem);
	if (i >= 0)
		list_delete_index(lpList, i);
}