Joe,
At each test for the type of data you can also test to see if you found type,
something like
this:
stream := ReadStream on: myCollection.
[stream atEnd] whileFalse: [:item | | notFound |
item := stream next.
notFound := true.
(notFound and: [your column test1]) ifTrue: [notFound := false.
stream upToEnd].
(notFound and: [your column test2]) ifTrue: [notFound := false.
stream upToEnd].
(notFound and: [your column test3]) ifTrue: [notFound := false.
stream upToEnd].
].
Not pretty but it should work. You should also look into the #caseOf: method
Bert suggested. I
have my own Case class in VA Smalltalk that I expect is similar but I'm not
familiar with
#caseOf:, so you should look it up. I expect it will make the code a little
cleaner.
Lou
On Tue, 10 May 2016 08:57:03 -0700 (PDT), Joseph Alotta
<[email protected]> wrote:
>Lou,
>
>I was trying to use the ReadStream, but the issue is to get execution to go
>back to the top. If I send the upToEnd message, it still executes from the
>same line and goes through the rest of the tests.
>
>
>Sincerely,
>
>Joe.
>
>
>
>> On May 9, 2016, at 3:56 PM, Louis LaBrunda [via Smalltalk]
>> <[email protected]> wrote:
>>
>> Hi Joe,
>>
>> You can map your collection to a stream and then use the stream methods to
>> traverse the
>> collection.
>>
>> stream := ReadStream on: myCollection.
>> [stream atEnd] whileFalse: [:item |
>> item := stream next.
>> "I'm not sure upToEnd is the right method here but it is close. Look
>> around, I'm sure you will
>> find what you need."
>> item doSomeWork.
>> (when you think you are done with item) ifTrue: [stream
>> upToEnd].
>> ].
>>
>> Lou
>>
>> On Mon, 9 May 2016 16:00:58 -0500, Joseph Alotta <[hidden email]> 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.
>> >
>> >Sincerely,
>> >
>> >Joe.
>> --
>> Louis LaBrunda
>> Keystone Software Corp.
>> SkypeMe callto://PhotonDemon
>>
>> _______________________________________________
>> Beginners mailing list
>> [hidden email]
>> http://lists.squeakfoundation.org/mailman/listinfo/beginners
>>
>>
>> If you reply to this email, your message will be added to the discussion
>> below:
>> http://forum.world.st/next-or-break-in-a-loop-tp4894095p4894128.html
>> To start a new topic under Squeak - Beginners, email
>> [email protected]
>> To unsubscribe from Squeak - Beginners, click here.
>> NAML
--
Louis LaBrunda
Keystone Software Corp.
SkypeMe callto://PhotonDemon
_______________________________________________
Beginners mailing list
[email protected]
http://lists.squeakfoundation.org/mailman/listinfo/beginners