CStringArray (Wert prüfen)

Dipsi

Mitglied
Hallo...

Projekt: MFC/Dialogbasiert

Ich hab ein kleines Problem mit dem CStringArray.
Und zwar kann ich nicht prüfen, ob ein Wert vorhanden ist oder nicht. :confused:
Beim Debuggen sehe ich aber die Werte im Array.

Ich habe es auf ein paar Varianten versucht.
Aber leider ohne Erflog.

Variante 1:
Code:
if(strSem1[4].IsEmpty())
{}
//Beim Debuggen-> Fehler: Memberfunktion nicht vorhanden

Variante 2:
Code:
if(strSem1[4] == "")
{}
//Error C2678: Binärer Operator '==': Es konnte kein Operator gefunden werden, der einen linksseitigen Operator vom Typ 'CStringArray' akzeptiert (oder keine geeignete Konvertierung möglich)

Was muss ich machen? :suspekt:
 
Der []-Operator kann, glaube ich, so nicht benutzt werden, sondern müsste so angewendet werden:
Code:
if( ((CString *)strSem1[4])->IsEmpty() ) { }
Alternativ könntest du auch mit GetAt() arbeiten:
Code:
if( strSem1.GetAt(4).IsEmpty() ) { }
 
Dipsi hat gesagt.:
Geht irgendwie nicht :-S
Bedeutet das, dass du dieselbe Fehlermeldung bekommst, wie vorher?

Wenigstens die "GetAt()"-Variante sollte funktionieren.
Kannst du den gespeichert CString wenigstens aus dem Array herausziehen?
Code:
CString strElement = strSem1.GetAt(4);

Nur am Rande: Du hast schon vorher mit "Add()" bzw. "SetSize()" die entsprechende Anzahl von Elementen (5) erzeugt?

Gruß
MCoder
 
Du kannst auch mit GetAt nur auf Strings zugreifen, die im array vorhanden sind. Dazu solltest du Dir vorher die Anzahl mit CStringList::GetCount() holen. Die im Array abgelegten Strings können dann aber auch noch leer sein.
 
Zurück