verschiedene Datei-Inhalte in verschiedene Arrays speichern
-
Hallo Zusammen,
ich habe ein Verzeichnis in dem mehrere Text-Dateien (.txt) sind. Die
Anzahl und Namen der Dateien kann vor dem Programmstart jedesmal unter-
schiedlich sein. Während der Laufzeit ändert sich nichts. Nun möchte
ich den Inhalt(Zahlen) jeder Datei in ein eigenes Array schreiben. Das
heisst jeder Datei-Inhalt soll ein eigenes Array mit eigenen Arraynamen
bekommen. Anschliessend soll der Reihe nach jedes Array Zeile für Zeile
abgearbeitet werden (z.B. mit for each).Bisher habe ich die verschiedenen Dateinamen (plus Pfad) in ein Array
geschrieben und dann jedes mal die Datei geöffnet, Inhalt in ein tem-
poräres Array geschrieben, temporäres Array Zeile für Zeile abgearbeitet,
Inhalt von temporäres Array gelöscht, Datei wieder geschlossen. Und dass
für jede Datei. Das Ganze läuft dann innerhalb einer while-Schleife ständig
durch und da wollte ich dass ständige Datei-öffnen, temp-array füllen,
temp-array-leeren, Datei-schliessen vermeiden.Weiss jemand wie man dass noch realisieren kann? Evtl. kann man Arrays
einem Hash zuweisen/referenzieren? Ich weiss nur nicht wie und es soll ja
jedem Datei-Inhalt ein eigener Namen zugewiesen werden damit man dann auf
den Inhalt zugreifen kann?? Vieleicht hat ja schon jemand ein nützliches
Code-Schipsel?Array1 = Datei1-Inhalt
Array2 = Datei2-Inhalt
Array3 = Datei3-Inhalt
usw. und dann jedes Array zeilenweise abarbeitenUnd wie schon erwähnt haben die Dateien verschiedene Inhalte, und es kann
sich täglich die Anzahl und die Namen der Dateien ändern. Somit muss ich
es am Programm-Anfang immer neu laden!!vielen Dank im voraus,
gruss, rommi
-
Wo ist den genau das Problem, oder was willst du anderst machen?
Was du da mit einem Hash machen willst weiss ich auch nicht genau.
Ich würde da wahrscheinlich ein solches, oder ähnliches Konstrukt haben:
struct name { std::string name_; std::vecto<int> zahlen_; };Und dann halt da z.B im Konstruktor das File öffnen und einlesen. Um das einlesen kommst du ja nicht herum.
Bisher habe ich die verschiedenen Dateinamen (plus Pfad) in ein Array
geschriebenDas könnte ein anderes Problem sein, wenn ich dich richtig verstehe. Das heisst, dass du jedesmal, wenn sich die Anzahl Dateien ändert du das Programm neu kompilieren musst? - Das kannst du z.B so machen, dass du einen Ordner bestimmst und dann alle Dateien von dort einliest und somit beliebig viele drin sein können. Oder du machst eine Hauptdatei, welche sicher immer da ist und wo du reinschreiben kannst welche Dateien geladen werden sollen. Somit kannst du auch viele Files in den Ordner tun und nur ein paar bestimmen, welche eingelesen werden sollen. (dazu kommt noch, dass du dich nicht mit irgendwelchen Librarys für Filesysteme rumschlagen musst)
-
Hallo Drakon, Danke für die Antwort!
Gruss, rommi
-
rommi schrieb:
Hallo Drakon, Danke für die Antwort!
Gruss, rommiHats denn geholfen? Habe ich dich demfall richtig verstanden?
-
Hallo drakon,
jo es hat geholfen über die Sache nachzudenken und einen anderen Lösungsansatz
zu finden. Eigentlich wollte ich nur ein Programm schreiben dass zur Laufzeit
genau einmal in ein Verzeichnis guckt und alle gefundenen Textdateien in ein
eigenes Array schreibt.Also bildlich:
Dateiinhalt von Textdatei1 -> Array1
Dateiinhalt von Textdatei2 -> Array2
Dateiinhalt von Textdatei3 -> Array3usw. je nachdem wieviele Textdateien im Verzeichnis gefunden werden.
Später im Programm soll dann auf die einzelnen Array zugegriffen bzw.
verarbeitet werden.Danke auf jeden Fall, Liebe Grüsse rommi