Suchfunktion sucht nicht!



  • Dir ist aber klar, dass sich durch MoveNext der Inhalt des CStringArray nicht automatisch aktualisiert? Du vergleichst immer wieder mit dem ersten Datensatz.



  • Hallo MFK,

    MFK schrieb:

    Dir ist aber klar, dass sich durch MoveNext der Inhalt des CStringArray nicht automatisch aktualisiert? Du vergleichst immer wieder mit dem ersten Datensatz.

    ??? Ich lese doch nur die Benutzereingaben in mein CStringArray der Inhalt des aktuell durch MoveNext() aufgerufenen Datensatzes vergleiche ich mit dem Inhalt des CStringArrays:

    Equal = array[i];
    if(Equal.CompareNoCase(m_pSet->m_Name) != -1)
    

    Hier lese ich einen CString des CStringArrays in den CString "Equal" und vergleiche ihn mit dem aktuellen Datensatz (m_pSet->m_Name).

    Oder ist da ein Denkfehler bei mir??? 😕

    Liebe Grüße,
    Julian



  • Nein, du hast Recht, da hatte ich mich verguckt.

    Allerdings gibt CompareNoCase bei Gleichheit 0 zurück. Die Prüfung auf != -1 ist Unsinn.



  • "if(array[i] == Vergleichsparameter)"

    war doch korrekt! CStrings haben einen überladenen Vergleichsoperator "==" und deswegen kann man CStrings mit "==" vergleichen....



  • JulianB schrieb:

    ...Ich habe das ungute Gefühl das eigentlich alles Funktioniert aber mein Array garnicht gefüllt wird...

    Bei unguten Gefühlen hilft es oft, sich Gewissheit zu verschaffen, indem man den Debugger nutzt, sich Breakpoints setzt und den Wert von Variablen zur Laufzeit überprüft! Dann kann man fehlerhafte Stellen auch viel schneller (bzw. überhaupt) lokalisieren.



  • Schlag auf Schlag,

    ist ja unglaublich wie fix das hier geht ^^. Okay also zurück auf "==" weg von CompareNoCase - (Das mit dem "!= -1" ist peinlich 🙄 ). Aber mein Problem bleibt bestehen, ich will euch allerdings auch nicht den letzten Nerv rauben! Deswegen einmal die Frage, sieht der Code für euch überhaupt so aus als wenn er funktionierten "könnte"???

    Liebe Grüße,
    Julian



  • Günni99 schrieb:

    "if(array[i] == Vergleichsparameter)"

    war doch korrekt! CStrings haben einen überladenen Vergleichsoperator "==" und deswegen kann man CStrings mit "==" vergleichen....

    Ja, hast Recht. Ich war mir ja auch nicht sicher. Allerdings ist in diesem Fall (Datenbank mit Namen usw.) vielleicht CompareNoCase doch die bessere Wahl, je nachdem von wem und wie gewissenhaft die Datenbank gefüllt wurde.



  • Lass dir doch den Inhalt des Arrays mal in einer MessageBox ausgeben. Vielleicht fehlt da einfach nur ein UpdateData.



  • MFK schrieb:

    Lass dir doch den Inhalt des Arrays mal in einer MessageBox ausgeben. Vielleicht fehlt da einfach nur ein UpdateData.

    Schlagt mich wenn ihr wollt. MFK hatte recht, das was mir fehlte war das bescheidene UpdateData. Ich hatte es schlichtweg vergessen, alles ist mir aufgefallen aber nicht das.

    Sorry, wirklich. Da hätte ich auch selber drauf kommen können. Aber manchmal ist man halt ein wenig vernebelt...

    Vielen vielen Dank an euch alle, das mit dem CompareNoCase werde ich mir definitiv zu Herzen nehmen und noch einmal genauer anschauen.

    Liebe Grüße und nochmals vielen Dank,
    Julian.



  • Und bitte für das nächstemal.

    Mache zuerst eine Debug und schaue was an Daten da sind bevor du eine Frage stellst.


Anmelden zum Antworten