I am not sure how to fix this error. Any help will be appreciated.

Thanks

PS. The message sent early. Sorry about that

On Mon, Jul 18, 2011 at 4:08 PM, Jimmy G Lafontaine Rivera <laf...@gmail.com
> wrote:

> Hi, I have been unable to run a program correctly. I need the program to
> take a molecule from a SMILES string a perform a substructure search on it.
> I get the following error: "Access violation reading location 0x0081ffff". I
> am not sure if the problem was on the installation of the libraries or it's
> on the code. The program compiles properly, this is the code (it is taken
> from the examples):
>
>
> #include "stdafx.h"
> #include <stdio.h>
> #include <openbabel/parsmart.h>
> #include <openbabel/mol.h>
> #include <openbabel/atom.h>
> #include <openbabel/obconversion.h>
>
> using namespace OpenBabel;
>
> int main()
> {
>
> // Create an OBConversion object.
>  OBConversion conv;
> // Set the input format.
> if (!conv.SetInFormat("inchi")) {
>  // Handle error.
> return 1;
> }
>
> // Create the OBMol object.
> OBMol mol;
>
> // Read the smiles string.
>  if (conv.ReadString(&mol, "1S/C2H2O3/c3-1-2(4)5/h1H,(H,4,5)")) {
>  //Always got error on this //line, but when I switched the input format to
> inchi the error moved to the line with sp.Init("CC");
>  // Handle error.
> return 1;
> }
>  std::cerr << mol.NumAtoms();
>
> OBAtom* atom;
>  // Create a SMARTS pattern of a phenyl ring
> OBSmartsPattern sp;
> sp.Init("CC");        // Error is now obtained after the execution of this
> line
>  // Properties of the substructure
> if (sp.IsValid())
> {
>    std::cout << sp.NumAtoms();
>    std::cout << sp.NumBonds();
>    //std::cout << sp.GetSmarts();
> }
> // Matching
>  (bool) sp.Match(mol, true);  // Single matching
> (bool) sp.Match(mol, false); // Complete matching
>  // Substructure mapping
> std::vector<std::vector<int> > mapListA;
>  mapListA = sp.GetMapList(); // Non-unique matches
> std::vector<std::vector<int> > mapListU;
>  mapListU = sp.GetUMapList(); // Unique matches
> for (int m(0); m < mapListU.size(); ++m)
>  {
>    std::cout << "Unique match " << m << std::endl;
>    for (int a(0); a < mapListU[m].size(); ++a)
>    {
>   atom = mol.GetAtom(mapListU[m][a]);
>   std::cout << atom->GetAtomicNum() << std::endl;
>    }
> }
>  return 0;
> }
>
>
>
>
------------------------------------------------------------------------------
Storage Efficiency Calculator
This modeling tool is based on patent-pending intellectual property that
has been used successfully in hundreds of IBM storage optimization engage-
ments, worldwide.  Store less, Store more with what you own, Move data to 
the right place. Try It Now! http://www.accelacomm.com/jaw/sfnl/114/51427378/
_______________________________________________
OpenBabel-discuss mailing list
OpenBabel-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openbabel-discuss

Reply via email to