Example #1
0
	String getArgV(const StringRef& find , bool getValue , const StringRef& def) {
		if (find.isWide() || def.isWide()) {
			return getArgV((const wchar_t**)__wargv+1 , __argc-1 , find.w_str() , getValue , def.w_str());
		} else {
			return getArgV((const char**)__argv+1 , __argc-1 , find.a_str() , getValue , def.a_str());
		}
	}
Example #2
0
	bool fileExists(const StringRef& file) {
		if (file.isWide()) {
			return _access(file.a_str(), 0) == 0;
		} else {
			return _waccess(file.w_str(), 0) == 0;
		}
	}
Example #3
0
	__int64 chtoint64(const StringRef& str , unsigned char base) {
		if (str.isWide()) {
			const wchar_t* s = str.w_str();
			int sign = checkIntChar(s, base);
			return sign * _wcstoui64(s, 0, base);
		} else {
			const char* s = str.a_str();
			int sign = checkIntChar(s, base);
			return sign * _strtoui64(s, 0, base);
		}
	}
Example #4
0
	String Internet::combineUrl(const StringRef& url, const StringRef& parent) {
		Stamina::RegEx regex;
		if (url.empty() || regex.match("#^\\w+://#", url.c_str())) {
			return url;
		}

		// wyci¹gamy poszczególne elementy URLa
		if (!regex.match("#^(\\w+://[^/]+/)([^\\?]+/)?([^\\?/]*)(\\?.*)?$#", parent.c_str()))
			return url;
		if (url.a_str()[0] == '.' && (url.length() < 2 || url.a_str()[1] != '.')) {
			// (http://..../) + (katalog/) + url bez kropki
			return regex[1] + regex[2] + url.substr(1);
		} else if (url.a_str()[0] == '/') {
			// (http://..../) + url bez kreski
			return regex[1] + url.substr(1);
		} else {
			// (http://..../) + (katalog/) + url
			return regex[1] + regex[2] + url;
		}
	}
Example #5
0
	int chtoint(const StringRef& str , unsigned char base) {
		if (str.isWide()) {
			const wchar_t* s = str.w_str();
			int sign = checkIntChar(s, base);
			return sign * wcstoul(s, 0, base);
		} else {
			const char* s = str.a_str();
			int sign = checkIntChar(s, base);
			return sign * strtoul(s, 0, base);
		}
		//return strToNumber<unsigned int>(str, base);
	}
Example #6
0
	bool isDirectory(const StringRef& path) {
		if (path == ".") return true;
		DWORD attr;
		if (path.isWide()) {
			attr = GetFileAttributesA(path.a_str());
		} else {
			attr = GetFileAttributesW(path.w_str());
		}
		if (attr == INVALID_FILE_ATTRIBUTES) 
			return false;
		else
			return (attr & FILE_ATTRIBUTE_DIRECTORY) != 0;
	}
Example #7
0
void splitCommand(const StringRef& txt , char splitter ,  tStringVector& list) {
    if (txt.empty()) return;
    char end;
	size_t pos = 0;
	do {
	    // Ustalamy jakim znakiem ma sià zakonczyc parametr
		if (splitter && txt.a_str()[pos]=='"') {pos++; end = '"';}
        else end = splitter;
	    size_t fnd = txt.find(end , pos);
	    list.push_back(txt.substr(pos , (fnd != -1)?fnd-pos:fnd));
	    pos = fnd;
	    if (pos != -1) {
		    pos += (end=='"')?2:1;
            if (pos>=txt.size()) break;
	    } else break;
	} while (1);
}