callidus Geschrieben 6. März 2010 Geschrieben 6. März 2010 Hi, ich habe hier ein 2-dimensionales Array, dessen werte ich gerne in eine Datei speichern würde. das Array ist vom Typ Integer. wie stelle ich das an und vor allem, wie lese ich das ganze zum schluss wieder aus? und: wie würde das bei einem 3D-array aussehen? Zitieren
Klotzkopp Geschrieben 7. März 2010 Geschrieben 7. März 2010 wie stelle ich das an und vor allem, wie lese ich das ganze zum schluss wieder aus?Kommt drauf an. Wenn du weißt, dass Lesen und Schreiben immer auf Systemen erfolgt, auf denen int in Aufbau (Big/Little Endian) und Größe gleich ist, kannst du einfach das ganze Array mit fwrite bzw. ofstream::write speichern und mit fread bzw. ifstream::read einlesen. Wenn du das nicht sicher weißt, musst du die Daten so speichern, dass du daraus unabhängig von der Architektur des Rechners wieder so ein Array aufbauen kannst, z.B. als Text. wie würde das bei einem 3D-array aussehen?Genauso. Was soll es denn sein, C oder C++? Zitieren
callidus Geschrieben 7. März 2010 Autor Geschrieben 7. März 2010 Ãch lese immer aus der gleichen datei genau das gleiche array ein. dadrin befinden sich standartwerte, die sich quasi nie ändern. mfg Zitieren
callidus Geschrieben 10. März 2010 Autor Geschrieben 10. März 2010 achja, und es sollte in C++ sein. das array besteht nur aus integer-werten und hat eine fest definierte größe. mfg Zitieren
Klotzkopp Geschrieben 10. März 2010 Geschrieben 10. März 2010 // Schreiben std::ofstream outfile("dein_dateiname", std::ios_base::binary); outfile.write(reinterpret_cast<const char*>(&dein_array), sizeof(dein_array)); // Lesen std::ifstream infile("dein_dateiname", std::ios_base::binary); infile.read(reinterpret_cast<char*>(&dein_array, sizeof(dein_array)); [/code] Zitieren
callidus Geschrieben 11. März 2010 Autor Geschrieben 11. März 2010 Hi, habe das jetzt mal eingefügt und er zeigt mir nur fehler an: 1>------ Erstellen gestartet: Projekt: dateitest, Konfiguration: Debug Win32 ------ 1>Kompilieren... 1>main.cpp 1>c:\users\sebastian\documents\visual studio 2008\projects\myfreefarm_cmd\dateitest\main.cpp(14) : error C2143: Syntaxfehler: Es fehlt ')' vor ';' 1>c:\users\sebastian\documents\visual studio 2008\projects\myfreefarm_cmd\dateitest\main.cpp(14) : error C2660: 'std::basic_istream<_Elem,_Traits>::read': Funktion akzeptiert keine 1 Argumente 1> with 1> [ 1> _Elem=char, 1> _Traits=std::char_traits<char> 1> ] 1>Das Buildprotokoll wurde unter "file://c:\Users\Sebastian\Documents\Visual Studio 2008\Projects\myfreefarm_cmd\dateitest\Debug\BuildLog.htm" gespeichert. 1>dateitest - 2 Fehler, 0 Warnung(en) ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ========== hier der code: #include <fstream> #include <iostream> using namespace std; int main() { int f[12][10][2]; // Schreiben std::ofstream outfile("text.txt", std::ios_base::binary); outfile.write(reinterpret_cast<const char*>(&f), sizeof(f)); // Lesen std::ifstream infile("text.txt", std::ios_base::binary); infile.read(reinterpret_cast<char*>(&f, sizeof(f)); } Zitieren
Klotzkopp Geschrieben 11. März 2010 Geschrieben 11. März 2010 infile.read(reinterpret_cast<char*>(&f), sizeof(f)); Ja, da habe ich wohl eine Klammer vergessen Zitieren
callidus Geschrieben 11. März 2010 Autor Geschrieben 11. März 2010 vielen vielen dank. klappt absolut super. Zitieren
callidus Geschrieben 11. März 2010 Autor Geschrieben 11. März 2010 wie muss ich das ganze modifizieren, damit ich strings abspeichern/lesen kann (auch immer die gleiche festgelgte größe etc.). Zitieren
Klotzkopp Geschrieben 11. März 2010 Geschrieben 11. März 2010 Wenn es sich um char-Arrays handelt, musst du gar nichts modifizieren. Ansonsten musst du das Array von Hand serialisieren, weil durch char-Zeiger oder String-Klassen das Array nicht mehr als zusammenhängender Speicherbereich vorliegt. Zitieren
callidus Geschrieben 11. März 2010 Autor Geschrieben 11. März 2010 die strings sind jeweilks nur ein wort, alkso sowas wie "eier", "kartoffeln", oder sowas Zitieren
Klotzkopp Geschrieben 11. März 2010 Geschrieben 11. März 2010 die strings sind jeweilks nur ein wort, alkso sowas wie "eier", "kartoffeln", oder sowas Der Inhalt ist völlig unerheblich, auf den Datentyp kommt's an. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.