Основы программирования в Linux
Шрифт:
}
}
}
16. Следующая функция — утилита для удаления всех дорожек элемента каталога:
static void del_track_entries(const cdc_entry *entry_to_delete) {
int track_no = 1;
int delete_ok;
display_cdc(entry_to_delete);
if (get_confirm("Delete tracks for this entry? ")) {
do {
delete_ok = del_cdt_entry(entry_to_delete->catalog, track_no);
track_no++;
} while(delete_ok);
}
}
17. Создайте
static cdc_entry find_cat(void) {
cdc_entry item_found;
char tmp_str[TMP_STRING_LEN + 1];
int first_call = 1;
int any_entry_found = 0;
int string ok;
int entry_selected = 0;
do {
string_ok = 1;
printf("Enter string to search for in catalog entry: ");
fgets(tmp_str, TMP_STRING_LEN, stdin);
strip_return(tmp_str);
if (strlen(tmp_str) > CAT_CAT_LEN) {
fprintf(stderr, "Sorry, string too long, maximum %d \
characters\n", CAT_CAT_LEN);
string_ok = 0;
}
} while (!string_ok);
while (!entry_selected) {
item_found = search_cdc_entry(tmp_str, &firstcall);
if (item_found.catalog[0] != '\0') {
any_entry_found = 1;
printf("\n");
display_cdc(&item_found);
if (get_confirm("This entry? ")) {
entry_selected = 1;
}
} else {
if (any_entry_found) printf("Sorry, no more matches found\n");
else printf("Sorry, nothing found\n");
break;
}
}
return(item_found);
}
18. Функция
list_tracks
— утилита, которая выводит все дорожки для заданного элемента каталога:
static void list_tracks(const cdc_entry *entry_to_use) {
int track_no = 1;
cdt_entry entry_found;
display_cdc(entry_to_use);
printf("\nTracks\n");
do {
entry_found = get_cdt_entry(entry_to_use->catalog, track_no);
if (entry_found.catalog[0]) {
display_cdt(&entry_found);
track_no++;
}
} while(entry_found.catalog[0]);
(void)get_confirm("Press return");
} /* list_tracks */
19. Функция
count_all_entries
static void count_all_entries(void) {
int cd_entries_found = 0;
int track_entries_found = 0;
cdc_entry cdc_found;
cdt_entry cdt_found;
int track_no = 1;
int first_time = 1;
char *search_string = "";
do {
cdc_found = search_cdc_entry(search_string, &first_time);
if (cdc_found.catalog[0]) {
cd_entries_found++;
track_no = 1;
do {
cdt_found = get_cdt_entry(cdc_found.catalog, track_no);
if (cdt_found.catalog[0]) {
track_entries_found++;
track_no++;
}
} while (cdt_found.catalog[0]);
}
} while (cdc_found.catalog[0]);
printf("Found %d CDs, with a total of %d tracks\n",
cd_entries_found, track_entries_found);
(void)get_confirm("Press return");
}
20. Теперь у вас есть утилита
display_cdc
для вывода элемента каталога:
static void display_cdc(const cdc_entry *cdc_to_show) {
printf("Catalog: %s\n", cdc_to_show->catalog);
printf("\ttitle: %s\n", cdc_to_show->title);
printf("\ttype: %s\n", cdc_to_show->type);
printf("\tartist: %s\n", cdc_to_show->artist);
Поделиться:
Популярные книги
Ваше Сиятельство 9
9. Ваше Сиятельство
Фантастика:
боевая фантастика
попаданцы
стимпанк
аниме
фэнтези
5.00
рейтинг книги
Наследие Маозари 7
7. Наследие Маозари
Фантастика:
боевая фантастика
юмористическое фэнтези
постапокалипсис
рпг
фэнтези
эпическая фантастика
5.00
рейтинг книги
Гранит науки. Том 2
2. Героями не становятся, ими умирают
Фантастика:
фэнтези
5.00
рейтинг книги
На границе империй. Том 9. Часть 2
15. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
Меченный смертью. Том 4
4. Меченный смертью
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Ночной администратор
Детективы:
шпионские детективы
7.14
рейтинг книги
Господин Хладов
4. Кровь и лёд
Фантастика:
аниме
5.00
рейтинг книги
Адвокат Империи 12
12. Адвокат империи
Фантастика:
городское фэнтези
альтернативная история
аниме
дорама
попаданцы
5.00
рейтинг книги
Петля, Кадетский корпус. Книга третья
3. Петля
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Адвокат Империи 8
8. Адвокат империи
Фантастика:
городское фэнтези
альтернативная история
аниме
дорама
фантастика: прочее
попаданцы
5.00
рейтинг книги
Локки 7. Потомок бога
7. Локки
Фантастика:
аниме
эпическая фантастика
фэнтези
5.00
рейтинг книги
Маг
2. Истринский цикл
Фантастика:
фэнтези
8.57
рейтинг книги
Весь цикл «Десантник на престоле». Шесть книг
Десантник на престоле
Фантастика:
альтернативная история
8.38
рейтинг книги
"Новый Михаил-Империя Единства". Компиляцияя. Книги 1-17
Избранные циклы фантастических романов
Фантастика:
попаданцы
альтернативная история
5.00