Back to BeeGuid Source
int scanForBeesUsingGen(int numberOfValue, int nNumberOfGenInTable)
{
char choosedTypeOfGen[75] = "";
int nNumberOfBeeWithChoosenGen = 1;
strncpy_s(choosedTypeOfGen, msValueGen[numberOfValue].c_str(), msValueGen[numberOfValue].length());
wchar_t *wtext;
wtext = L"Database\\BeesGeneticCards\\*.txt";
LPWSTR kDir = wtext;
WIN32_FIND_DATA beeFileData;
HANDLE f;
f = FindFirstFile(kDir, &beeFileData);
if (f != INVALID_HANDLE_VALUE)
do
{
WCHAR *beeFileName = beeFileData.cFileName;
char beeFileName2[255];
//Converts wchar into char *
char DefChar = ' ';
WideCharToMultiByte(CP_ACP, 0, beeFileName, -1, beeFileName2, 260, &DefChar, NULL);
int fileNameLen;
fileNameLen = strlen(beeFileName2) - 4;
char fileName[255];
strncpy_s(fileName, beeFileName2, fileNameLen);
string sFiles = "Database\\BeesGeneticCards\\";
sFiles = sFiles + beeFileName2;
ifstream in(sFiles);
char nameOfBee[75];
string nameOfBee2;
for (int i = 1; i <= nNumberOfGenInTable; i++)
{
in.getline(nameOfBee, 75);
int endChar = msValueGen[numberOfValue].length();
nameOfBee[endChar] = '\0';
choosedTypeOfGen[endChar] = '\0';
bool iFoundRightLine = true;
for (int g = 1; g <= (endChar--); g++)
{
if (nameOfBee[g] == choosedTypeOfGen[g]) {}
else { iFoundRightLine = false; }
}
if ((i == nNumberOfGenInTable) & (iFoundRightLine == true))
{
WCHAR *msBeesWithChoosenGenPre = beeFileData.cFileName;
//Converts WCHAR * into string
char msBeesWithChoosenGenPre2[255];
char DefChar = ' ';
WideCharToMultiByte(CP_ACP, 0, msBeesWithChoosenGenPre, -1, msBeesWithChoosenGenPre2, 260, &DefChar, NULL);
msBeeWithChosenGen[nNumberOfBeeWithChoosenGen] = msBeesWithChoosenGenPre2;
nNumberOfBeeWithChoosenGen++;
}
}
in.close();
} while (FindNextFile(f, &beeFileData));
FindClose(f);
nNumberOfBeeWithChoosenGen--;
for (int i = 1; i <= nNumberOfBeeWithChoosenGen; i++)
{
char tempElement[50];
strncpy_s(tempElement, msBeeWithChosenGen[i].c_str(), msBeeWithChosenGen[i].length() - 4);
msBeeWithChosenGen[i] = tempElement;
}
return nNumberOfBeeWithChoosenGen;
}
|