| !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | |
| ! STRFNC.H V1.5 by Jason Peter Brown | |
| ! Additional String Functions for Hugo v2.4+ | |
| ! | |
| ! Licence: | |
| ! | |
| ! Freely distributable, modifiable, and usable. | |
| ! No Warranty expressed or implied. | |
| ! Bug Reports to: yu219719@yorku.ca | |
| ! | |
| ! Usage: | |
| ! | |
| ! x=right$(source, chars) | |
| ! | |
| ! Where source is the array from which you want to pull the rightmost | |
| ! characters, and chars are the number of characters that you want to | |
| ! return. | |
| ! | |
| ! x = right$(source, chars, replacement) | |
| ! | |
| ! Where source is the array into which you want to replace characters, | |
| ! chars is the number of characters to replace (moving from the right) | |
| ! and replacement is the replacement array. This routine replaces | |
| ! text only up to the end of the source string, so longer replacement | |
| ! strings will be clipped. | |
| ! | |
| ! x = left$(source, chars) | |
| ! | |
| ! Where source is the array from which you want to pull the leftmost | |
| ! characters, and chars are the number of characters that you want to | |
| ! return. | |
| ! | |
| ! x = left$(source, chars, replacement) | |
| ! | |
| ! Where source is the array into which you want to replace characters, | |
| ! chars are the number of characters to replace, and replacement is | |
| ! the array that will replace text in source. Text in the source | |
| ! array can only be replaced up to the original length of source, so | |
| ! longer replacements will be clipped. | |
| ! | |
| ! x= mid$(source, offset, chars) | |
| ! | |
| ! Where source is the array from which you want to extract characters, | |
| ! offset is the number of characters from theleft to skip, and chars | |
| ! is the number of characters that you wish to return from (offset+1) | |
| ! | |
| ! x= mid$(source, offset, chars, replacement) | |
| ! | |
| ! Where source is the array into which you want to replace characters, | |
| ! offset is the number of characters to skip before beginning replacement, | |
| ! chars is the number of characters to replace, and replacement is an | |
| ! array that will replace the characters from (offset+1) to (offset+1+chars) | |
| ! | |
| ! x= add$(string1, string2) | |
| ! | |
| ! Adds the contents of two arrays together into a single array. | |
| ! | |
| ! x = search$(source, search , [offset]) | |
| ! | |
| ! Searches for the first occurence of search in source. Returns the string | |
| ! position in source of the beginning of the occurence, or returns false | |
| ! if the string is not matched. If included, offset begins the search | |
| ! at source+offset. | |
| ! | |
| ! PrintCenter(string, vert) | |
| ! | |
| ! prints centered text (string) horizontally. If vert is true, then text is | |
| ! also centered vertically. | |
| ! | |
| ! PrintRight(string) | |
| ! | |
| ! Prints right justified text (string). | |
| ! | |
| ! Enjoy! | |
| array _search_string[256] | |
| routine right$(source, chars, replacement) | |
| { | |
| local tempA | |
| local tempB | |
| tempA = string (_temp_string, source, 255) | |
| tempB = tempA - chars | |
| if replacement | |
| { | |
| string (array _temp_string, array source, tempB) | |
| _temp_string[tempB] = 1 | |
| string ((array _temp_string+tempB), (array replacement), (chars)) | |
| _temp_string[tempA] = 0 | |
| } | |
| elseif (tempA > chars) | |
| { | |
| string (_temp_string, source+tempB, chars) | |
| } | |
| return _temp_string | |
| } | |
| routine left$(source, chars, replacement) | |
| { | |
| local tempA | |
| tempA = string(_temp_string, source, 255) | |
| if replacement | |
| { | |
| string (array _temp_string, array replacement, chars) | |
| _temp_string[chars] = 1 | |
| string ((array _temp_string+chars), (array source+chars), (tempA-chars)) | |
| _temp_string[tempA] = 0 | |
| } | |
| elseif (tempA >= chars) | |
| { | |
| string(_temp_string, source, chars) | |
| } | |
| return _temp_string | |
| } | |
| routine mid$(source , offset, chars, replacement) | |
| { | |
| local tempA | |
| tempA = string(_temp_string, source, 255) | |
| if replacement | |
| { | |
| string (array _temp_string, array source, (offset)) | |
| _temp_string[offset] = 1 | |
| string ((array _temp_string + offset), array replacement, chars) | |
| string ((array _temp_string +offset+chars), (array source+offset+chars), (tempA - 1)) | |
| _temp_string[tempA] = 0 | |
| } | |
| elseif (tempA >= offset) and (tempA >= (offset+chars)) | |
| { | |
| string (_temp_string, (source+offset), chars) | |
| } | |
| elseif (tempA >= offset) and (tempA < (offset+chars)) | |
| { | |
| string (_temp_string, (source+offset), (tempA-offset)) | |
| } | |
| return _temp_string | |
| } | |
| routine Add$(firststring, secondstring) | |
| { | |
| local tempA , tempB | |
| tempA = string(_temp_string, firststring, 255) | |
| tempB = string(_temp_string, secondstring, 255) | |
| if tempA + tempB > 255 | |
| { | |
| "[OVERFLOW ERROR IN ROUTINE ADD$]" | |
| return true | |
| } | |
| string(_temp_string, firststring, tempA) | |
| string(_temp_string+tempA, secondstring,tempB) | |
| _temp_string[tempA+tempB] = 0 | |
| return _temp_string | |
| } | |
| routine Search$(source, search, offset) | |
| { | |
| local tempA , tempB, tempC , tempD | |
| tempA = string(_temp_string, source+offset, 255) | |
| tempB = string(_search_string, search, 255) | |
| if not tempB or not tempA | |
| { | |
| return 0 | |
| } | |
| elseif tempB > tempA | |
| { | |
| return 0 | |
| } | |
| for (tempC = 0 ; tempC <= (tempA-tempB) ; tempC ++) | |
| { | |
| string(array _temp_string, (array source+offset+tempC), tempB) | |
| tempD = StringCompare (array _temp_string , array _search_string) | |
| if not tempD | |
| { | |
| return tempC+1+offset | |
| } | |
| } | |
| return 0 | |
| } | |
| routine PrintCenter(source, vert) | |
| { | |
| local l | |
| if vert | |
| { | |
| locate 1 , (display.windowlines/2) | |
| } | |
| Font(PROP_OFF) | |
| l = string(_temp_string, source) | |
| print to ((display.linelength/2 - l/2));source;to (display.linelength) | |
| FONT(DEFAULT_FONT) | |
| } | |
| routine PrintRight(source) | |
| { | |
| local l | |
| Font(PROP_OFF) | |
| l = string(_temp_string, source) | |
| print to (display.linelength - l);source | |
| FONT(DEFAULT_FONT) | |
| } | |
Xet Storage Details
- Size:
- 5.33 kB
- Xet hash:
- 97b00c2ad98787d42126f54f0f489a7f28a2e1e074ae3ce438dd01a90c103e40
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.