Thanks for all the help.
I like the idea of having the code sense the format of the data and acting accordingly.
For separators, I could count the number of each kind of separators in the file and compare it to the number of lines. Say 3 or more separators per line.
Then I can parse by columns and look for the dominant data type. For a column that is 60% matching a date type, I can assume it is a date column and the mismatches are headers.
The amount should be numeric.
The payee should be mostly letters, etc.
One issue I have is knowing what to call the object that does this. It would not be a Transaction, because this is a function of many Transactions.
FileLoader? FileAnalyzer?
Also, at this point I should be looking for missing dates and duplicates.
Duplicates are troublesome, since everytime I download the file, it starts from the beginning of the year again. I keep downloading them because I think they will only keep data for 6 months or so.
Also duplicate transactions are valid. Suppose I go into a coffee shop and buy a cup of coffee, then go back the same day, same store for a refill.
Your thoughts?
Sincerely,
Joe.