Update cv6/a_station.c

This commit is contained in:
Yurii Chechur 2024-10-30 12:03:29 +00:00
parent 99ba57e056
commit b9298b3486

View File

@ -111,4 +111,40 @@ int count_capacity(struct station* station) {
return total_capacity;
}
// Функція для завантаження бази даних з текстового файлу
int load_from_file(struct station* station, const char* filename) {
FILE* file = fopen(filename, "r");
if (file == NULL) {
return -1; // Не вдалося відкрити файл
}
char target[TARGET_SIZE];
int capacity;
while (fscanf(file, "%s %d", target, &capacity) == 2) {
add_target_capacity(station, target, capacity);
}
fclose(file);
return 0; // Успішне завантаження
}
// Функція для збереження бази даних у текстовий файл
int save_to_file(struct station* station, const char* filename) {
FILE* file = fopen(filename, "w");
if (file == NULL) {
return -1; // Не вдалося відкрити файл
}
for (int i = 0; i < station->track_count; i++) {
struct car* current = station->tracks[i];
while (current != NULL) {
fprintf(file, "%s %d\n", current->value, current->capacity);
current = current->next;
}
}
fclose(file);
return 0; // Успішне збереження
}