# File in_memory_dictionary_handler.rb, line 172
  def self.load_dictionary(  dictionary , name , file )
     lemmas = Set.new
     forms = 0
     final  = 0
     lemma_id = ""
     puts "Loading Dictionary : #{ name }"
     #x  = Time.now
     file = IO.readlines(file)
     #@loading_secs += Time.now - x
     line_count = 0 
   #  leemas = file.select{|line| line.start_with?(@@leema_starter) }
     file  = file.select{|line| line.start_with?(";; ") or !line.start_with?(";")  }
    # entries = file.select{|line| !( line.start_with?(@@leema_starter) and line.start_with?(";")) }
    # read_leemas(leemas)
    # read_entries(entries)


     file.each do |line|
       # puts "." unless line_count % 1000
        if line.start_with?(";; ")
           lemma_id = line[3..line.length]
          # Raise Exception If non-unique Lemma ID
            raise ArgumentError.new("Lemma #{lemma_id } in #{name} #{line_count}  isn't unique") if lemmas.member?(lemma_id)
          # Add The New Lemma
           lemmas << lemma_id
        #elsif line.start_with?(";")
        else           
           splited_line =  line.split("\t" , -1)
           raise ArgumentError.new("Entry In #{name} line #{line_count} doesn't have 4 fields ( 3 tabs )") unless splited_line.length == 4   
           de = self.construct_dictionary_entry(splited_line , name, line_count , lemma_id)
           if  dictionary.has_key?(de.entry)
                        dictionary[de.entry] << de
           else 
                 tmp_array = [] 
                 tmp_array << de                 
                 dictionary[de.entry] = tmp_array
            end  
           forms+=1; 
       end
       line_count+=1
    end
  #  file.close() 
       #puts "Time Taken In If"  + @@if_time.to_s
       #puts "Time Taken In Sub"  + @@sub_time.to_s
     
     puts "#{lemmas.size()}  lemmas and " unless lemma_id == ""
     puts("#{dictionary.length}  entries totalizing  #{forms}  forms")
  end