Index: lib/bio/io/flatfile.rb =================================================================== RCS file: /home/repository/bioruby/bioruby/lib/bio/io/flatfile.rb,v retrieving revision 1.48 retrieving revision 1.49 diff -u -r1.48 -r1.49 --- lib/bio/io/flatfile.rb 3 Mar 2006 09:31:57 -0000 1.48 +++ lib/bio/io/flatfile.rb 22 Mar 2006 10:19:22 -0000 1.49 @@ -5,7 +5,7 @@ # # License:: Ruby's # -# $Id: flatfile.rb,v 1.48 2006/03/03 09:31:57 ngoto Exp $ +# $Id: flatfile.rb,v 1.49 2006/03/22 10:19:22 ngoto Exp $ # # # Bio::FlatFile is a helper and wrapper class to read a biological data file. @@ -261,6 +261,9 @@ # the last entry read from the stream attr_reader :entry + # a flag to write down entry start and end positions + attr_accessor :entry_pos_flag + # start position of the entry attr_reader :entry_start_pos @@ -289,6 +292,7 @@ end end @delimiter_overrun = klass::DELIMITER_OVERRUN rescue nil + @entry_pos_flag = nil end # (String) delimiter indicates the end of a entry. @@ -329,7 +333,7 @@ # gets a entry def get_entry - p0 = @stream.pos + p0 = @entry_pos_flag ? @stream.pos : nil e = @stream.gets(@delimiter) if e and @delimiter_overrun then if e[-@delimiter.size, @delimiter.size ] == @delimiter then @@ -338,7 +342,7 @@ @stream.ungets(overrun) end end - p1 = @stream.pos + p1 = @entry_pos_flag ? @stream.pos : nil @entry_start_pos = p0 @entry = e @entry_ended_pos = p1 @@ -586,6 +590,16 @@ @splitter.entry end + # a flag to write down entry start and end positions + def entry_pos_flag + @splitter.entry_pos_flag + end + + # Sets flag to write down entry start and end positions + def entry_pos_flag=(x) + @splitter.entry_pos_flag = x + end + # start position of the last entry def entry_start_pos @splitter.entry_start_pos Index: lib/bio/io/flatfile/indexer.rb =================================================================== RCS file: /home/repository/bioruby/bioruby/lib/bio/io/flatfile/indexer.rb,v retrieving revision 1.23 retrieving revision 1.24 diff -u -r1.23 -r1.24 --- lib/bio/io/flatfile/indexer.rb 22 Feb 2006 08:41:03 -0000 1.23 +++ lib/bio/io/flatfile/indexer.rb 22 Mar 2006 10:19:22 -0000 1.24 @@ -4,7 +4,7 @@ # Copyright:: Copyright (C) 2002 GOTO Naohisa # License:: Ruby's # -# $Id: indexer.rb,v 1.23 2006/02/22 08:41:03 ngoto Exp $ +# $Id: indexer.rb,v 1.24 2006/03/22 10:19:22 ngoto Exp $ # require 'bio/io/flatfile/index' @@ -114,6 +114,7 @@ DEBUG.print "fileid=#{fileid} file=#{@flatfilename.inspect}\n" @flatfile = Bio::FlatFile.open(@dbclass, file, 'rb') @flatfile.raw = nil + @flatfile.entry_pos_flag = true @entry = nil end attr_reader :fileid