Page 1 of 2

Spell Checker

Posted: Thu Jul 26, 2007 9:56 am
by Ollie
Is there a way of running a spell checker on a memo field?

Posted: Thu Jul 26, 2007 10:37 am
by Antonio Linares
Ollie,

You could check each word against a dictionary everytime the space is pressed, or just once when the text is going to be saved

Re: Spell Checker

Posted: Thu Jul 26, 2007 11:19 am
by NK
Ollie wrote:Is there a way of running a spell checker on a memo field?
Perhaps that helps you.

http://www.jbooth-consulting.com/products_speller.asp

Posted: Thu Jul 26, 2007 2:36 pm
by Ollie
Thanks NK - It looks promising - will try it.

Antonio - when you said "against a dictionary" did you mean a DBF file filled with words or a .DIC file?

Posted: Thu Jul 26, 2007 6:20 pm
by Antonio Linares
Ollie,

>
when you said "against a dictionary" did you mean a DBF file filled with words or a .DIC file?
>

Both solutions may be fine, though you may get faster searches for words if you use a DBF (filled with words) and an index

Posted: Mon Jul 30, 2007 4:59 pm
by reinaldocrespo
1. Is it possible to use MS-word's speller via some kind of ActiveX?

2. Where can you obtain a dbf filled with dictionary words?

Reinaldo.

Posted: Wed Aug 01, 2007 12:00 pm
by xProgrammer
Reinaldo

There are possibly easier ways (to fill a dbf with dictionary words) but you could download the appropriate dictionary file from Open Office and write a little xBase program to put the words into a dbf. They are in clear text so it shouldn't be very hard to do.

Just a suggestion.

xProgrammer

Posted: Wed Aug 01, 2007 7:12 pm
by reinaldocrespo
x;

Couldn't find the clear text dictionary for download. If you have a link or can send the dictionary over, I'd appreciate it.

reinaldo <dot> crespo <at> gmail <dot> com


Thank you.


Reinaldo.

Spell Checking memo

Posted: Wed Aug 01, 2007 7:40 pm
by TimStone
I use a 3rd party spell checker that is included in the application, and it works fine with memo fields. It is used by a wide variety of applications and is easy to implement ...

The license is royalty free for distribution.

Check it out at: www.wintertree-software.com

Posted: Fri Jan 18, 2008 4:12 pm
by reinaldocrespo
Tim;

I downloaded the 30 day trial version. Would you please send me some xharb code to test the library?

reinaldocrespo at structuredsystems dot com

Thank you.

reinaldo.

Code

Posted: Fri Jan 18, 2008 4:45 pm
by TimStone
I'm sending it to your email today.

This is the spell checker you will find in many products on the market. It is very widely used.

Posted: Fri Jan 18, 2008 7:02 pm
by norberto
Tim, can you send to me?

norberto@windowslive.com

thanks

Wintertree Spell Checker

Posted: Fri Jan 18, 2008 7:16 pm
by TimStone
The following code is used for activating the spell checker from Wintertree:

To check a memofield useing a database object, here is a call:

REDEFINE BUTTON ID 882 of oDcl ACTION( oCli:climpd := SpellOne( oCli:climpd ), oCli:save(), oDcl:update() ) ;
MESSAGE "Check the spelling on the notes"

Here is the code for functions needed in your program:

// Declare include files
#INCLUDE "fivewin.ch"
#define HKEY_LOCAL_MACHINE 2147483650

STATIC hDLL2

FUNCTION Spellone( TxtString )
LOCAL pText := TxtString
LOCAL pTextLen, pNewLen
MEMVAR oWnd

pTextLen := LEN( pText )
pText += SPACE(250)
pNewLen := LEN ( pText )

hDLL2 := LoadLibrary( "SSCE5432.dll" )

SSCE_SetKey( 9999999999 ) // User will get a license code
SSCE_SetRegTreeName( "HKEY_LOCAL_MACHINE\SOFTWARE\Wintertree\SSCE\" )
SSCE_CheckBlockDlg( oWnd, @pText, pTextLen, pNewLen )

FreeLibrary( hDLL2 )

RETURN( pText ) // TxtString )


FUNCTION SetDict // A function to set the path in the registry ... needs a calling button or menu entry
LOCAL oReg, cName, uVar, cDicPath
cDicPath := DiskName( ) + ":\" + TRIM(CurDir( ) ) + "\"

oReg := TReg32():Create( HKEY_LOCAL_MACHINE, "SOFTWARE\Wintertree\SSCE" )
// Call Set with an empty string to access the default key
oReg:Set( "MainLexPath", cDicPath )
oReg:Set( "UserLexPath", cDicPath )
oReg:Set( "MainLexFiles", "ssceam.tlx,ssceam2.clx" )
oReg:Set( "UserLexFiles", "userdic.tlx,correct.tlx,html.tlx" )
MsgStop( "Windows registry updated!" )
oReg:Close()


RETURN NIL


DLL32 FUNCTION SSCE_SetKey( pID AS LONG ) AS LONG PASCAL LIB hDLL2 // "SSCE5432.DLL"

DLL32 FUNCTION SSCE_CheckBlockDlg( pHandle AS LONG, pText AS STRING, pTextLen AS LONG, pNewLen AS LONG ) ;
AS LONG PASCAL LIB hDLL2 // "SSCE5432.DLL"

DLL32 FUNCTION SSCE_SetRegTreeName( pRegName AS STRING ) AS LONG LIB hDLL2 // "SSCE5432.DLL"

Posted: Fri Jan 18, 2008 10:06 pm
by reinaldocrespo
Tim;

I'd like to set lexicon filenames using the option to specify from ini file:
SSCE_S16 SSCE_SetMainLexPath(const char *path);
Below is my code:

Code: Select all

...
Local cDicIni	:= cFilePath( GetModuleFileName( GetInstance() ) ) + "\" + "lex.ini"

	SSCE_SetIniFile( cDicIni )

...

DLL32 FUNCTION SSCE_SetIniFile( pfilename AS STRING ) AS LONG LIB hDLL2
But get a run time error.

Can you help?

Thank you.

Posted: Fri Jan 18, 2008 10:52 pm
by reinaldocrespo
Sorry. My mistake. All is well.

Everything works just perfectly.

BTW Tim, excellent product! Thank you very much.

Reinaldo.