Enregistrer une simulation sur deux fichiers CSV
Fermémamiemando Messages postés 33468 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 janvier 2025 - 16 mai 2023 à 04:55
- Enregistrer une simulation sur deux fichiers CSV
- Audacity enregistrer son pc - Guide
- Comment enregistrer une musique sur youtube en mp3 - Guide
- Comment enregistrer une video youtube - Guide
- Comment enregistrer une conversation entre deux personnes ? - Guide
- Enregistrer en pdf - Guide
1 réponse
16 mai 2023 à 04:55
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