Array in Datei speichern
-
Hallo,
ich möchte gerne ein Array (test) in eine .txt File speichern. Leider klappt es nicht. Kann mir einer auf die Sprünge helfen?
Danke euch!Cstring speicherString[640]; long int dateilaenge [640]; // Dialog zum Speichern einer Datei CFileDialog fileDlg(FALSE, ".txt", NULL, 0, "Textfile (*.txt)|*.txt|All Files (*.*)|*.*||"); fileDlg.DoModal(); CString pfad = fileDlg.GetPathName (); CFile datei; // Dies ist der String der gepeichert wird for(i = 0; i < 640; i++) { speicherString[i] = test[i]; // Variable fuer die Dateilaenge erzeugen dateilaenge[i] = speicherString[i].GetLength (); } // Oeffnen der Datei zum Schreiben datei.Open (fileDlg.GetPathName(), CFile::modeCreate | CFile::modeWrite); // Inhalt des Strings in Datei schreiben for (i = 0; i < 640; i++) { datei.Write (speicherString[i], dateilaenge[i]); } // Schliessen der Datei datei.Close ();
-
sehr eigenartigen code hast du
- was ist wenn man beim oeffnen dialog auf cancel geht ? du fragst IDOK nicht ab
- warum speicherst du die string laengen separat ab wenn du sie direkt holen kannst { datei.Write (speicherString[i], speicherString[i].GetLength());
- warum speichertst du "test" in einen separaten array ?// pseudo, muss nicht funktionieren
#define len = 640 CFileDialog fileDlg(FALSE, ".txt", NULL, 0, "Textfile (*.txt)|*.txt|All Files (*.*)|*.*||"); if(fileDlg.DoModal() == IDOK) { CFile datei(fileDlg.GetPathName(), CFile::modeCreate|CFile::modeWrite); for(i = 0; i < len; i++) datei.Write(test[i] + _T("\n"), test[i].GetLength() + 1); // wegen \n weiss ich grad nicht ob das muss datei.Close() }am sonsten ist da noch das filestream, das duerfte einfacher sein, fuer ANSI strings gibts auch noch writeline, da brauchst du keine laenge angeben
-
So habe mal alle Einflüsse die ich von außen bekommen habe mit einfließen lasse und habe jetzt den Quellcode für das Speichern. in der Datei steht auch genau das drin was rein soll.
Danke schonmal für den Tipps.Die Abfrage der Buttons mache ich später wenn erstmal das Grundgerüst läuft. Ich programmiere gerade nen Oszilloskop. Ich möchte gerne damit Bildschirmfotos von den Verläufen realisieren. In dem Array Trigger_CH1 stehen die Y - Werte die ich in einer TXT speichern möchte. Wenn das halt grob läuft kommt die ganze Feinarbeit.
// Dialog zum Speichern einer Datei CFileDialog fileDlg(FALSE, ".txt", NULL, 0, "Textfile (*.txt)|*.txt|All Files (*.*)|*.*||"); fileDlg.DoModal(); CString pfad = fileDlg.GetPathName (); fstream datei; datei.open(pfad, ios::out); for(i = 0; i < 640; i++) { datei << trigger_CH1[i] << endl; } datei.close(); // TODO: Fügen Sie hier Ihren Kontrollbehandlungscode für die Benachrichtigung ein. }Das ganze will ich jetzt auch wieder einlesen über die Funktion. Ich kann im Debugger sehen, dass in Buffer immer die Richtigen Werte eingelesen werden. Ich schaffe es aber nicht diese Werte dann in ein neues Array reinzuschreiben. Kann mir da vllt. nocheinmal wer helfen?
Danke
Gruss// Dialog zum Speichern einer Datei CFileDialog fileDlg(TRUE, ".txt", NULL, 0, "Textfile (*.txt)|*.txt|All Files (*.*)|*.*||"); fileDlg.DoModal(); CString pfad = fileDlg.GetPathName (); ifstream datei(pfad); std::string buffer; for(i = 0; i < 640; i++) { getline(datei, buffer); } datei.close();
-
expect; http://naltrexoneinjection.com peter stuyvesant; http://nadita.net karelia cigarettes; http://niche-street.com karelia;