Loop Version: // set up the loop SET Temp-n TO LENGTH( TextVar ) SET LoopLimit-n[ Temp-n ] TO 1 SET Pos-n TO Temp-n SET Found-b TO FALSE // loop backwards through the string // to locate the last space REPEAT Loop IF Found-b = FALSE IF MID( TextVar, Pos-n, 1 ) = " " SET Found-b TO TRUE ELSE SET Pos-n TO Pos-n - 1 END IF END IF END REPEAT SET LoopLimit-n[ Temp-n ] TO UNANSWERED // extract everything after the last space LAST( TextVar, LENGTH( TextVar ) - Pos-n ) Safe Version: "«TextVar»" SET Temp-n TO POSITION( RESULT, " " ) IF Temp-n > 0 LAST( RESULT, LENGTH( RESULT ) - Temp-n ) SET Temp-n TO POSITION( RESULT, " " ) IF Temp-n > 0 LAST( RESULT, LENGTH( RESULT ) - Temp-n ) SET Temp-n TO POSITION( RESULT, " " ) IF Temp-n > 0 LAST( RESULT, LENGTH( RESULT ) - Temp-n ) SET Temp-n TO POSITION( RESULT, " " ) IF Temp-n > 0 LAST( RESULT, LENGTH( RESULT ) - Temp-n ) END IF END IF END IF END IF
The "Loop Version" of the computation will handle a string of any size. It works by stepping backwards through the string one character at a time until it finds a space. This is the space before the last word. The position of this space is kept in the temporary number variable Pos-n. Finally, everything in the string after Pos-n is returned by the computation, which will be the last word of the string.
The computation requires three temporary variables: Temp-n which holds the length of the string, Pos-n which holds the position of the last character checked as well as the position of the final space in the string, and Found-b, a TRUE/FALSE variable which tells us whether the final space has been found yet. The computation also uses the looping mechanism described in Computation #0015: Loops Via REPEAT.
CAVEAT: It has been reported that this looping mechanism no longer functions in HotDocs Online. This should be a warning flag that it may not be supported in future versions of HotDocs. It still works as of HotDocs 5.3. If this is of concern to you, use the "Safe Version" of the computation described below.
The "Safe Version" should be forward-compatible with future versions of HotDocs, but is limited to a five-word string. The computation looks for the first available space in the string and cuts off everything before it. It repeats this process four times, which is why it is only good up to five words. Beyond that, you'll have to add more levels. The computation requires one temporary number variable, Temp-n, to store the position of spaces in the string.
This template has everything you need set up and configured for you. It will work as-is, or can be adapted to your variable and dialog names. It contains: 1) sample Word and WordPerfect templates (or an Automator form) to demonstrate an implementation of the computation, 2) a component file containing the computation and all supporting dialogs and variables, and 3) instructions for adapting the computation for your use.