Update cv6/a_station.c
This commit is contained in:
parent
99ba57e056
commit
b9298b3486
@ -111,4 +111,40 @@ int count_capacity(struct station* station) {
|
|||||||
return total_capacity;
|
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; // Успішне збереження
|
||||||
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user