Code Center for pre v5.2 Users

Version 5.2 rendered the following code redundant, by replacing them with new internal commands. I leave them up here for those who have not yet upgraded or for special situations.

Best way to use this page is to use your browser File - Save As function and then load the page into Vedit to copy the code you want.

Register Usage

Register ranges included both text and numeric registers

Input Registers : 10 - 19
Output Registers : 20 - 29
Working Registers : 30 - 49
Main Temp. Buffer : 33
Secondary Temp Buffer : 34

// transfer number in a text register to a numeric register // text register 10 holds the number to transfer // numeric register 20 hold the transferred number #30=buf_num // save current buffer # buf_switch(33) // switch to temp buffer buf_empty(ok) // empty buffer reg_ins(10,begin) // insert t-reg 10, stay at start of buffer #20=num_eval() // evaluate number or formula at edit position, store result in #20 buf_switch(#30) // return to original buffer
// transfer number in a numeric register to a text register // numeric register 10 holds the number to transfer // text register 20 hold the transferred number #30=buf_num // save current buffer # buf_switch(33) // switch to temp buffer buf_empty(ok) // empty buffer num_ins(#10,left+nocr) // insert n-reg 10, left justified, no newline characters #31=cur_pos // save end of number file position begin_of_file() // goto start of buffer block_begin(cur_pos) // set block begin at start of number block_end(#31) // set block end at end of number reg_copy_block(20,block_begin,block_end) // copy block to t-reg 20 buf_switch(#30) // return to original buffer
// split a filename into it's name and extension parts // designed to work whether filename has an extension or not, // or might not be filename assigned to current buffer // text register 10 holds the whole filename // text register 20 holds just the name // text register 21 holds the extension including the dot // numeric register 20 holds the "has extension ?" flag : 0=yes 1=no #30=buf_num // save current buffer # buf_switch(33) // switch to temp buffer buf_empty(ok) // empty buffer reg_ins(10) // insert filename into temp buffer #31=cur_pos // save file position of end of filename begin_of_file() // goto start of file #20=0 // set "has extension ?" flag to 0 (yes) search(".",noerr) // search for the dot if(return_value==0) { // if no dot, then no extension, so do .... reg_empty(21) // ensure output t-reg 21 contains no text #20=1 // set "has extension ?" flag to 1 (no) #32=#31 // set #32 to #31 for following code } else { // else there is a dot, so do ... #32=cur_pos // save file position of dot } // end of else block_begin(0) // set block begin for name portion block_end(#32) // set block end to dot position or end of name reg_copy_block(20,block_begin,block_end) // shove name into t-reg 20 if(#20==0) { // do only if file has extension block_begin(#32) // set block begin to dot position block_end(#31) // set block end to end of text reg_copy_block(21,block_begin,block_end) // shove extension into t-reg 21 } // end of if buf_switch(#30) // return to original buffer
// split a full filespec into it's component parts of : // drive letter, path, filename, extension // text register 10 holds full filespec ie c:\data\letters\dearjohn.doc // text register 20 holds drive letter ie c // text register 21 holds path ie \data\letters // text register 22 holds filename ie dearjohn // text register 23 holds extension or maybe empty if none ie .doc #30=buf_num // save current buffer buf_switch(33) // switch to temp buffer buf_empty(ok) // empty it reg_ins(10) // dump in full filespec in t-reg 10 #31=cur_pos // save end of filespec position // get extension search(".",noerr+reverse) // do reverse search for dot if(return_value==0) { // if no dot, then no extension, so do ... reg_empty(23) // empty extension register #32=#31 // set dot position to end of filespec position } else { // else there is an extension, so do ... #32=cur_pos // save dot position block_begin(cur_pos) // set block begin to dot position block_end(#31) // set block end to end of filespec position reg_copy_block(23,block_begin,block_end) // shove extension into t-reg 23 } // end of else // get filename search("\",noerr+reverse) // do reverse search for a \ #33=cur_pos // save \ position block_begin(cur_pos+1) // set block begin to start of filename block_end(#32) // set block end to dot position reg_copy_block(22,block_begin,block_end) // shove filename into t-reg 22 // get path search(":",noerr+reverse) // reverse search for the drive colon block_begin(cur_pos+1) // set block begin to start of path block_end(#33-1) // set block end to end of path reg_copy_block(21,block_begin,block_end) // shove path into t-reg 21 // get drive letter begin_of_file() // goto start of buffer block_begin(cur_pos) // set block begin at start of buffer block_end(cur_pos+1) // set block end to next file position reg_copy_block(20,block_begin,block_end) // shove drive letter into t-reg 20 buf_switch(#30) // switch back to original buffer #
Return to Code Center
Return to Table of Contents