Well I don't know that much about VB (I assume that's VB, if not, it just shows how little I know), but from what I can tell, I don't see any glaring errors in your algorithm. You could try reading the lines one at a time inside the loop, which would use less memory, but I don't know if that would speed things up or not. (and it might actually slow things down...) However, if performance is unacceptable, the fault is probably with some of the built-ins you're calling. Perhaps someone who knows the language better could suggest some more performant alternatives.
However, the standard table file format was designed with small character sets in mind. Shift-JIS is huge and you might be better off using a dedicated character encoding library if you have to handle it a lot. If you can find one to which it's easy to add your own encodings, retaining traditional table file support should be easy as well.