Beispiel #1
0
void TABLE::find(char* wildcard_ID, char* lastID)
{
	vector<IDinfor> print_data;
	int len = strlen(wildcard_ID);
	if (hasStart(wildcard_ID, len)){
		for (int i = 1; i < NAMEMAX; i++){
			int size = ID_table[i].size();
			for (int j = 0; j < size; j++){
				if (strcmp(ID_table[i][j].str, lastID) == 0)
					continue;
				if (WildTextCompare(ID_table[i][j].str, wildcard_ID))
					print_data.push_back(ID_table[i][j]);
			}
		}
	}

	else {
		int size = ID_table[len].size();
		for (int i = 0; i < size; i++){
			if (strcmp(ID_table[len][i].str, lastID) == 0)
					continue;
			if (WildTextCompare(ID_table[len][i].str, wildcard_ID))
				print_data.push_back(ID_table[len][i]);
		}
	}

	sort(print_data.begin(), print_data.end(), cmp);
	print(print_data);
}
Beispiel #2
0
bool appMatchWildcard(const char *name, const char *mask, bool ignoreCase)
{
	guard(appMatchWildcard);

	if (!name[0] && !mask[0]) return true;		// empty strings matched

	if (ignoreCase)
	{
		char NameCopy[1024], MaskCopy[1024];
		appStrncpylwr(NameCopy, name, ARRAY_COUNT(NameCopy));
		appStrncpylwr(MaskCopy, mask, ARRAY_COUNT(MaskCopy));
		return WildTextCompare(NameCopy, MaskCopy);
	}
	else
	{
		return WildTextCompare(name, mask);
	}

	unguard;
}