String in Byte Array finden
-
Hallo,
ich habe einen Suchstring als Char oder Managed String zur verfügung und muss ein Byte Array nach allen Vorkommnissen durchsuchen.
Leider wird ein Array bei "IndexOf" nicht akzeptiert und ein String liefert als rückgabewiert immer -1...hat da jemand ne idee?
hier der code:cliext::vector<long> TMT2Hex::SearchString(char convertedstring[]) { int index = 0; unsigned char convertedstr[128]; convertedstr[0] = 0; memcpy(convertedstr, convertedstring, sizeof(convertedstring)); while(true) { index = buffer->IndexOf(buffer, ???, index); if(index != -1) { // treffer indexfound.push_back(index); index = index + convertedstringlen; } else { break; } } return indexfound; }
-
scheint ziemlich aussichtslos zu sein
habs jetzt so gelöst indem ich (obwohl es etwas umständlicher war)
das Byte-Array als String eingelesen hab und dann darin gesucht.
-
Funktion um ein manged byte Array in einem anderen managed Byte Array zu finden:
int findByteArray(array<System::Byte>^ buffer,array<System::Byte>^ search) { for (int i = 0; i < buffer->Length - search->Length +1; i++) { bool found = true; for (int j = 0; j < search->Length; j++) { if (buffer[i+j] != search[j]) { found = false; break; } } if (found) return i; } return -1; }