bool MyFb2File::GetGenres(string_array &genres) { bool retVal = false; int pos = 0; if (m_titleInfo.length() == 0) { m_titleInfo = GetXmlTag(titleInfoTag, pos); } if (m_titleInfo.length() == 0) { return retVal; } genres.clear(); pos = 0; QString curGenre = tr(""); while ((curGenre = GetXmlTag(genreTag, m_titleInfo, pos)).length() > 0) { int comma = curGenre.indexOf(','); if (comma != -1) { int pos = 0; QString g = tr(""); while ((comma = curGenre.indexOf(',', pos)) != -1) { int beg = pos, end = comma; while (curGenre.mid(beg, 1) == tr(" ")) { beg++; } while (curGenre.mid(end - 1, 1) == tr(" ")) { end--; } if ((end - beg) > 0) { g = curGenre.mid(beg, end - beg); genres.push_back(Utf8toAnsi(g)); } pos = comma + 1; } int beg = pos, end = curGenre.length(); while (curGenre.mid(beg, 1) == tr(" ")) { beg++; } while (curGenre.mid(end - 1, 1) == tr(" ")) { end--; } if ((end - beg) > 0) { g = curGenre.mid(beg, end - beg); genres.push_back(Utf8toAnsi(g)); } } else { genres.push_back(Utf8toAnsi(curGenre)); } retVal = true; } return retVal; }