> On 09.05.2016, at 23:00, Joseph Alotta <[email protected]> wrote:
> 
> I don’t think any of the solutions work for my case.
> 
> I want to evaluate several different variable for each step, make 
> calculations and if all of the conditions are met, then skip to the next 
> item, otherwise, do the next step of calculations.
> 
> The project is reading comma deliminated bank or credit card files, taking a 
> column of data, counting various characters, and trying to determine what 
> kind of data it is.  For example, a column of data with two slash characters 
> and eight digits per line is likely to be a date field.  A column of data 
> with more than 3 letter characters and a percentage of digits and a 
> percentage of hash signs is likely to be a payee field.  A column of data 
> with no spaces, no digits, no special characters is likely to be a type of 
> transaction field.  A column of data with one period per item, and only 
> digits or a minus sign is  likely to be a amount field, and a column of data 
> with a high percentage of zero length items and the rest having C or K and a 
> pound sign and four or more digits is likely to be a check number field.
> 
> I am doing a lot of tests for each field and I don’t think the switch is a 
> good fit. 

Sounds like my first suggestion would work then. Create a method 
“processColumn:” that tries to match each pattern and, if successful, reads the 
data and returns.

This should work, but you would have to put a lot of code into one single 
method, which is bad style. Better to have a set of parsing methods (e.g. 
parseAsDate:, parseAsPayee: etc) that would return true if they succeeded, and 
if not, the next one would be tried.

And instead of having a couple of methods you could have a couple of parser 
classes that each would try to parse the item. You would put the parsers in a 
collection and try each of them until one successfully parsed. This would 
probably be the most object-oriented solution.

- Bert -



Attachment: smime.p7s
Description: S/MIME cryptographic signature

_______________________________________________
Beginners mailing list
[email protected]
http://lists.squeakfoundation.org/mailman/listinfo/beginners

Reply via email to