StringArray Inhalt filtern
-
Hallo ihr alle,
ich habe ein StringArray in dem mehrere gleiche Strings stehen könnten und möchte herausfinden, ob wirklich meherere gleiche Strings vorhanden sind.
Wie man das StringArray nach einem bestimmten String durchsucht weiß ich. Nur wie man feststellen kann ob ein String doppelt oder öfter vorhanden ist weiß ich nicht.
Wenn jemand eine Idee dazu hat würde mich das sehr freuen.
Vielen Dank schon mal für eure Mühe.
Gruß meil
-
Moin,
ein Weg ist z.B. Das Array sortieren und dann per Gruppenwechsel - Logik durchzuackern.Gruß Tom
-
Nimm die STL, lege einen vector von CString an, rufe STL::find auf, dies gibt dir den Iterator auf den 1. gefundenen String zurück, inkrementiere den Iterator um 1 und führe diese Suche in einer Schleife durch, bis iterator auf vector::end() zeigt. Wenn Du nun noch ne Zählvariable inkrementiert hast, weisst Du, wie oft der String vorhanden ist!
-
// compare pathes if there are double entries
int nPathes = strPathes.GetSize(); for (int y=0; y<nPathes; y++) { strValue = strPathes[y]; for ( int z=1; z<nPathes-y; z++) { if ( y+z < strPathes.GetSize() ) { strNewValue = strPathes[y+z]; if ( strValue == strNewValue ) { strSave.Delete ( strSave.Find(strNewValue), strNewValue.GetLength() ); listEntries.SetAt ( posPrev, strSave ); strPathes.RemoveAt(y+z,1); nPathes--; } } } }
Gruss
Matze
-
typedef vector<CString> vStrings; vStrings arStrings; int nCount=0; for( vStrings::iterator it=arStrings.begin(); it!=arStrings.end(); it++) if( *it == CompareString) nCount++;
-
Da ist jemand Gebadelt
-
Da ist jemand Gebadelt
-
Moin,
und ich dachte das Rad wurde schon erfunden.
Gruß Tom
-
@Tom
... wie die MSDN, und trotzdem muss man sie hier immer wieder zitieren