Datei einlesen und in EditControls anzeigen

Luja

Grünschnabel
Hallo,

ich weiß, es hat diese Frage so ähnlich schon oft gegeben, aber ich hab bei keinem der Beiträge eine Lösung für mein Problem gefunden. Deshalb ist das jetzt auch so ziemlich meine letzte Hoffnung...
Also. Ich habe eine SDI-Anwendung, die erstmal so aufgebaut war, daß man in verschiedenen EditControl-Feldern etwas eintragen konnte, dann mit einem Button ein nächstes Feld im Array öffnen konnte, so daß man schließlich zwischen den Einzelnen Datensätzen navigieren konnte und die Änderungen oder Einträge auch immer gespeichert wurden. Das funktionierte alles ganz wunderbar.
Jetzt wollte ich das Ganze aber erweitern. Und zwar so, daß man eine Textdatei öffnen kann und die dann in die EditControls eingelesen wird. Also, es wird zeilenweise eingelesen, dann gehts durch einen switch und je nach dem wird es halt im entsprechenden Feld angezeigt. In der Textdatei sind die einzelnen Datensätze durch Leerzeilen getrennt. Im switch steht eine Funktion, die dann ein neues Element im Array aufmacht (genau wie oben mit dem button). Was jetzt passiert, ist, daß man sieht, daß er die Daten einliest, auch brav in die Variablen schreibt, in die das soll, dann aber nur die letzten Daten anzeigt. Wenn man dann nach vorne oder hinten navigiert, sind alle Zeilen leer. ich hätte aber natürlich gerne, daß die Daten da drin gespeichert werden, so wie sie das bei manuellem Eintippen ja auch werden!
Hier mal der Code, mit dem ich einlese:

Code:
void CtestView::OnBnClickedButton1()
{
	// TODO: Fügen Sie hier Ihren Kontrollbehandlungscode für die Benachrichtigung ein.

	CFileDialog dateiLaden(true);
	if (dateiLaden.DoModal() == IDOK)
	   {
	   m_strDateiname = dateiLaden.GetFileName(); 
	   }
	   else return;
	datei.open(m_strDateiname);

while(!datei.eof()) 

{
	datei.getline(inhalt, 1500, '\n');
switch (inhalt[0])
{
case 'N':
	m_strNummer =inhalt;                              
	m_strNummer = m_strNummer.Mid(15, m_strNummer.GetLength()); 
	break;
case 'V':
	m_strDate = inhalt;
	m_strVerfasser = m_strVerfasser.Mid(15, m_strVerfasser.GetLength());
	break;
default:
	if (inhalt[0]='\n')
	{
	CtestDoc * pDoc = GetDocument();
 if (pDoc)
 {
 // Letzten Datensatz vom Dokument holen
 m_pCurTitel = pDoc->GetNextRecord();
 if (m_pCurTitel)
 {
 // Aktuellen Datensatz anzeigen
 PopulateView();
 }}
 break;
}
}
  datei.close();
UpdateData(false);
}

Ist es vielleicht nicht richtig, daß die Daten direkt in die Variablen geschrieben werden? Müssen sie direkt ins Array geschrieben werden?

ich wäre echt für jede Hilfe dankbar, hab nämlich gar keine Idee mehr, woran es liegen könnte und bin auch nicht so der MFC-Profi...

Luja
 
Oh, kommt schon. Ich weiß, die Frage ist doof. Aber hat denn wirklich keiner ne Idee?
Bin langsam echt verzweifelt...
 
Zurück