Erwan
- collection load time speed increase by MootPoint
This commit is contained in:
@@ -258,12 +258,22 @@ int MTGAllCards::load(const char * config_file, const char * set_name,int autolo
|
|||||||
const int set_id = set_name ? setlist.Add(set_name) : MTGSets::INTERNAL_SET;
|
const int set_id = set_name ? setlist.Add(set_name) : MTGSets::INTERNAL_SET;
|
||||||
MTGSetInfo *si = setlist.getInfo(set_id);
|
MTGSetInfo *si = setlist.getInfo(set_id);
|
||||||
|
|
||||||
std::ifstream setFile(config_file);
|
std::ifstream setFile(config_file, ios::in | ios::ate);
|
||||||
if (!setFile) return total_cards;
|
if (!setFile) return total_cards;
|
||||||
|
|
||||||
|
streampos fileSize = setFile.tellg();
|
||||||
|
setFile.seekg(0, ios::beg);
|
||||||
|
|
||||||
|
std::vector<char> textVector;
|
||||||
|
textVector.resize((std::vector<char>::size_type) fileSize);
|
||||||
|
setFile.read(&textVector[0], fileSize);
|
||||||
|
|
||||||
|
std::stringstream stream(std::string(textVector.begin(), textVector.end()));
|
||||||
|
|
||||||
string s;
|
string s;
|
||||||
|
|
||||||
while (true) {
|
while (true) {
|
||||||
if (!std::getline(setFile, s)) return total_cards;
|
if (!std::getline(stream, s)) return total_cards;
|
||||||
if (!s.size()) continue;
|
if (!s.size()) continue;
|
||||||
|
|
||||||
if (s[s.size()-1] == '\r') s.erase(s.size()-1); // Handle DOS files
|
if (s[s.size()-1] == '\r') s.erase(s.size()-1); // Handle DOS files
|
||||||
|
|||||||
Reference in New Issue
Block a user