Enregistrer une simulation sur deux fichiers CSV
Bonjour,
Je suis en train de simuler une topologie de réseau NDN. Je veux obtenir le plus grand nombre possible de valeurs de simulation pour construire mon data set . Par contre, lorsque je simule pendant longtemps , le CSV risque de perdre beaucoup de valeurs
Je veux donc diviser mes résultats sur plusieurs fichiers CSV . Comment le faire en C++
Merci
Windows / Edge 113.0.1774.35
- Enregistrer une simulation sur deux fichiers CSV
- Audacity enregistrer son pc - Guide
- Comment enregistrer une conversation entre deux personnes ? - Guide
- Comment faire deux colonnes sur word - Guide
- Comment enregistrer une musique sur youtube en mp3 - Guide
- Deux ecran pc - Guide
1 réponse
Bonjour,
Dit comme ça c'est un peu abstrait car tu n'expliques ni ce que tu veux faire, ni comment tu vas scinder ton fichier CSV. De plus, je ne pense pas que ça ait un réel intérêt. Il existe de nombreux moyen de saucissonner un gros fichier CSV a posteriori (par exemple sous Linux en combinant head et tail).
Mais bon si on tente de répondre malgré toutes ces incertitudes à ta question, tu pourrais dire que tous les N points, tu commences à logger tes résultats dans un nouveau fichier de log. Pour cela, il suffisait de compter combien de points ont été sauvé (disons n), et dès que n % N == 0, alors tu sais que tu dois fermer le fichier précédent et en ouvrir un nouveau.
Voici un exemple jouet (qui génère 10 fichiers nommés out0.csv ... out9.csv en découpant 10000 valeurs par batches de 1000) :
#include <fstream> #include <iostream> #include <sstream> int main() { std::ofstream ofs; for (unsigned i = 0; i < 10000; i++) { if (i % 1000 == 0) { if (ofs) { // Close the previous output file, if any ofs.close(); } // Open the new output file std::ostringstream oss; oss << "out" << int(i / 1000) << ".csv"; std::cout << oss.str() << std::endl; ofs = std::ofstream(oss.str()); } // Save some data in the file ofs << i << '\t' << i * 10 << std::endl; } if (ofs) { // Close the previous output file, if any ofs.close(); } }
Bonne chance