Zum Inhalt springen

Don_Pazo

Mitglieder
  • Gesamte Inhalte

    164
  • Benutzer seit

  • Letzter Besuch

Beiträge von Don_Pazo

  1. 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);
    
    }

  2. Mit dieser Code habe ich geschaft von einer rohen HTML-Datei

    den Tags zu löschen und nach jeder Datensetz eine ";" zu schreiben.

    So wird die Datei beim speichern eine so genannte *.csv Datei.

    void CE_LearnView::StringAendern2()
    
    {
    
    	CString strHtmlKopi		=("");	// HTML-Code mit Tags
    
    	CString strHtmlDaten	=("");	// nur die Daten aus der HTML-Code
    
    	CString strZeichen		=("");	
    
    
    	int iLaenge;					// Lände der CString 
    
    	int iIndex;						// lauf wariable
    
    	int iKlamer_auf = 0;			// Position in dem CString von '<' Klammer
    
    	int	iKlamer_zu	= 0;			// Position in dem CString von '>' Klammer
    
    
    	strHtmlKopi		= m_strHtml;	
    
    
    	// Es wird die Position für neue Zeile markiert
    
    	strHtmlKopi.Replace("</TR>","###</TR>");	
    
    	// nicht ausgefühlete Kästchen in der Datenbank  werden mit leere Zeichen eingefühlt
    
    	strHtmlKopi.Replace("><","> <");
    
    	// Es werden Sonderzeichen bearbeitet
    
    	strHtmlKopi.Replace("&","&");
    
    	strHtmlKopi.Replace(".",",");
    
    
    	iLaenge = strHtmlKopi.GetLength();
    
    	iLaenge = iLaenge - 1;
    
    
    
    	for (iIndex = 0; iIndex <iLaenge; iIndex++)
    
    	{
    
    
    		if (strHtmlKopi[iIndex] == '>')
    
    		{	
    
    			iKlamer_zu = iIndex + 1 ;
    
    		}
    
    
    		if (strHtmlKopi[iIndex] == '<')
    
    		{
    
    			iKlamer_auf = iIndex;
    
    		}
    
    
    
    		if (iKlamer_zu !=0 && iKlamer_auf != 0  && strHtmlKopi[iKlamer_auf - 1] != '\n')
    
    		{
    
    			for (iKlamer_zu; iKlamer_zu < iKlamer_auf; iKlamer_zu++)
    
    			{	
    
    				// Zeichenweise kopieren den Text, 
    
    				// den zwischen Klammer stehet <TAGS> TEXT <TAGS> 
    
    				strZeichen = strHtmlKopi.GetAt(iKlamer_zu);
    
    				// die Zeichen in der strHtmlDaten speichern	
    
    				strHtmlDaten += strZeichen;
    
    			}	
    
    			// gespeicherte Datensätze werden mit Koma getrent
    
    			strHtmlDaten += ";";
    
    
    			iKlamer_zu  =0;
    
    			iKlamer_auf =0;
    
    		}
    
    	}
    
    	// die erste 5 Zeichen in der fertigen CString werden gelöscht
    
    	// die sollen ' ; ;' sein, so kann die Tabele leichter angepast werden !!!!!
    
    	strHtmlDaten.Delete(0,5);
    
    	// neue Zeilen werden ermittelt
    
    	strHtmlDaten.Replace("###","\n");
    
    
    	// KONTROLLE  MessageBox(strHtmlDaten);
    
    	m_strHtmlDaten = strHtmlDaten;
    
    }
    
    

  3. Die Zeile meinst du vielleicht:

    strTextKopi.Delete(index, (endIndex - index + 1));

    Nach alle bemühungen kann ich nur sagen, dass das Problem irgendwo anders liegt.

    Jetzt ist die Code felerfrei, aber das Ergebnis immer noch wie früher

    sisi

    mimi

    katja

    90

    60

    90

    usw...

    Vieleicht liegt daran, dass ich eine HTML umwandle .............

  4. Die Code funktioniert bei mir leider nicht nicht:

    CString strTextKopi;
    
    	strTextKopi = m_strText;
    
    	int index = 0;
    
    	int endIndex = 0;
    
    	int laenge ;
    
    	laenge = strTextKopi.GetLength();
    
    
    
    	while (index <= laenge && index != -1 && endIndex != -1)
    
    	{
    
    		index = strTextKopi.Find('<');
    
    		if (-1 == index)
    
    			break;
    
    		endIndex = strTextKopi.Find('>');
    
    		if (-1 == endIndex)
    
    			break;
    
    		strTextKopi.Delete(index, endIndex - index);
    
                     laenge = strTextKopi.GetLength();
    
    	}
    
    
    	// Nun sollte das Ergebnis ordentlich in strTextKopi stehen...
    
    	m_strText = strTextKopi; 
    
    	MessageBox(strTextKopi); 

  5. void CE_LearnView::StringAendern()

    {

    CString strTextKopi;

    CString strVertig;

    int index = 0; // laufvariable

    int laenge = 0; // gesammt Länge von CString

    int auf_index = 0; // index für "<" (Klameer auf)

    int zu_index = 0; // index für ">" (Klameer zu)

    strTextKopi = m_strText; // initialisiren

    //strVertig = "";

    laenge = strTextKopi.GetLength(); // Länge ermitteln

    laenge = laenge - 1;

    for(laenge; laenge >= 0; laenge--)

    {

    if (strTextKopi[laenge] == '>')

    {

    zu_index = laenge + 1;

    }

    if (strTextKopi[laenge] == '<')

    {

    auf_index = laenge;

    index = 1;

    }

    if (index == 1)

    {

    zu_index = zu_index - auf_index;

    strTextKopi.Delete(auf_index, zu_index);

    index = 0;

    zu_index = 0;

    auf_index = 0;

    }

    }

    strTextKopi.Replace("\n", ""); // ES FUNKTIONIERT LEIDER NICHT

    m_strText = strTextKopi;

    MessageBox(strTextKopi);

    }

  6. Danke guter Rat.

    Es gibt aber jetzt etwes was stört.

    Wenn man mit CString :: Delete arbeitet wird das CString mit neuen Zeilen nach jedem Delete operation versetzt.

    Beispiel:

    ... <class 'ress'>Sisi</td><class 'ress'>Mimi</td><class 'ress'>Nina</td><class 'ress'>

    <class 'ress'>90</td><class 'ress'>60</td><class 'ress'>90</td><class 'ress'>

    <class 'ress'>017399</td><class 'ress'>016055</td><class 'ress'>017022</td><class 'ress'>

    ......

    nach dem Delete Operazion siet so aus:

    Sisi

    Mimi

    Nina

    90

    60

    90

    017399

    016055

    017022

    was ich will ist aber das die Datensätze so sind:

    SisiMimiNina

    906090

    017399016055017022

    was ich brauche.

    Ich habe es wersucht bei Delete einen zeichen weniger zu löschen und statt ">" einen Backspace zu machen. Das solte das negatiwe Efekt von der Neuezeile kompensieren. Es klapt aber nicht:

    strTextKopi.Replace(">", "\b"); // '\b' Backspace

    Konnt ihr mir noch bischen helfen?

  7. Hallo,

    ich habe in einen CString Datensätze gespeichert. Meinen CString enthällt sehr viele unnütige Daten die zwischen "< >" Klamer stehen.

    Dazu will ich meinen CString bereinigen.

    Ich habe versucht mit der Funktion CString :: Delete () leider mache ich irgendwas fallsch, kann mir jemand bitte helfen?

    Was habe ich falsch bei der Funktion gemacht, und wie kann ich es gut machen ?

    CString strTextKopi;

    strTextKopi = m_strText; // initialisiren (public: m_strText)

    laenge = strTextKopi.GetLength(); // Länge ermitteln

    laenge = laenge -1;

    for(laenge; laenge > 0; laenge--)

    {

    if (strTextKopi[laenge] == '>')

    {

    zu_index = laenge;

    }

    if (strTextKopi[laenge] == '<')

    {

    auf_index = laenge;

    index = 1;

    }

    if (index == 1)

    {

    strTextKopi.Delete(auf_index, zu_index);

    index = 0;

    }

    }

  8. Hallo,

    ich habe mich bis jetzt mit C, C++, Visual C++ bescheftigt.

    Ich muss, soll ... aber ,wei auch immer, mit Java anfangen.

    1. Könntet ihr mir bitte Rat geben, welche Programm ich herunterladen soll, damit ich unter Java programmiren kann?

    2. Gibt es bei Java was vergleichbares wie Visual C++?

    3. ist es möglich das ich C++ Headers in Java-Code einbinde?

    Danke.

  9. Ich habe gute Rat bekommen, und es hat geklapt:

    void CE_LearnView::OnFileOpen()

    {

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

    CFileDialog m_ldFile(TRUE, NULL, NULL, OFN_HIDEREADONLY, "HTML |*.htm; *.html| Alle Dateien|*.*||");

    if(m_ldFile.DoModal() == IDOK)

    {

    Navigate2(m_ldFile.GetPathName(), 0, NULL);

    }

    }

  10. Hallo,

    ich habe eine Programm mit MFC erstelt. Es ist SDI Anwendung. Das Programm funktioniert enlich wie Internet Explorer.

    Wie kann ich auf meine Felstplate gespeicherte *.html in dem Program öfnen.

    Ich will nicht das sich der *.html in andere Program (Internet Explorer)öfnet wie bei:

    ShellExecute(NULL, "open", m_strDateiname, NULL, NULL, SW_SHOW);

  11. Das Programm, das ich habe, fuktioniert voldendermassen:

    1. Das Programm ist mit Visual C++ (MFC) erstelt worden.

    2. Es ist SDI Anwendung, und es ist keinen TextEditor (CTextView) sondern

    HTML (CHatmlView)

    3. Wenn man auf "verbindung..." klickt, zeigt sich einen Dialogfenster in dem

    man:

    |Server| |................|

    |Benutzername| |................|

    |Passwort| |................|

    Statistik| |................|

    eingeben kann.

    4. Beim OK klicken, bildet die Wariable LINK ungefähr so was:

    LINK = "http://" + m_strServer +"//FCB.HaHa//" + ........;

    5. Dann wirt die vorhandene Information als Html-Seite auf meinen Programm

    gezeigt.

    Problemmen:

    1: Ich möchte das die Information nach dem in dem Programm als HTML

    gezeigt wurde, als *.csv Datei speichern.

    Bitte, kann mir jemand Rat geben wie ich das lösen kann ?

  12. Hallo,

    ich habe eine Programm mit MFC (Visual C++ 6) erstellt. Es ist SDI, und es ist auf die Klasse (class CE_LearnView : public CHtmlView) basiert. Das Programm ist etwas enliches wie Internet Explorer nur das man in einene bestimten Link ferschiedene Optionen wählen kann, z.B. http://www.server/bla/ble/OPTIONEN

    Mann wählt die gewühnschte Option und drückt OK. Es wird das Ergebnis gezeigt wie HTML, (weil die class CE_LearnView : public CHtmlView ).

    Ich brauche es, weil auf dem Server sind mehrere Tabelen. Die ich mit dem Programmchen, mit Hilfe verschiedene ComboBox Optionen , anzeige.

    Die Tabelen kann ich aber nur als HTTP zeigen.

    Daraus volgt das ich die in *.csv oder Exel umwandeln soll damit man arbeiten kann.

    Ich hoffe das jeimand einen Rat hat, ich bin nemmlich schon hilfslos !!!

    Ich wersuche es seit lange aber leder gelingt es mir nicht die HTML Ergebniss als *.csv Datei zu speichern.

    Bitte, weist jemend wie ich HTML seite von class CE_LearnView : public CHtmlView als *.csv speichern kann?

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...