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