Hallo Zusammen
Ich habe folgendes vor:
Ich habe zwei Text, respektive Editfelder in einem Dialog. jeweils mit einer Member-Variable zugewiesen.
Ich möchte, wenn das Programm läuft, automatisch (alle Minuten, oder sekunden) aus dem Internet die Warnungen auslesen und im Editfeld anzeigen lassen.
Ich hab mir dazu einen Thread (oder zwei, einer für EditfeldSMS und einer für EditfeldWarnText) gebastelt, der mir das machen soll. Eigentlich klappt alles ganz gut, nur das Problem: die IF und ELSE ANweisung werden ignoiert! Anstatt das Feld zu leeren und neu zu aktualisieren, hängt der immer wieder das Alte daran, sodass es einen Endlosschwanz gibt! Fragt mich nicht wieso... ich kanns nicht ändern... hier starte ich den Thread (in OnIniitDialog, er sollte ja automatisch starten):
Hier die beiden Threads:
Das Projekt/EXE-Datei gibts hier zum Download (um zu testen, das Problem anzusehen welches ich meine): http://www.nfws.ch/SCMT.zip
Vielen Dank für Eure Tips/Hilfe
Grüsse aus der Schweiz
Dominic / Wolf85
Ich habe folgendes vor:
Ich habe zwei Text, respektive Editfelder in einem Dialog. jeweils mit einer Member-Variable zugewiesen.
Ich möchte, wenn das Programm läuft, automatisch (alle Minuten, oder sekunden) aus dem Internet die Warnungen auslesen und im Editfeld anzeigen lassen.
Ich hab mir dazu einen Thread (oder zwei, einer für EditfeldSMS und einer für EditfeldWarnText) gebastelt, der mir das machen soll. Eigentlich klappt alles ganz gut, nur das Problem: die IF und ELSE ANweisung werden ignoiert! Anstatt das Feld zu leeren und neu zu aktualisieren, hängt der immer wieder das Alte daran, sodass es einen Endlosschwanz gibt! Fragt mich nicht wieso... ich kanns nicht ändern... hier starte ich den Thread (in OnIniitDialog, er sollte ja automatisch starten):
Code:
//Timer / Thread starten LPVOID pParam = &m_ctlEditSCMT; LPVOID pParam2 = &m_ctlEditSMS; ::AfxBeginThread(WarnList,pParam); ::AfxBeginThread(WarnSMSList,pParam2);
Code:
UINT CHauptDlg::WarnList(LPVOID pParam) { //Aktuelle Warnungen laden und im Editfeld anzeigen CString somecode, s; CInternetSession session("Verbindungstest",1,INTERNET_OPEN_TYPE_PRECONFIG); CStdioFile* pFile = NULL; CString strUrl("http://www.nfws.ch/inc/warnlist_scmt.php"); do //Schleife starten für Thread { try { pFile = session.OpenURL(strUrl,1,INTERNET_FLAG_TRANSFER_BINARY,NULL,0); if(pFile) { while (pFile->ReadString(somecode) != NULL) { s = s + somecode; } pFile->Close(); } } catch (CInternetException* e) { e->Delete(); session.Close(); CloseHandle(session); } CEdit *pEdit = (CEdit*)pParam; CString result; pEdit->GetWindowTextA(result); if(result == "Warnungen werden geladen...") { s.Delete(0,1); s.Replace(_T("\\r\\n"), _T("\r\n")); pEdit->SetWindowTextA(s); } else if(result == s) { //Nichts machen } else { pEdit->Clear(); s.Delete(0,1); s.Replace(_T("\\r\\n"), _T("\r\n")); pEdit->SetWindowTextA(s); } }while(1+1); //Weiss nicht welche sinnvolle variante hier geeignet ist um den Thread lebenslang am laufen zu halten bis das Programm beendet wird return 0; } UINT CHauptDlg::WarnSMSList (LPVOID pParam2) { //Aktuelle Warnungen laden und im Editfeld anzeigen CString somecode, s; CInternetSession session("Verbindungstest",1,INTERNET_OPEN_TYPE_PRECONFIG); CStdioFile* pFile = NULL; CString strUrl("http://www.nfws.ch/inc/warnlist.php"); do //Schleife starten für Thread { try { pFile = session.OpenURL(strUrl,1,INTERNET_FLAG_TRANSFER_BINARY,NULL,0); if(pFile) { while (pFile->ReadString(somecode) != NULL) { s = s + somecode; } pFile->Close(); } } catch (CInternetException* e) { e->Delete(); session.Close(); CloseHandle(session); } CEdit *pEdit2 = (CEdit*)pParam2; CString result; pEdit2->GetWindowTextA(result); if(result == "Warnungen werden geladen...") { s.Delete(0,1); s.Replace(_T("\\r\\n"), _T("\r\n")); pEdit2->SetWindowTextA(s); } else if(result == s) { //Nichts machen } else { pEdit2->Clear(); s.Delete(0,1); s.Replace(_T("\\r\\n"), _T("\r\n")); pEdit2->SetWindowTextA(s); } }while(1+1); //Weiss nicht welche sinnvolle variante hier geeignet ist um den Thread lebenslang am laufen zu halten bis das Programm beendet wird return 0; }
Vielen Dank für Eure Tips/Hilfe
Grüsse aus der Schweiz
Dominic / Wolf85
Comment