Eingabefeld mit Listenfeld vergleichen
-
Lies mal MSDN zu CListBox::GetCount und CListBox::GetText.
Da ist sogar ein brauchbares Beispiel drin...
-
hallo,
ich kenn mich nicht so in alls CString funktionen aus aber ich könte dir ein biespil char und CString gebe wun dir ziegen wie ich das lösen würde.
wen du möchtest?MFG TaccoGo
-
Jo, her damit
-
eine frage noch du hast gesagt das du eine eingabefeld hast wo der zu suchende sting stecht. wieso list du in dein Beispil aus einder datei?
MFG TaccoGo
-
Ins eingabefeld schreibe ich ein wort z.b. Affe, im listenfeld stehen ganz viele andere wörter, unter anderem Affe. Wenn ich das Wort jetzt eingebe, soll nur noch das dort stehen.
Aus der Datei lese ich, weil ich die wörter nun mal in der datei habe!
-
na ok
CString auswahl; char buf[80],buf2[80]; sprintf(buf,"%s",m_eingabefeld); for (int i=0;i<strlen(buf);i++) { for (int j=0;j<m_ctlAusEn.GetCounnt();j++) { m_ctlAusEn.GetText(j,auswahl); sprintf(buf2,"%s",auswahl); if (buf[i]!=buf2[i]) m_ctlAusEn.DeleteString(j); } }
ich habe es nicht getestet aber ungefär so solte es sien.
MFG TaccoGo
-
achja du musst aber zuerst alle steings aus der datei ins listfel einlesen.
MFG TaccoGo
-
CString suchtext("aff"); // Ist eigentlich ein CString aus deinem EIngabefeld CString ausliste("affe"); // Aus Dateilesen und in CString da Wort schrieben if(ausliste.left(suchtext.GetLength() ==suchtext ) { // ausliste in liste eintragen }
Das ganze in einer Schleife die du ja beim Auslesen sowieso hast.
-
@Unixtom: Deine Antwort verstehe ich gar nicht
@TaccoGo: Das geht leider nichtIch habe jetzt mal etwas versucht, jedoch stürzt dann sobald man einen Buchstaben eingibt das Programm ab...
UpdateData(TRUE); int i; int j; CString bck; for(i=0;i<m_ctlAusDe.GetCount();i++) { for(j=0;j<=strlen(m_strEinDe);j++) { m_ctlAusDe.GetText(i,bck); if(m_strEinDe[j]!=bck[j]) { m_ctlAusDe.DeleteString(i); i--; } } }
Bei dieser Zeile (m_ctlAusDe.GetText(i,bck)) macht er Probleme... Kann mir jemand helfen?
-
Habe es jetzt anders gelöst, trotzdem danke!