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.