Michael Linfield wrote: > If I'm understanding you correctly, you have lets say an array of keys > you want to find in a file. > > fileKeys = ["key1","key44","key5"] > > lets just say the file contains a bunch of useless jargon and some keys: > > testfile.txt # > > stuff > more stuff > key5 > useless junk > more useless junk > not a key > key44 > > > Ok, now lets read that file and put the keys in an array called results > > results = [] > > IO.foreach("testfile.txt") {|x| results << x.chomp} > => nil > > Now we compare the arrays to find any matches > > results&fileKeys > => ["key5","key44"] > > Regards, > > - Mac Hi, Mac My program is not that complex though. The file has format like this: C:\Documents and Settings\cheynel\Desktop\p001hello.txt,puts C:\Documents and Settings\cheynel\Desktop\hello.rb,print C:\Documents and Settings\cheynel\Desktop\04.rb,Thank C:\Documents and Settings\cheynel\Desktop\read.rb,print C:\Documents and Settings\cheynel\Desktop\class.rb,class C:\Documents and Settings\cheynel\Desktop\reg.rb,cheyne So, basically, each line has 2 arguments,which is seperated by "," the first argument is the location of the test fils, and the second one is the key word to match corresponding the file. such as, "puts" is need to be found in poo1hello.txt, not need to be found in hello. Well, the problem is solved, I found the string read in from a file will automatically attached with something, which I'm quite sure if it is newline. but use str.chop! will solve it. Anyway, Thank you for your reply -- Posted via http://www.ruby-forum.com/.