Add file io solutions.

This commit is contained in:
paulusja committed 2026-10-29 11:15:04 +01:00
1 parent 3b5d111351
commit 45336b083c
3 files changed
+143 -41

No files matched your search

+29 -25
View File
@@ -1,11 +1,8 @@
/*
* Verwenden Sie Ihre Lösung für das Namensarchiv mittels eines binären Suchbaums. Ergänzen Sie das Modul um zwei Funktionen,
* mit denen das bestehende Archiv um Namen erweitert wird, die in einer vorhandenen Textdatei stehen, bzw. den Inhalt des Archivs
* in eine bestimmte Textdatei sortiert speichern. Details entnehmen Sie wieder der namesarchive.h.
*
* Welcher Nachteil ergibt sich für einen binären Suchbaum, wenn beliebige Namen zunächst aus einer Datei eingelesen werden,
* sortiert wieder in Datei geschrieben werden und anschließend wieder neu aus der Datei geladen werden?
* (Also im Prinzip bei der zweiten Ausführung des untenstehenden Programms)
* Vervollständigen Sie das untenstehende Programm, indem Sie das Modul namesarchive in der
* namesarchive.h bzw. namesarchive.c implementieren.
* Die öffentlichen Schnittstellen mit genaueren Details entnehmen Sie der namesarchive.h.
* Das Programm soll das Modul als dynamische Laufzeitbibliothek nutzen.
*
*/
@@ -21,14 +18,34 @@ char *inputName(const char *promptText, char *buffer, unsigned int bufferSize);
int main()
{
char buffer[MAX_BUFFER_LEN];
const char *filePath = "names.txt";
if(!loadArchive(filePath))
loadArchive("archive.txt");
while((inputName("Namen hinzufuegen: ", buffer, MAX_BUFFER_LEN) != NULL) && (strlen(buffer) > 0))
{
printf("Die Textdatei %s konnte nicht geladen werden.\n", filePath);
if(addName(buffer))
printf("%s wurde dem Archiv hinzugefuegt.\n", buffer);
else
printf("Fehler! %s konnte nicht hinzugefuegt werden.\n", buffer);
}
printf("\nNach Laden:\n");
printf("\nNach Eingabe:\n");
printNames();
printf("\nNach Sortierung:\n");
sortNames();
printNames();
printf("\n");
while((inputName("Namen sortiert hinzufuegen: ", buffer, MAX_BUFFER_LEN) != NULL) && (strlen(buffer) > 0))
{
if(addNameSorted(buffer))
printf("%s wurde dem Archiv hinzugefuegt.\n", buffer);
else
printf("Fehler! %s konnte nicht hinzugefuegt werden.\n", buffer);
}
printf("\nNach sortierter Eingabe:\n");
printNames();
printf("\n");
@@ -42,21 +59,8 @@ int main()
printf("\nNach Entfernen:\n");
printNames();
printf("\n");
if(saveArchive(filePath))
{
printf("Archiv erfolgreich unter %s gespeichert.\n", filePath);
}
else
{
printf("Fehler beim Speichern des Archivs unter %s.\n", filePath);
}
printf("\nGebe Speicher frei ...\n");
clearArchive();
printf("Beende Programm ...\n");
saveArchive("archive.txt");
return EXIT_SUCCESS;
}