FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour Spell Checker
Posts: 233
Joined: Sat Dec 30, 2006 06:10 AM
Spell Checker
Posted: Thu Jul 26, 2007 09:56 AM

Is there a way of running a spell checker on a memo field?

Many thanks

Ollie.



Using:

xHarbour Compiler build 1.2.1 (SimpLex) (Rev. 6406)

Borland C++ 5.5.1

FWH 9.04 (2009 Apr)
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Spell Checker
Posted: Thu Jul 26, 2007 10:37 AM

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

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 97
Joined: Sun Nov 20, 2005 04:32 PM
Re: Spell Checker
Posted: Thu Jul 26, 2007 11:19 AM
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
Posts: 233
Joined: Sat Dec 30, 2006 06:10 AM
Spell Checker
Posted: Thu Jul 26, 2007 02:36 PM

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?

Many thanks

Ollie.



Using:

xHarbour Compiler build 1.2.1 (SimpLex) (Rev. 6406)

Borland C++ 5.5.1

FWH 9.04 (2009 Apr)
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Spell Checker
Posted: Thu Jul 26, 2007 06:20 PM

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

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 990
Joined: Thu Nov 17, 2005 05:49 PM
Spell Checker
Posted: Mon Jul 30, 2007 04:59 PM
  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.

Posts: 464
Joined: Tue May 16, 2006 07:47 AM
Spell Checker
Posted: Wed Aug 01, 2007 12:00 PM

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

Posts: 990
Joined: Thu Nov 17, 2005 05:49 PM
Spell Checker
Posted: Wed Aug 01, 2007 07:12 PM

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.

Posts: 3022
Joined: Fri Oct 07, 2005 01:45 PM
Spell Checking memo
Posted: Wed Aug 01, 2007 07:40 PM

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

Tim Stone
http://www.MasterLinkSoftware.com
http://www.autoshopwriter.com
timstone@masterlinksoftware.com
Using: FWH 23.10 with Harbour 3.2.0 / Microsoft Visual Studio Community 2022-24 32/64 bit
Posts: 990
Joined: Thu Nov 17, 2005 05:49 PM
Spell Checker
Posted: Fri Jan 18, 2008 04:12 PM

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.

Posts: 3022
Joined: Fri Oct 07, 2005 01:45 PM
Code
Posted: Fri Jan 18, 2008 04:45 PM

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.

Tim Stone
http://www.MasterLinkSoftware.com
http://www.autoshopwriter.com
timstone@masterlinksoftware.com
Using: FWH 23.10 with Harbour 3.2.0 / Microsoft Visual Studio Community 2022-24 32/64 bit
Posts: 566
Joined: Thu Aug 30, 2007 03:40 PM
Spell Checker
Posted: Fri Jan 18, 2008 07:02 PM

Tim, can you send to me?

norberto@windowslive.com

thanks

Posts: 3022
Joined: Fri Oct 07, 2005 01:45 PM
Wintertree Spell Checker
Posted: Fri Jan 18, 2008 07:16 PM
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"
Tim Stone
http://www.MasterLinkSoftware.com
http://www.autoshopwriter.com
timstone@masterlinksoftware.com
Using: FWH 23.10 with Harbour 3.2.0 / Microsoft Visual Studio Community 2022-24 32/64 bit
Posts: 990
Joined: Thu Nov 17, 2005 05:49 PM
Spell Checker
Posted: Fri Jan 18, 2008 10:06 PM
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:
...
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.
Posts: 990
Joined: Thu Nov 17, 2005 05:49 PM
Spell Checker
Posted: Fri Jan 18, 2008 10:52 PM

Sorry. My mistake. All is well.

Everything works just perfectly.

BTW Tim, excellent product! Thank you very much.

Reinaldo.