000
12.02.2003, 18:35 Uhr
~Micha
Gast
|
Hallo Forumsteilnehmer,
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. Wer weiß warum das so ist, habe ich zu gering Dimensioniert, Habe ich einen Variablentypen falsch ausgewählt ?? Danke im Voraus.
Es folgt der Quellcode:
void CPointsRDlg::OnBselectSdatei() { // TODO: Code für die Behandlungsroutine der Steuerelement-Benachrichtigung hier einfügen
// Dialog zum auswählen der Dateien starten. Dateien in der Listbox eintragen CFileDialog dlg(TRUE,".rhd","*.rhd;*.*",OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT | OFN_ALLOWMULTISELECT,NULL,NULL);
POSITION pos; CString pfad_dateiname; int stat_result; struct _stat buf; long Anzahl; if(dlg.DoModal()==IDOK) { pos = dlg.GetStartPosition(); while(pos !=NULL) { pfad_dateiname = dlg.GetNextPathName(pos); stat_result = _stat( pfad_dateiname, &buf ); if ( (buf.st_size % PIDSY_FORMAT_BYTES) == 0) { // Existiert der String in der Liste nicht nochmals einfügen. if ((m_cList1.FindString(-1,pfad_dateiname)) == LB_ERR) { m_cList1.AddString(pfad_dateiname); } Anzahl = buf.st_size / FORMAT_BYTES; ALL_Anzahl += Anzahl; sprintf(HilfString,"Total Points\n%d",ALL_Anzahl); SetDlgItemText(IDC_SUM_BN, HilfString); } else { sprintf(HilfString,"File \"%s\" is inconsistent and cannot added to the list",pfad_dateiname); MessageBox ( HilfString , MELDUNG004) ; } } } // Anzahl der Listbox Anzeigen char anzahl[10] = ""; sprintf(anzahl,"%d",m_cList1.GetCount() ); SetDlgItemText(IDC_ANZAHL_DATEIEN, anzahl); AnzahlDateien = atoi(anzahl); } |