Speichern vom Daten und Text



  • Hallo!

    Also ich habe eine Datei erzeugt und speichere in ihr Daten und Text. Das mache ich so:

    File * pFile
    pFile = fopen("Messdaten.xls", a);
    fprintf(pFile, "Messdaten\r\n");
    fwrite(Data.c_str(), 1, Data.Length(), pFile);
    fprintf(pFile, "\r\n");
    fclose(pFile);
    

    So...ich finde das etwas umständlich! Kann ich nicht mit einem Befehl Text und Daten gleichzeitig speichern?

    Gerne in dieser Art:

    Memo->Text->(Messdata[7] + "\t" + Messdata[8] + "\t");
    

    Tausend Dank für eure Hilfe



  • Hallo,

    Verwende doch C++, also Streams. das könnte dann so aussehen.

    ofstream out("Messdaten.xls"); // xls?
    out << "Messdaten\n" << Messdata[7] << '\t' << Messdata[8] << '\t'; // etc.
    

    Mehr Infos dazu bekommst du in der FAQ des C++Forums.



  • Wenn Du es doch eh schon in einem Memo hast, kannst du es auch gleich mit Memo->SaveToFile("BlaBlubb.txt") speichern. Oder übersehe ich was?



  • Hallo,

    geht das nicht mit "fwrite" irgendwie?

    Also ich habe kein Memo, da ich tierisch viele Messwerte habe und das Memo dann irgendwann aussteigt...darum will ich direkt in eine Datei schreiben!

    Werde das mit dem "ofstream" mal probieren! Betsten Dank soweit!



  • Definiere tierisch viele Messwerte und wie äußert sich das Austeigen des Memos? Ich denke eher, dass das Memo, ab einer bestimmten Anzahl Zeilen, einfach sehr träge wird. Alternativ kannst Du eine TStringList verwenden, da diese keine GUI-Komponente ist, ist sie auch deutlich schneller, als zB ein TMemo. 10 Millionen Zeilen sind für eine TStringList auch kein Problem. Beispielsweise dauert das Einfügen von 1 Mill. Zeilen in eine TStringList 6 Sekunden, die gleichen Zeilen in ein TMemo einzufügen dauert schon 188 Sekunden.

    Allerdings stellt sich mir die Frage, was Du mit den Messwerten machen willst? Eventuell ist es sinnvoll, die Messwerte in eine Datenbank zu schreiben. Je nach Anforderung könnte dies die weitere Verarbeitung erleichtern.


Anmelden zum Antworten