<?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[CFileDialog: Kann nicht mehr als 40 Dateien auswählen ??]]></title><description><![CDATA[<p>Hallo Forumsteilnehmer,</p>
<p>beim Auswählen der Dateien kann ich max. in einem Zug 20-25 Dateien Auswählen. Wenn ich aber mehrere Dateien ca. 40-50 Auswählen möchte dann funktioniert es nicht die Funktion (if(dlg.DoModal()==IDOK)) liefert nicht IDOK und so wird nichts eingetragen. Laß ich die if- Abfrage weg wird wieder nichts in der Liste eingetragen.<br />
Wer weiß warum das so ist, habe ich zu gering Dimensioniert, Habe ich einen Variablentypen falsch ausgewählt ??<br />
Danke im Voraus.</p>
<p>Es folgt der Quellcode:</p>
<p>void CPointsRDlg::OnBselectSdatei()<br />
{<br />
// TODO: Code für die Behandlungsroutine der Steuerelement-Benachrichtigung hier einfügen</p>
<p>// Dialog zum auswählen der Dateien starten. Dateien in der Listbox eintragen<br />
CFileDialog dlg(TRUE,&quot;.rhd&quot;,&quot;<em>.rhd;</em>.*&quot;,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT | OFN_ALLOWMULTISELECT,NULL,NULL);</p>
<p>POSITION pos;<br />
CString pfad_dateiname;<br />
int stat_result;<br />
struct _stat buf;<br />
long Anzahl;</p>
<p>if(dlg.DoModal()==IDOK)<br />
{<br />
pos = dlg.GetStartPosition();<br />
while(pos !=NULL)<br />
{<br />
pfad_dateiname = dlg.GetNextPathName(pos);</p>
<p>stat_result = _stat( pfad_dateiname, &amp;buf );</p>
<p>if ( (buf.st_size % PIDSY_FORMAT_BYTES) == 0)<br />
{<br />
// Existiert der String in der Liste nicht nochmals einfügen.<br />
if ((m_cList1.FindString(-1,pfad_dateiname)) == LB_ERR)<br />
{ m_cList1.AddString(pfad_dateiname); }<br />
Anzahl = buf.st_size / FORMAT_BYTES;<br />
ALL_Anzahl += Anzahl;<br />
sprintf(HilfString,&quot;Total Points\n%d&quot;,ALL_Anzahl);<br />
SetDlgItemText(IDC_SUM_BN, HilfString);<br />
}<br />
else<br />
{ sprintf(HilfString,&quot;File \&quot;%s\&quot; is inconsistent and cannot added to the list&quot;,pfad_dateiname);<br />
MessageBox ( HilfString , MELDUNG004) ;<br />
}<br />
}<br />
}<br />
// Anzahl der Listbox Anzeigen<br />
char anzahl[10] = &quot;&quot;;<br />
sprintf(anzahl,&quot;%d&quot;,m_cList1.GetCount() );<br />
SetDlgItemText(IDC_ANZAHL_DATEIEN, anzahl);<br />
AnzahlDateien = atoi(anzahl);<br />
}</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/4598/cfiledialog-kann-nicht-mehr-als-40-dateien-auswählen</link><generator>RSS for Node</generator><lastBuildDate>Sat, 04 Apr 2026 21:08:35 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/4598.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 13 Feb 2003 08:20:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to CFileDialog: Kann nicht mehr als 40 Dateien auswählen ?? on Thu, 13 Feb 2003 08:20:00 GMT]]></title><description><![CDATA[<p>Hallo Forumsteilnehmer,</p>
<p>beim Auswählen der Dateien kann ich max. in einem Zug 20-25 Dateien Auswählen. Wenn ich aber mehrere Dateien ca. 40-50 Auswählen möchte dann funktioniert es nicht die Funktion (if(dlg.DoModal()==IDOK)) liefert nicht IDOK und so wird nichts eingetragen. Laß ich die if- Abfrage weg wird wieder nichts in der Liste eingetragen.<br />
Wer weiß warum das so ist, habe ich zu gering Dimensioniert, Habe ich einen Variablentypen falsch ausgewählt ??<br />
Danke im Voraus.</p>
<p>Es folgt der Quellcode:</p>
<p>void CPointsRDlg::OnBselectSdatei()<br />
{<br />
// TODO: Code für die Behandlungsroutine der Steuerelement-Benachrichtigung hier einfügen</p>
<p>// Dialog zum auswählen der Dateien starten. Dateien in der Listbox eintragen<br />
CFileDialog dlg(TRUE,&quot;.rhd&quot;,&quot;<em>.rhd;</em>.*&quot;,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT | OFN_ALLOWMULTISELECT,NULL,NULL);</p>
<p>POSITION pos;<br />
CString pfad_dateiname;<br />
int stat_result;<br />
struct _stat buf;<br />
long Anzahl;</p>
<p>if(dlg.DoModal()==IDOK)<br />
{<br />
pos = dlg.GetStartPosition();<br />
while(pos !=NULL)<br />
{<br />
pfad_dateiname = dlg.GetNextPathName(pos);</p>
<p>stat_result = _stat( pfad_dateiname, &amp;buf );</p>
<p>if ( (buf.st_size % PIDSY_FORMAT_BYTES) == 0)<br />
{<br />
// Existiert der String in der Liste nicht nochmals einfügen.<br />
if ((m_cList1.FindString(-1,pfad_dateiname)) == LB_ERR)<br />
{ m_cList1.AddString(pfad_dateiname); }<br />
Anzahl = buf.st_size / FORMAT_BYTES;<br />
ALL_Anzahl += Anzahl;<br />
sprintf(HilfString,&quot;Total Points\n%d&quot;,ALL_Anzahl);<br />
SetDlgItemText(IDC_SUM_BN, HilfString);<br />
}<br />
else<br />
{ sprintf(HilfString,&quot;File \&quot;%s\&quot; is inconsistent and cannot added to the list&quot;,pfad_dateiname);<br />
MessageBox ( HilfString , MELDUNG004) ;<br />
}<br />
}<br />
}<br />
// Anzahl der Listbox Anzeigen<br />
char anzahl[10] = &quot;&quot;;<br />
sprintf(anzahl,&quot;%d&quot;,m_cList1.GetCount() );<br />
SetDlgItemText(IDC_ANZAHL_DATEIEN, anzahl);<br />
AnzahlDateien = atoi(anzahl);<br />
}</p>
]]></description><link>https://www.c-plusplus.net/forum/post/22171</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/22171</guid><dc:creator><![CDATA[Micha]]></dc:creator><pubDate>Thu, 13 Feb 2003 08:20:00 GMT</pubDate></item><item><title><![CDATA[Reply to CFileDialog: Kann nicht mehr als 40 Dateien auswählen ?? on Thu, 13 Feb 2003 15:11:00 GMT]]></title><description><![CDATA[<p>Für diejenigen die es noch interessiert hier die Lösung die ich gefunden habe:</p>
<p>Mann muss mehr Speicher bereitstellen und die Struktur m_ofn mit dem nötigsten zu versorgen,<br />
wichtig hierbei m_ofn.lpstrFile für den Buffer, in dem die Dateien abgelegt werden sollen,<br />
damit sie später von GetStartPosition, GetNextPathName abgeholt werden können,<br />
außerdem ist das Setzen von m_ofn.nMaxFile nötig.</p>
<p>Hier folgt der Code:</p>
<p>CFileDialog dlg;<br />
TCHAR buf[16000] = _T(&quot;&quot;);<br />
dlg.m_ofn.lpstrFile = buf;<br />
dlg.m_ofn.nMaxFile = 16000;<br />
if(dlg.DoModal()....<br />
...<br />
...<br />
...<br />
...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/22172</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/22172</guid><dc:creator><![CDATA[Micha]]></dc:creator><pubDate>Thu, 13 Feb 2003 15:11:00 GMT</pubDate></item></channel></rss>