George Procedures : Advanced

From TVPaintWiki
Revision as of 10:58, 26 November 2013 by Madsjuul (Talk | contribs) (Created page with '<<<George<<<George Command Reference These are the functions from the include script advanced.grg //{{{ InsertAfter(string,insert,search) //---------------------------…')

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

<<<George<<<George Command Reference

These are the functions from the include script advanced.grg


//{{{ InsertAfter(string,insert,search) //------------------------------------------ // // InsertAfter // // Function: insert a string after each // occurence of a character or // a set of characters into // another string // // Call: InsertAfter(string,insert,search) // // Arguments: // string = characters string // insert = string to insert // search = character or substring // to look for // // Return: result string after insertion // //------------------------------------------

FUNCTION InsertAfter(string,insert,search) LOCAL pos workstr size pos = 1 workstr = string size = LEN(search)

WHILE ((pos = FindString(workstr,search,pos)) > 0) workstr = InsertStringAtPos(workstr,insert,pos+size-1) pos = pos+size+LEN(insert) END RETURN workstr END //}}}

//{{{ InsertBefore //------------------------------------------ // // InsertBefore // // Function: insert a string before each // occurence of a character or // a set of characters into // another string // // Call: InsertBefore(string,insert,search) // // Arguments: // string = characters string // insert = string to insert // search = character or substring // to look for // // Return: result string after insertion // //------------------------------------------

FUNCTION InsertBefore(string,insert,search) LOCAL pos workstr pos = 1 workstr = string

WHILE ((pos = FindString(workstr,search,pos)) > 0) workstr = InsertStringAtPos(workstr,insert,pos-1) pos = pos+LEN(search)+LEN(insert) END RETURN workstr END //}}}

//{{{ Delete //------------------------------------------ // // Delete // // Function: delete all occurences of a // substring into a string // // Call: Delete(string,search) // // Arguments: // string = characters string // search = substring to delete // // Return: result string after deletion // //------------------------------------------

FUNCTION Delete(string,search) LOCAL workstr str1 str2 pos size workstr = string pos = 1 size = LEN(search)

WHILE ((pos = FindString(workstr,search,1)) > 0) IF ((pos != 1) && ((pos+size) < LEN(workstr))) str1 = CUT(workstr,1,pos-1) str2 = CUT(workstr,pos+size,LEN(workstr)) workstr = str1""str2 ELSE IF (pos == 1) IF ((size+1) < LEN(workstr)) workstr = CUT(workstr,size+1,LEN(workstr)) ELSE workstr = "" END ELSE workstr = CUT(workstr,1,pos-1) END END END RETURN workstr END //}}}

//{{{ Replace //------------------------------------------ // // Replace // // Function: replace each occurence of a // substring into a string with // another string // // Call: Replace(string,search,repl) // // Arguments: // string = characters string // search = substring to look for // repl = replacement substring // // Return: result string after replacement // //------------------------------------------

FUNCTION Replace(string,search,repl) LOCAL pos workstr str1 str2 size pos = 1 workstr = string size = LEN(search)

WHILE ((pos = FindString(workstr,search,pos)) > 0) IF (pos == 1) str1 = CUT(workstr,size+1,LEN(workstr)) workstr = repl""str1 pos = 0 ELSE str1 = CUT(workstr,1,pos-1) IF ((pos+size) < LEN(workstr)) str2 = CUT(workstr,pos+size,LEN(workstr)) workstr = str1""repl""str2 ELSE workstr = str1""repl END END pos = pos+LEN(repl) END RETURN workstr END //}}}

//{{{ NewParse(string,divider) //------------------------------------------ // // NewParse // // Function: cut a string into several parts and // store each part into a variable. // The string is cut before each // occurence of a specified character. // // Call: NewParse(string,divider) // // Arguments: // string = characters string // divider = character used as a separator // between each part of the string // // Return: number of variables created. // This function create global variables // named var(1), var(2)...var(N), where // N is the value returned by the function. // // Note: if the string contained two or more // successive separators, no variable is // created for these parts of the string. // For example, if you call the NewParse // function for "First;;Second" with // divider=";", only two variables are // created (var(1)="First" and // var(2)="Second"). // //------------------------------------------

FUNCTION NewParse(string,divider) LOCAL pos i workstr size i = 0 pos = 1 workstr = string

IF ((CMP(workstr,"") == 0) && (CMP(divider,"") == 0) && (CMP(workstr,divider) == 0)) WHILE ((pos = Find(workstr,divider,1)) > 0) IF ((pos != 1) && (pos != LEN(workstr))) i = i+1 var(i) = CUT(workstr,1,pos-1) workstr = CUT(workstr,pos+1,LEN(workstr)) ELSE IF (pos == 1) IF (pos != LEN(workstr)) workstr = CUT(workstr,2,LEN(workstr)) ELSE workstr = "" END ELSE workstr = CUT(workstr,pos,LEN(workstr)) END END END if (CMP(workstr,0) == 0) i = i+1 var(i) = workstr END END RETURN i END //}}}

FileRequester(title,path,file,pattern)

//------------------------------------------
//
//	FileRequester
//
//	Function: open a file requester
//
//	Call: FileRequester(title,path,file,pattern)
//
//	Arguments:
//		title   = requester title
//		path    = default directory
//      file    = default filename
//      pattern = default pattern
//
//	Return: 0 if user clicks on Cancel
//          1 if user chooses a file. This
//          function creates three global
//          variables: pathname (path
//          to choosen file), filename
//          (name of choosen file without
//          extension) and extension
//          (extension of choosen file)
//
//------------------------------------------

FUNCTION FileRequester(title,path,file,pattern)
	LOCAL fullname point slash size titre
	
	pathname = ""
	filename = ""
	extension = ""
	
	IF (CMP(pattern,0) == 1)
		titre = "|"
	ELSE
		titre = "|"pattern
	END
	IF (CMP(file,0) == 1)
		titre = "|"titre
	ELSE
		titre = "|"file""titre
	END
	IF (CMP(path,0) == 1)
		titre = "|"titre
	ELSE
		titre = "|"path""titre
	END
	IF (CMP(title,0) == 1)
		titre = "Choose a file"titre
	ELSE
		titre = title""titre
	END

	tv_ReqFile titre
	fullname = Result
	size = LEN(fullname)
	
	IF (CMP(fullname,"Cancel") == 1)
		RETURN 0
	ELSE
		IF ((point = LastPos(fullname,".")) != 0)
			extension = CUT(fullname,point+1,size)
			size = point-1
			fullname = CUT(fullname,1,size)
		END
		IF ((slash = LastPos(fullname,"\")) != 0)
			filename = CUT(fullname,slash+1,size)
			size = slash-1
			pathname = CUT(fullname,1,size)
		END
		RETURN 1
	END
END