Загрузка данных


// гюльмамедзаде
void save_to_file() {
    FILE *f_out = fopen("out.txt", "w");
    if (f_out == NULL) {
        printf("Ошибка при создании файла out.txt\n");
        return;
    }
    
    fprintf(f_out, "%-20s %-20s %-15s %-12s\n", "Заказчик", "Название", "Производитель", "Дата");
    fprintf(f_out, "----------------------------------------------------------------------------\n");
    
    for (int i = 0; i < count; i = i + 1) {
        fprintf(f_out, "%-20s %-20s %-15s %-12s\n", 
            ar[i].orderer, 
            ar[i].name, 
            ar[i].creator, 
            ar[i].data);
    }
    
    fclose(f_out);
    printf("Данные сохранены в файл out.txt (%d записей)\n", count);
}

void print_array_paginated() {
    if (count == 0) {
        printf("Массив пуст\n");
        return;
    }
    
    int rows_per_page = 5;  // Количество строк на одной странице
    int total_pages = (count + rows_per_page - 1) / rows_per_page;
    int current_page = 1;
    char choice;
    
    while (1) {
        // Очистка экрана (для Windows)
        system("cls");
        // Для Linux/Mac используйте system("clear");
        
        printf("\n==================== СТРАНИЦА %d ИЗ %d ====================\n", current_page, total_pages);
        printf("%-20s %-20s %-15s %-12s\n", "Заказчик", "Название", "Производитель", "Дата");
        printf("----------------------------------------------------------------------------\n");
        
        int start = (current_page - 1) * rows_per_page;
        int end = (start + rows_per_page < count) ? start + rows_per_page : count;
        
        for (int i = start; i < end; i = i + 1) {
            printf("%-20s %-20s %-15s %-12s\n", 
                ar[i].orderer, 
                ar[i].name, 
                ar[i].creator, 
                ar[i].data);
        }
        
        printf("----------------------------------------------------------------------------\n");
        printf("Всего записей: %d\n", count);
        
        if (total_pages <= 1) {
            printf("\nНажмите Enter для возврата в меню...");
            getchar();
            break;
        }
        
        printf("\nНавигация: [N] следующая  [P] предыдущая  [Q] выход\n");
        printf("Ваш выбор: ");
        scanf(" %c", &choice);
        getchar();
        
        if (choice == 'N' || choice == 'n') {
            if (current_page < total_pages) {
                current_page++;
            } else {
                printf("Это последняя страница!\n");
                printf("Нажмите Enter...");
                getchar();
            }
        }
        else if (choice == 'P' || choice == 'p') {
            if (current_page > 1) {
                current_page--;
            } else {
                printf("Это первая страница!\n");
                printf("Нажмите Enter...");
                getchar();
            }
        }
        else if (choice == 'Q' || choice == 'q') {
            break;
        }
    }
}