2007/7/12, Marc Hoeppner <marc.hoeppner / molbio.su.se>: > Hi again, > > still on my quest to learn ruby ;) And yet another question - more a > general "how-to-approach" thing, though. > > Let's say I have a text file with a number of rows (it's a molecular > sequence alignment, so each row = one sequence). > I am only interested in those columns in which a certain character > appears - no matter whether in all row or only one. The whole column > should then be puts'ed. > > After thinking about it for a moment, my idea was to store each row in > an array, check each array position for the presence of that particular > character and, if it is, found, to puts this array field [n] and the > corresponding field from all other arrays. Now, there are a couple of > potential problems such as hitting the same column multiple times > because I search multiple arrays... But anyways, since I am rather new > to programming and ruby in particular, that will take me a while - so I > was wondering if there is a more elegant/efficient approach to this, > before I waste my time on this only to find out it doesnt work or could > be done more efficiently (wasted quite some time on another program the > other day only to find out that it can be done with grep...yuck). I'm missing one crucial bit of information: can your files grow so large that they do not fit into memory? If that's the case you need a two or more phased approach. Kind regards robert