<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Problem mit ReadString in einem neuen Dialog]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe mir ein Dialog basiertes Programm geschrieben, in dem ich mir in einen RichEditor eine Datei lade. Die Dateiauswahl realisiere ich über den Datei Dialog.<br />
Nun wird bei betätigen eines anderen Buttons wiederum ein Dialog aufgerufen, in dem ich eine andere Datei auslesen will.<br />
Unabhängig funktionieren dies beiden Sachen auch. Nur wenn ich dann in meinen RichEditor die Datei geladen hab und dann denn zweiten Dialog aufrufe und dort eine Datei auslesen will, bekomm ich eine &quot;Assertion faild&quot; Meldung und zwar:<br />
File: fgets.C<br />
Expression str!=NULL<br />
Über den Debugger bin ich dann zu:<br />
BOOL CStdioFile:ReadString gelangt in der die fgetts-Funktion NULL zurückliefert, nur weiß ich nicht warum und was mir das sagen soll?<br />
Kann mir da jemand weiterhelfen oder einen Tipp geben, was ich besser machen kann?<br />
Der Code sieht wie folgt aus:</p>
<pre><code class="language-cpp">void CBiDlg::OnButton1(){

CString strDateiInhalt, strDateipfad;
DateiFunktionen datei;  //ist abgeleitete Klasse von CStdioFile
DateiDialog dlg(TRUE);  //DateiDialog ist abgeleitet von CFileDialog
dlg.Modal();
strDateipfad=dlg.m_ofn.lpstrFile;
if(datei.Open(strDateipfad,CFile::modeRead)){
int iLaen=datei.GetLength();
strDateiInhalt.ReleaseBuffer(Read(strDateiInhalt.GetBuffer(iLaen),iLaen));
datei.Close();
}
else
strDateiInhalt=&quot;Nix passiert&quot;;
SetDlgItemText(IDC_RichEdit_Datei, strDateiInhalt);
}

void CBiDlg::OnButton2(){

ArchivlistenDialog archDlg; //ist abgeleitet von CDialog
archDlg.DoModal();
}

void ArchivlistenDialog::OnButtonOK(){

CString strDateiEintrag;
CString strDateipfad=&quot;Test.txt&quot;;
CStdioFile datei;
if(datei.Open(strDateipfad,CFile::modeRead){
while(datei.ReadString(strDateiEintrag)||(!strDateiEintrag.IsEmpty())){ //diese Zeile führt zum Assertion failed

MessageBox(strDateiEintrag);
}
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/173520/problem-mit-readstring-in-einem-neuen-dialog</link><generator>RSS for Node</generator><lastBuildDate>Sun, 26 Apr 2026 01:02:12 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/173520.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 16 Feb 2007 18:27:21 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit ReadString in einem neuen Dialog on Fri, 16 Feb 2007 18:27:21 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe mir ein Dialog basiertes Programm geschrieben, in dem ich mir in einen RichEditor eine Datei lade. Die Dateiauswahl realisiere ich über den Datei Dialog.<br />
Nun wird bei betätigen eines anderen Buttons wiederum ein Dialog aufgerufen, in dem ich eine andere Datei auslesen will.<br />
Unabhängig funktionieren dies beiden Sachen auch. Nur wenn ich dann in meinen RichEditor die Datei geladen hab und dann denn zweiten Dialog aufrufe und dort eine Datei auslesen will, bekomm ich eine &quot;Assertion faild&quot; Meldung und zwar:<br />
File: fgets.C<br />
Expression str!=NULL<br />
Über den Debugger bin ich dann zu:<br />
BOOL CStdioFile:ReadString gelangt in der die fgetts-Funktion NULL zurückliefert, nur weiß ich nicht warum und was mir das sagen soll?<br />
Kann mir da jemand weiterhelfen oder einen Tipp geben, was ich besser machen kann?<br />
Der Code sieht wie folgt aus:</p>
<pre><code class="language-cpp">void CBiDlg::OnButton1(){

CString strDateiInhalt, strDateipfad;
DateiFunktionen datei;  //ist abgeleitete Klasse von CStdioFile
DateiDialog dlg(TRUE);  //DateiDialog ist abgeleitet von CFileDialog
dlg.Modal();
strDateipfad=dlg.m_ofn.lpstrFile;
if(datei.Open(strDateipfad,CFile::modeRead)){
int iLaen=datei.GetLength();
strDateiInhalt.ReleaseBuffer(Read(strDateiInhalt.GetBuffer(iLaen),iLaen));
datei.Close();
}
else
strDateiInhalt=&quot;Nix passiert&quot;;
SetDlgItemText(IDC_RichEdit_Datei, strDateiInhalt);
}

void CBiDlg::OnButton2(){

ArchivlistenDialog archDlg; //ist abgeleitet von CDialog
archDlg.DoModal();
}

void ArchivlistenDialog::OnButtonOK(){

CString strDateiEintrag;
CString strDateipfad=&quot;Test.txt&quot;;
CStdioFile datei;
if(datei.Open(strDateipfad,CFile::modeRead){
while(datei.ReadString(strDateiEintrag)||(!strDateiEintrag.IsEmpty())){ //diese Zeile führt zum Assertion failed

MessageBox(strDateiEintrag);
}
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1229724</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1229724</guid><dc:creator><![CDATA[eisherz]]></dc:creator><pubDate>Fri, 16 Feb 2007 18:27:21 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit ReadString in einem neuen Dialog on Fri, 16 Feb 2007 18:29:18 GMT]]></title><description><![CDATA[<p>Sorry, der Beitrag ist schon da, hab ihn nur über sehen, mein Rechner spinnt gerade etwas.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1229728</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1229728</guid><dc:creator><![CDATA[eisherz]]></dc:creator><pubDate>Fri, 16 Feb 2007 18:29:18 GMT</pubDate></item></channel></rss>