C++ Datei öffnen mit einem Namen das sich jedes mal ändern kann

rasidrasid

Cadet 4th Year
Registriert
Apr. 2014
Beiträge
70
Hallo,

ich will eine Datei öffnen, die sich bei einer Berechnung mit unterschiedlichen Sachen zusammen setzt. Ein Beispiel:
job_idjob_jobname.E0

"job_" wird immer stehen
"idjob" ergibt sich aus der gestarteten Berechnung, die immer anders sein kann
"_" wird immer sein
"jobname" das ist der Name der Berechnung. Sie kann natürlich wahllos und willkürlich sein
".E0" das ist die Endung der Datei. Dieses steht auch fest und wird immer so heißen

Ich müsste per ifstream eine Datei öffnen, die sich aus diesen Sachen zusammenstellt. Kann mir einer helfen?

Danke
 
Das schreit nach RegEx. ;)
"job_[\d]{5}_[\w]+.E0" oder etwas in der Art.
 
Darst du die boost-Libraries verwenden? Falls ja, mit boost::filesystem::directory_iterator über die Inhalte des Verzeichnisses loopen und für jeden Verzeichnis-Eintrag individuell testen, ob der Name deinem Suchmuster entspricht. Wenn ja, dann öffnest du die betroffene Datei als nächstes mit einem ifstream-Objekt.

Zur Verwendung von boost::filesystem::directory_iterator: http://stackoverflow.com/questions/...t-a-list-of-files-in-a-folder-in-which-the-fi
 
Danke für die Antworten.

Könnte es auch so funktionieren, dass ich die Datei ab job_ abschneide (substr) dannach die idjob dazu gebe (append) und dann ein _ und dann ein jobname und dann ein .E0. Wie könnte das mit substr und append funktionieren?

Danke
 
Das musst du jetzt genauer erklären. Was machst du denn anders, als das was du im Eingangspost erklärt hast?
 
Das im Eingangspost stimmt, das brauche ich. Mir ist noch nicht ganz klar, wie ich diese Datei öffnen kann. Ich will diese Datei durchsuchen, also muss ich sie öffnen, aber wie programmieren was sich bei jeder neuen Rechnung neu anlegt.

Code:
ifstream datei;
    string line, odb_in_minp, schnitt;
    datei.open("diese job-datei?????", ios::in);

Das würde ja nicht funktionieren. Was muss dann nach open kommen??
 
Ok, das Problem was du da hast ist, dass du den Namen nicht weist.
Beispiel: In einer Schublade sind 10 Päckchen mit 10 verschiedenen Farben. Was du mit dem Befehl machst ist zurzeit zusagen:"Gebe mir das Päckchen." Aber niemand weis welches Päckchen er dir geben soll, da du die Farbe nicht nennst (Weil du sie selber nicht weist).

Das kann nur funktionieren, wenn das Päckchen allein in der Schublade liegt -> die Datei allein im Ordner. Und das wird in meinem Link erklärt, wie du das zu programmieren hast.
 
Kaulin schrieb:
Das kann nur funktionieren, wenn das Päckchen allein in der Schublade liegt -> die Datei allein im Ordner. Und das wird in meinem Link erklärt, wie du das zu programmieren hast.

Oder man schaut sich alle Päckchen in der Schublade an, findet die Farbe heraus und schaut ob man diese Farbe haben möchte.
 
Zurück
Oben