Pages: 1
Print
Author Topic: Script Example: Functions for Selecting the Next or Previous Word  (Read 3362 times)
Derek Read
Program Manager (XMetaL)
Administrator
Member

Posts: 2469



WWW
« on: May 04, 2010, 06:06:55 PM »

Products: XMetaL Author (Enterprise and Essential) and XMAX
Tested with XMetaL Author Enterprise 6.0

Should function in practically any version of XMAX or Author, at least going back to 3.x but probably all the way back to 1.0. Regardless of which version you are developing for make sure you properly test these in your environment together with all of your other scripts. Our clients do interesting things with our products so there is no way to predict every use case in advance.

Description:
Two functions for creating a Range object containing the next or previous word in the document with an option to show the resulting Range as a Selection (ie: make it visible to the author).

Legal:
* Licensed Materials - Property of JustSystems, Canada, Inc.
*
* (c) Copyright JustSystems Canada, Inc. 2010
* All rights reserved.
*
*-------------------------------------------------------------------
* The sample contained herein is provided to you "AS IS".
*
* It is furnished by JustSystems Corporation as a simple example and has not been
* thoroughly tested under all conditions. JustSystems Canada, Inc., therefore, cannot
* guarantee its reliability, serviceability or functionality.
*
* This sample may include the names of individuals, companies, brands and products
* in order to illustrate concepts as completely as possible. All of these names are
* fictitious and any similarity to the names and addresses used by actual persons or
* business enterprises is entirely coincidental.
*---------------------------------------------------------------------

Code:
function getPreviousWord(boolMoveSelection) {
var rng1 = ActiveDocument.Range;
var rng2 = ActiveDocument.Range;
rng1.Collapse(1);
rng2.Collapse(1);
rng1.GotoPrevious(sqWordStart);
rng2.GotoPrevious(sqWordStart);
rng2.GotoNext(sqWordEnd);
rng1.ExtendTo(rng2);
if(boolMoveSelection) {
rng1.Select();
}
return(rng1);
}

function getNextWord(boolMoveSelection) {
var rng1 = ActiveDocument.Range;
var rng2 = ActiveDocument.Range;
rng1.Collapse(0);
rng2.Collapse(0);
rng1.GotoNext(sqWordEnd);
rng2.GotoNext(sqWordEnd);
rng2.GotoPrevious(sqWordStart);
rng1.ExtendTo(rng2);
if(boolMoveSelection) {
rng1.Select();
}
return(rng1);
}

Syntax:
   getNextWord([boolMoveSelection])
   getPreviousWord([boolMoveSelection])

When boolMoveSelection = true the author's selection is moved.
When boolMoveSelection = false (or null) the author's selection is not moved.

Returns:
A Range representing the previous/next word in the document. The Range can be used like any other Range object.

JScript Examples:

  • Show the text of the next word in the document without moving the selection.
       Application.Alert(getNextWord(false).text);
  • Move the selection to the next word in the document.
       getNextWord(true);
  • Show the text of the previous word in the document without moving the selection.
       Application.Alert(getPreviousWord(false).text);
  • Move the selection to the previous word in the document.
       getPreviousWord(true);
« Last Edit: May 04, 2010, 06:18:35 PM by Derek Read » Logged
Siva
Member

Posts: 1


« Reply #1 on: January 14, 2016, 10:58:35 AM »

Hi,

I have a requirement to get previous word in the current document and the based on the previous value,  quotes "  have to changed to open curly quotes or closed curly quotes . I tried to use getPreviousWord(false).text to get the previous value but it is not working. I am getting the error message . object doesn't support this property or method. Kindly help.
Logged
Pages: 1
Print
Jump to: