aus datei lesen und in listbox speichern
-
Hallo
Wie der titel schon sagt, versuche ich gerade eine Textdatei einzulesen, und die Inhalte, die durch ein \n getrennt sind in eine Listbox einzulesen.
Folgenden Code habe ich schon fertig, allerdings hat er noch ein paar bugs:FILE* datei; datei=fopen("D:\\Temp\\datei.txt","r+"); char* remind; while(!feof(datei)) { fgets(remind, '\n', datei); m_show.AddString(remind); } fclose(datei);Wenn die Datei, aus der ich Lese leer ist, wird mir eine 3stellige Zeichenkombination angezeigt. Falls etwas in der Datei steht, bekomm ich einen Fehler nachdem(!) die funktion schon abgearbeitet worden ist.
Ich bin mir aber relativ sicher dass der fehler in oben gepostetet code liegt, da ich ohne while-schleife mit addstring("Test") etwas in der Listbox darstellen kann.
Kann mir jemand einen tipp geben woran das liegt?
mfg
-
Hallo
Ich würde dir CFile oder CStioFile empfehlen. (und CString)
chrische
-
Aber ich versteh nicht wie mir das bei meinem Problem helfen soll.
Öffnen, schreiben und schließen der datei geht mit dem code den ich oben gepostet habe problemlos, allerdings nur wenn in der zu öffnenden Datei nichts steht...
Sobald ich etwas darin gespeichert habe entsteht ein fehler..mfg
-
poste halt mal den code den du zum speichern benutzt so kann jeder nur ins blaue raten.
-
UpdateData(TRUE); CString termin; termin = m_termin; SYSTEMTIME systime; int day = 0; int month = 0; int year = 0; m_cal.GetCurSel(&systime); systime.wHour = systime.wMinute = systime.wSecond = systime.wMilliseconds = 0; CTime l_time(systime); CString date; date.Format(_T("%02d-%02d-%04d"), systime.wDay, systime.wMonth, systime.wYear); /* systime.wYear, systime.wMonth, systime.wDay) */ FILE* datei; datei=fopen("D:\\Temp\\datei.txt","r+"); fseek(datei,0,SEEK_END); fprintf(datei, date); fprintf(datei, " "); fprintf(datei, termin); fprintf(datei, "\n"); fclose(datei); m_termin = ""; AfxMessageBox("Termin erfolgreich gespeichert", MB_OK); UpdateData(FALSE);kurze erklärung:
ich habe ein monthcontrol aus dem ich tag, monat und jahr auslese und mit einem termin in eine textdatei speichere...
diesen inhalt der textdatei möchte ich zeilenweise in der listbox auf knopfdruck wieder ausgeben...mfg
-
naja wenn du speichern willst aber beim speichern den parameter für read übergibst kann es blos crashen.
datei=fopen("D:\\Temp\\datei.txt","w+");
-
Erst mal danke dass du dir mühe gibst mir zu helfen.
Ehrlich gesagt hat mich das auch gewundert dass das funktioniert, aber ich kann ohne probleme sachen in die dateien schreiben. Die Einträge sind wirklich vorhanden.
Ich find den dummen Fehler einfach nichtmfg
-
Ich find den dummen Fehler einfach nicht
also jetzt verwirrst du mich was nu,
welchen fehler findest du nicht
-
ok... nochmal: ,-)
ich habe ein kleines progrämmchen geschrieben das verschiedene sachen in eine textdatei speichert. Das speichern in die Datei funktioniert problemlos.
Das problem dass ich jetzt habe ist, dass ich den inhalt dieser textdatei (der durch \n getrennt ist) zeilenweise in eine listbox schreiben will. Das komische daran ist, dass das programm nicht abstürzt wenn ich den text auslesen will wenn die datei leer ist. Sobald aber etwas drin steht stürzt das programm ab (aber erst nach der Abarbeitung der Funktion die ausliest).
Wie ich die zeilen in die listbox hole, steht in meinem ersten posting.
Vielleicht ist ja da etwas falsch...mfg