Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Ich habe eine MCF Programm (SDI) mit Visual C++. Das ist eine HTML-Anwendeng. Zusetzlich kann man eine Dialogfenster öffnen mit verschiedenene Drop-Down Felder.

Und genau hier kommt das Problemm. Beim erstes mal als man diese zusetzliche Optionfenster öffnet ist alles in Ordnung. Die Drop-Down laden sich von der *.ini Datei. Man wählt seine Optionen klickt OK, so weit so gut.

Abchengig von der gewählte Optionen in dieser Dialogfenster wird man mit einer Webseite verbunden und es zeigt sich eine Tabele. Wenn ich aber die Tabele speichere und dann das Dialogfenster noch mal öffne, wird er mit keinen Datensetze von der *.ini Datei geladen.

Das ist meine Code in *.cpp Datei von der Dialogfenster,ich weiss es nicht was da falsch ist, dass sich die Datensetze nicht beim zweiten abruf laden.

Woran kann es liegen ??

BOOL CVerbindung::OnInitDialog() 

{

	CDialog::OnInitDialog();


	// TODO: Zusätzliche Initialisierung hier einfügen

	CString strServer;

	CString strOption;

	CString strVerschl;	// Verbindung Verschlüsselung

	// gelesene Zeile  (laufwariable in CString)

	CString strServerZeile;						

	CString strOptionZeile;

	CString strVerschlZeile;

	// gelesene Zeile  (laufwariable)

	int iServerZeile = 1;					

	int iOptionZeile = 1;

	int iVerschlZeile = 1;

	// "pPfad" wird dinamisch erzeugt

	char *pPfad = new char[1024];	


	// casteing (laufwariable in CString)

	strServerZeile.Format(_T("%d"),iServerZeile);		

	strOptionZeile.Format(_T("%d"),iOptionZeile);

	strVerschlZeile.Format(_T("%d"),iVerschlZeile);


	// **** Pfad bis zum Datei zusammensetzen **** //

	GetCurrentDirectory(1024,pPfad);

	strcat(pPfad,"\\Settings.ini");		


	/**** Kontrollkästchen ausschalten ****/

	m_bServer = FALSE;

	m_bHttps = FALSE;

	// Eingabefeld 'Server eingeben' nur zum lesen 

	GetDlgItem(IDC_SERVER_COMBO)->EnableWindow(FALSE);

	// Eingabefeld 'Verbindung verschlüsseln' nur zum lesen 

	GetDlgItem(IDC_HTTPS_COMBO)->EnableWindow(FALSE);


	/***** VERBINDUNG VERSCHLÜSSELN ComboBox von INI-Datei einlesen ****/	

	while(strVerschl !="ENDE")			// lauf bis "ENDE"

	{	

		// INI-Datei wird eingelesen

		GetPrivateProfileString("VERBINDUNG",strVerschlZeile,"ENDE",strVerschl.GetBuffer(1001),1000,pPfad); 


		// FELER-MELDUNG !!!

		if (!GetPrivateProfileString("VERBINDUNG",strVerschlZeile,"ENDE",strVerschl.GetBuffer(1001),1000,pPfad) )

		{

			MessageBox("Das INI-Datei kann nicht gelesen werden","Hinweis");

		} 

		// das Rückgabewert wird  strServer übergeben

		strVerschl.ReleaseBuffer(); 

		// falls das ENDE noch nicht ereicht wird das Ergebnis ComboBox übergeben

		if(strVerschl != "ENDE")

		{

			m_cHttpsCombo.AddString(strVerschl);

			if(strVerschlZeile == "1")

			{

				// Das erste Wert in der INI-Datei wird vorgemerkt 

				int index = 0;

				m_cHttpsCombo.SelectString(index, strVerschl);   					

			}

		}

		iVerschlZeile++;

		strVerschlZeile.Format(_T("%d"),iVerschlZeile);

	}



	// dinamisch erzeugte "pPfad" wird freigegeben

	delete [] pPfad;						

	// Dialogfeld mit den Werten aktualisieren

	UpdateData(FALSE);

	return TRUE;  // return TRUE unless you set the focus to a control

	              // EXCEPTION: OCX-Eigenschaftenseiten sollten FALSE zurückgeben

}
Oder vieleicht liegt es am Speichern, aber mit scheint da alles in Ordnung. Ich poste auf jeden Fall auch diese Funktion
void CE_LearnView::OnFileSaveAs() 

{

	// TODO: Code für Befehlsbehandlungsroutine hier einfügen

	CString m_strDateiname;


    // Objekt der Klasse CFileDialog erstellen

    CFileDialog m_File(FALSE, "", NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, "Textdateien  (*.csv, *.prn*, .txt)|*.csv;*.prn;*.txt| Alle Dateien|*.*||");


    // Dialogfeld öffnen und Ergebnis auffangen

    if(m_File.DoModal()==IDOK)

    {

      // Gewählten Dateinamen ermitteln

      m_strDateiname = m_File.GetFileName();


      // Datei speichern

	  CStdioFile file;

      file.Open(m_strDateiname, CFile::modeCreate | CFile::modeWrite);

      file.WriteString(m_strHtmlDaten);

      file.Close();

    }

	UpdateData(FALSE);

}

Geschrieben

Geh doch mal mit dem Debugger schrittweise durch die Funktion, damit du siehst, was beim zweiten Mal passiert.

Nachtrag: Das Problem könnte sein, dass der Speichern-Dialog dein Current Directory ändert. Um das zu verhindern, gib das Flag OFN_NOCHANGEDIR an.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...