- Posted by Pete Eberlein <xseal at HARBORSIDE.COM> Aug 13, 1999
- 1763 views
> Given ( as an output from err file when i hit shift-! on the lines below > ) : > datatofind = {19,48'0',48'0',124'|',115's',104'h',101'e',5} > > Why doesn't this line execute?: > if find({" 00|"},{data}) then printf(1,"%s\n", {data} ) end if > > Or this line: > if find(" 00|",{data}) then printf(1,"%s\n", {data} ) end if > > Or this line: > if find(" 00|",data) then printf(1,"%s\n", {data} ) end if > > Or this line: > if ( find({" 00|"},{data}) != 0 ) then printf(1,"%s\n", {data} ) end if > > Or these lines: > StartOfRec = " 00|" > if find(StartOfRec,data) then printf(1,"%s\n", {data} ) end if > > Or any line with {data}/" 00|" written with/without the {}. There is > just nothing, no error, no printing. It traces onto it, then nothing > happens on the other screen when i hit enter. > > The symbol there is a double ! in my editor, i get it by ctrl-s on the > keybd. > > Kat, > bewildered. I believe the function you are looking for is match() instead of find(). Find looks for the first argument in each element of the second argument, while match looks for the first argument as occurring as a slice in the second. Going back to your original example, I would rewrite it as: object data integer datafound sequence datatofind datafound = 0 -- false while not datafound do data = gets( dctstrfile ) if atom( data ) then exit -- end-of-file end if datafound = match( datatofind, data ) end while Later, _______ ______ _______ ______ [ _ \[ _ ][ _ _ ][ _ ] [/| [_] |[/| [_\][/ | | \][/| [_\] | ___/ | _] | | | _] [\| [/] [\| [_/] [\| |/] [\| [_/] [_____] [______] [_____] [______] xseal at harborside.com ICQ:13466657 http://www.harborside.com/home/x/xseal/euphoria/