Mailing List Archive: 49091 messages
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

[REBOL] Re: Confusion about foreach

From: carlos::lorenz::gmail::com at: 17-Mar-2006 12:46

Steven Maybe you should use copy/part to get the leftmost part of the string and then test it See: TEST-FILE: [ "1this is record one" "2this is record two" "3this is one of many type 3 records" "3this is one of many type 3 records" "4this is the record we want" "9this is some ending record" ]
>> print copy/part TEST-FILE/5 1
4 2006/3/17, Steven White <swhite-ci.bloomington.mn.us>:
> > There must be some simple little thing I don't understand about foreach, > or about conditions, and I am wondering if someone can explain. I have > isolated the problem into a test script at the end of this message. > > The thing I am trying to program is: > > I have a text file containing several types of fixed-format records. > It is for transferring money to the bank. A type of record is > identified by a single digit in the first character position of the > record. In the file, there is one particular record I want to find, > the only one with a particular record type code in the first position (a > trailer record, but not the last record in the file, so I can't just use > "last.") > > So, I read the file into memory with read/lines. Each line becomes a > string. I loop through the block of strings (lines) and check the first > character of each. When I find the record type (first character) I am > looking for, I save that record in another place so I can examine it > more detail later in the program. > > In the following test script, if you run it, you see that "print > TEST-RECORD/1" is executed and displays the first character of every > record. BUT, HOLD-TEST-RECORD never gets set to anything (besides its > initial value of a null string) and "print 'We found record type 4'" > never is executed. So that condition of 'if TEST-RECORD/1 = "4"' is > never true. > > What am I doing wrong? It looks so obviously correct. I read the > manual, and I am "sure" I have seen code like that before. > > Thank you. > > ;;;; test script > REBOL [ > ] > > TEST-FILE: [ > "1this is record one" > "2this is record two" > "3this is one of many type 3 records" > "3this is one of many type 3 records" > "4this is the record we want" > "9this is some ending record" > ] > > HOLD-FOUND-RECORD: copy "" > > foreach TEST-RECORD TEST-FILE [ > print TEST-RECORD/1 > if TEST-RECORD/1 = "4" [ > HOLD-FOUND-RECORD: copy TEST-RECORD > print "We found record type 4" > ] > ] > > print rejoin ["HOLD-FOUND-RECORD=" HOLD-FOUND-RECORD] > > ;;;; end of test script > > Steven White > City of Bloomington > 1800 W Old Shakopee Rd > Bloomington MN 55431-3096 > USA > 952-563-4882 (voice) > 952-563-4672 (fax) > steven.white-ci.bloomington.mn.us > -- > To unsubscribe from the list, just send an email to > lists at rebol.com with unsubscribe as the subject. >
-- *:-.,_,.-:*'``'*:-.,_,.-: Carlos Lorenz *:-.,_,.-:*'``'*:-.,_,.-: