コード例 #1
0
ファイル: VString.cpp プロジェクト: mikelsv/opensource
// ParamLine
int ParamLine(VString line, VString &name, unsigned char *k, VString *v, int sz){
	int count=0;

	VString t;
	unsigned char *ln=line, *lln=ln, *to=line.endu(), lk=0, f=1;

	while(ln<to+1){
		if(ln==to || *ln=='.' || *ln==',' || *ln=='=' || *ln=='!' || *ln=='*' || *ln=='/' || *ln=='+'/* || *ln=='-'*/ || *ln=='!' || *ln=='~' || *ln==':'){
			t.setu(lln, ln-lln); dspacev(t, 7);

			if(f){
				f=0;
				name=t;
			}
			else{
				if(count<sz){
					k[count]=lk;
					v[count]=t;
					count++;
				}
			}

			lk=*ln; lln=ln+1;
		}
		ln++;
	}

	return count;
}
コード例 #2
0
ファイル: VString.cpp プロジェクト: mikelsv/opensource
VString PartLineTwo(VString line, VString &two, VString el, VString el2){
	unsigned char *pos = line, *pos2 = pos;
	
	if(!rtms(line.endu(), el, el, pos))
		pos = line.endu();
	
	if(!rtms(line.endu(), el2, el2, pos2))
		pos2 = line.endu();

	pos = pos < pos2 ? pos : pos2;

	if(pos == line.endu()){
		 two.Clean();
		 return line;
	}

	two.setu(pos+el.sz, line.endu()-pos-el.sz);
	return VString(line.uchar(), pos-line.uchar());
}
コード例 #3
0
ファイル: VString.cpp プロジェクト: mikelsv/opensource
VString PartLineST(VString line, VString &two){ // one = "Text Part ONe" [Space || Tab] "Text Part Two" -> two
	unsigned char *ln = line, *to =line.endu();

	while(ln < to && (*ln != ' ' || *ln !='\t'))
		ln ++;

	if(ln == to){
		two.Clean();
		return line;
	}

	line = line.str(ln - line.data);

	while(ln < to && (*ln == ' ' || *ln =='\t'))
		ln ++;

	two.setu(ln, to - ln);

	return line;
}
コード例 #4
0
ファイル: VString.cpp プロジェクト: mikelsv/opensource
// PartLine
VString PartLine(VString line, VString &two, VString el){
	unsigned char *pos=line;
	if(!rtms(line.endu(), el, el, pos)){ two.Clean(); return line; }
	two.setu(pos+el.sz, line.endu()-pos-el.sz);
	return VString(line.uchar(), pos-line.uchar());
}