The fact that he hasn't used a single piece of regex in the code should make you ask him a lot of questions about why he did write like that.
Maybe he's Jamie Zawinski or a fan and he didn't want to have more problems?
I'm not necessarily saying that the whole parsing should be a huge amount of unreadable CSV parsing regex like ("([^"]*|"{2})*"(,|$))|"[^"]*"(,|$)|[^,]+(,|$)|(,) or one of the many similar regex around, but at least to traverse the lines or instead of using substring().