Binärsequenz
-
Hallo,
ich habe eine datei.dat mit Datensätzen.
Die Datensätze sind ein String als Binärsequenz im Binärmodus mit der Datensatzkönge 30 gespeichert worden.Wie kann ich nun die einzelnen Datensätze auslesen und in Variablen speichern?
Haben uns bisher nur mit normalen Textsequenzen beschäftigt und es fehlt da einfach noch die Übung.Danke im voraus.
-
Welchen Typ hat so ein Datensatz im C++Programm ?
Ist das Speicherformat identisch mit dem Memory-Abbild der betreffenden Objekte? (wg. Binärsequenz)
-
Ich habe lediglich die Datei Namen.dat in der Namen von Personen stehen.
Diese Personen muss ich in einem Container zusammen mit anderen Daten speichern. Mehr als die obigen Angaben kann ich leider nicht geben
-
Kann mir da niemand weiterhelfen?

-
bevor du hier rumspamst, solltest du mal lieber deinen post so editieren, dass man ihn auch beim einmaligen lesen versteht...
vll gings dem rest ja anders aber ich musste ihn scho paar ma lesen, bis ich ihn verstanden hatte... ^^außerdem solltest du langsam wissen, dass man hier in dem forum keine hausaufgaben erledigt bekommt, wenn man keinerlei eigeninitiative zeigt...
Haben uns bisher nur mit normalen Textsequenzen beschäftigt und es fehlt da einfach noch die Übung.
klingt wie schule/studium/... -> du solltest also auch unterlagen dazu haben... also versuch mal es zu basteln - wenns dann fehler gibt wird dir wahrscheinlich jeder gern helfen...
bb
-
skizZ schrieb:
Kann mir da niemand weiterhelfen?

Das ist ohne Hellsehen ziemlich schwierig. Du hast z.B. meine Fragen nicht beantwortet.
Wenn Du uns nicht sagen kannst, in welchem Format die Namen der Personen in der Datei stehen, und Du auch nicht sagen kannst als welche Typen (char*, std::string, eigene struct) sie nachher im Programm vorliegen, dann kann Dir auch niemand helfen.
Wie geht denn das Programm weiter, nachdem die Namen eingelesen wurde, kannst Du da ein Code-Schnipsel zeigen?
Wie kommen die Namen in die Datei rein?
Kannst Du die Datei mit einem Texteditor (z.B. Nodepad) ansehen - und was siehst Du da?Gruß
Werner
-
Hallo,
also wie gesagt sind die Namen als C-String im Binärformat in der Datei Namen.dat gespeichert worden. Auslesen und Speichern tue ich sie auch als String. Danach soll ich aus einer weiteren .txt Datei Firmennamen auslesen und einem BachelorStudenten zuordnen. Diese Daten dann zusammenfügen und in einer neue Datei schreiben.
Einen Link zur Aufgabenstellung schicke ich dir per PM.
Edit
Da man hier keine PM schreiben kann, schicke ich dir eine Mail an die in deinem Profil angegebene Email Adresse.
-
Also ich unterstelle mal, dass die Namen mit einer abschließenden '\0' in der Datei liegen und ggf. die restlichen der 30 Zeichen irrelevant sind. Dann könnte das vielleicht so aussehen:
#include <iostream> #include <fstream> #include <string> int main() { using namespace std; ifstream namen_dat( "Namen.dat", ios_base::binary ); const int N = 30; char name_carray[N+1]; name_carray[N] = 0; // sicheres End-Of-String while( namen_dat.read( name_carray, N ) ) // einen Datensatz lesen { string name = name_carray; cout << name << endl; // hier die Namen weiter verarbeiten } if( !namen_dat.eof() ) cerr << "Fehler beim Lesen der Datei " << endl; else { // hier geht's weiter ; } return 0; }Gruß
Werner
-
Daumen hoch, genau so funktioniert es

Danke