Author: Robert Hyatt
Date: 07:00:35 04/08/05
Go up one level in this thread
On April 08, 2005 at 00:23:15, Tor Alexander Lattimore wrote: >Hi >First, is it alright to use enormous.pgn for a book? Secondly, i've been trying >to parse it recently and my program seems to be doing fine until about 300,000 >games where it just returns EOF. I've tried opening and reading from other large >files and get the same problem. Initially I tried using C++'s <iostream> >library, but when that didn't work I tried standard C fopen() and fgetc() with >no more success. The file is 900 MB, so shouldn't be a problem where windows >does strange stuff with 2GB or > files. > >Below is some very cut down code that returns EOF long before the file is >through. >/* >pgn_in is a string to the pgn file. >this program will return EOF after about 360,000 games >*/ > int games=0; > string input; > ifstream pgn_in(pgn_file.c_str()); > while (!pgn_in.eof()) > { > pgn_in >> input; > if (input=="[Event") games++; > } > book_out.close(); > pgn_in.close(); > cout << games << "\n"; > return true; > >Anyone have any ideas? The same code as above works just fine in my Gentoo Linux >system, but not Windows XP home. >cheers >Tor One idea... you need to recognize that some software produces PGN games that are "broken". For example, an opening { but no closing }. You can catch this by picking up on the next PGN header which will start with [ sometag ... ] That sounds like what is happening.
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.