void readCoorFile( const char *file, std::list<AtomRecord> *records) { static char error[1024]; if(strstr(file,".pdb") || strstr(file,".PDB")) { readPDBFile(file,records); } else if(strstr(file,".xyz") || strstr(file,".XYZ") ) { readXYZFile(file,records); } else { sprintf(error,"readCoorFile: unknown file format of %s\n" " Only *.pdb and *.xyz files are supported",file); throw error; } }
System* MolecularFileDialog::openMolecularFile(const String& filename, const String& filetype, const String& system_name) { bool ok = false; try { if (File::isReadable(filename)) ok = true; } catch(...) {} if (!ok || filename == "/" || filename == "\\") { setStatusbarText((String)tr("Could not open file") + " " + filename, true); return 0; } // TODO substitue by GenericMolFile* file = MolFileFactory::open(filename); if (filetype.hasSubstring("pdb") || filetype.hasSubstring("PDB") || filetype.hasSubstring("brk") || filetype.hasSubstring("BRK") || filetype.hasSubstring("ent") || filetype.hasSubstring("ENT")) { return readPDBFile(filename, system_name); } else if (filetype.hasSubstring("HIN") || filetype.hasSubstring("hin")) { return readHINFile(filename, system_name); } else if (filetype.hasSubstring("MOL2") || filetype.hasSubstring("mol2")) { return readMOL2File(filename, system_name); } else if (filetype.hasSubstring("MOL") || filetype.hasSubstring("mol")) { return readMOLFile(filename, system_name); } else if (filetype.hasSubstring("SDF") || filetype.hasSubstring("sdf")) { return readSDFile(filename, system_name); } else if (filetype.hasSubstring("AC") || filetype.hasSubstring("ac")) { return readACFile(filename, system_name); } else if (filetype.hasSubstring("XYZ") || filetype.hasSubstring("xyz")) { return readXYZFile(filename, system_name); } else { setStatusbarText(String(tr("Unknown filetype")) + ": " + filetype, true); } return 0; }