#include "istream/stream.h" #include "util/base64.h" #include "util/query.h" #include #include std::string get(const std::string& path, std::size_t offset, std::size_t length) { dictzip::Istream stream(path.c_str()); std::string result; result.resize(length); stream.seekg(offset); stream.read(result.data(), length); return result; } int main() { // Get location of _Accession_ const std::string line = dictzip::get_line_starting_with("gcide.index", "Accession"); // Decode location of _Accession_ // `gcide.index[1089]: "Accession 8Aw Wt" const std::size_t offset = dictzip::base64_decode(dictzip::get_encoded_offset(line)); const std::size_t length = dictzip::base64_decode(dictzip::get_encoded_length(line)); // Print the GCIDE definition of _Accession_ std::cout << get("gcide.dict.dz", offset, length) << std::endl; }