On Thu, 2 Mar 2000, Michael A. Schoen wrote:

> I'm trying to use aspell as a library in an application. I understand that the C 
>library is currently under construction, but I'm wondering if it's still possible to 
>use aspell as a library in a C++ application.
> 
> I've tried going through aspell.cc, but I'm having trouble -- in particular I'm 
>pretty unfamiliar with the use of templates.
> 
> My use of aspell will be of the most trivial kind. All I need to do is to spell 
>check a string, and get back an array of strings of the incorrectly spelled words. My 
>goal is actually to include this in a Java application (using the native interface), 
>so my usage would look like...
> 
>     Aspell aspell = new Aspell(); // instantiates a "manager" component, and does 
>whatever initialization is required.
> 
>     ...
> 
> 
>     String foo = "this is a stringg I want to check";
>     String[] errors = aspell.check(foo);
> 
> And in this case errors would have 1 element, of the string "stringg".
> 
> Does anyone have any simple sample code I could leverage to accomplish this?

This should work:

#include <iostream>

#include <aspell/manager.hh>
#include <aspell/check.hh>
#include <aspell/config.hh>
#include <aspell/clone_ptr-t.hh>

int main() {
  using namespace aspell;

  Manager manager("");
  CheckState<string::const_iterator> state(manager);

  string line;
  vector<string> errors;

  getline(cin, line);
  line += '\n';

  state.restart(line.begin(), line.end());
  // initializes the state with the string
  // needs to be done when ever the string changed.

  while (state.advance(), 
         // advanced the state from the last error or from the beggining
         check(state), 
         // checks the string stopping at the next error
         !state.at_end()
         // it the state is at the end there are no more errors
         ) 
    {
      errors.push_back(state.word());
    }

  // print out all the errors.
  for (int i = 0; i != errors.size(); ++i) {
    cout << errors[i] << "\n";
  }

}


When compiling remember to link it with the aspell library using "-laspell".
The CheckState stuff is not very stable so be aware that this may change
a bit between releases.  Let me know if you have any other problems.

---
Kevin Atkinson
[EMAIL PROTECTED]
http://metalab.unc.edu/kevina/


_______________________________________________
aspell-user mailing list
[EMAIL PROTECTED]
http://lists.sourceforge.net/mailman/listinfo/aspell-user

Reply via email to