[SDI] Automatisches Trennzeichen beim Speichern
-
sebileiste schrieb:
Naja, die 4 Daten spiegeln jeweils eine Zeile in einer Tabelle wieder. Von daher wollte ich diese 4 Daten als Block speichern um sie beisammen zu haben. Wenn ich nun die Daten ohne eine solche Struktur speicher, wie kann ich dann den inhalt der Datei wieder richtig zerteilen?
Brauchste doch gar nicht, das übernimmt doch die Serialisierung. Du schreibst nur die Routine fürs Speichern und Laden und fertig. Beachte aber die Reihenfolge, sonst kommt nur Murks raus. Der Ansatz mit dem ar<<... war doch schon voll richtig.
-
Ich bin grasd richtig verwirrt. Ich arbeite zum ersten Mal mit Serialisierung, jedoch habe ich schon sehr oft mit Dateien gearbeitet, und dort hab ich immer dieses Schema genutzt.
Meine Tabelle sieht nun so aus:
A|B|C|D
E|F|G|Hnun will ich diese 8 Buchstaben so speichern, dass ich beim einlesen der Datei wieder diese 2 4er Reihen in meine CListCtrl reinschreiben (bzw. dynamisch viele Zeilen) kann.
Mir fehlt gerade absolut der Ansatz das ohne Trennzeichen und Co zu realisieren.
Ich bitte um Hilfe, am besten nen kleiner Beispielcode.
-
Wie schreibst du denn das in deine Tabelle? Weclhe Datentypen nimmst du und wie sieht der Code dazu aus? Hat deine Tabelle immer die Form
A|B|C|D
E|F|G|Hoder gibts da auch mal mehr Spalten/Zeilen?
-
Ich habe eine CListCtrl im Bericht-Stil, die ich mit den Daten aus der Datei füllen will. Ja, es sind immer 4 Spalten pro Zeile.
Momentan lese ich die Daten aus der Datei in einen CString und schreibe diesen dann über die entsprechenden Methoden in die CListCtrl.
-
sebileiste schrieb:
Ok, hab ich grob verstanden.
Kannst du mir nen Hinweis geben, wie ich dann CArchiv so nutzen kann, dass ich diese Datenbklöcke hinterlegt und ausgelesen bekomme?
Indem man die Anwahl der Daten vorne weg speichert:
ar << m_iNumLines << m_iNumColumns; for (int i=0; i<m_iNumLines; +i) for (int j=0; j<m_iNumColumn; ++j) ar << m_data[i][j];Und das selbe eben rückwärts...

-
Ich komm mir grad richtig behämmert vor, aber ich raffs nich.
Wenn ich dein Beispiel richtig verstehe, schreibst du erst die Anzahl der Zeilen und Spalten in die Datei, und danach die ganzen Daten. Ok. Aber wie liest du nun speziell die beiden Werte für die Anzahl der Spalten und Zeilen wieder aus der Datei?
-
sebileiste schrieb:
Ich komm mir grad richtig behämmert vor, aber ich raffs nich.
Wenn ich dein Beispiel richtig verstehe, schreibst du erst die Anzahl der Zeilen und Spalten in die Datei, und danach die ganzen Daten. Ok. Aber wie liest du nun speziell die beiden Werte für die Anzahl der Spalten und Zeilen wieder aus der Datei?ar >> m_iNumLines >> m_iNumColumns; // Next line will aply the correct demensions to the array m_data RedimMyDataSpace(m_iNumLines,m_iNumColumns); for (int i=0; i<m_iNumLines; +i) for (int j=0; j<m_iNumColumn; ++j) ar >> m_data[i][j];
-
RedimMyDataSpace kennt mein VS nicht, und google liefert mit 0 Ergebnisse ^^
-
sebileiste schrieb:
RedimMyDataSpace kennt mein VS nicht, und google liefert mit 0 Ergebnisse ^^
Hast Du schon mal was von Pseudocode gehört?

-
ich habs

ich hatte probleme das prinzip zu verstehen, wie serialize die dateien ausliest, nach ein bisschen rumprobieren mit euren ansätzen hab ichs nun geschafft, vielen Dank
