• # Ruby

    Posté par . En réponse au message parser un fichier texte. Évalué à 1.

    En supposant qu'il n'y a qu'un seul type de cancer:

    fichier 'source.txt':

    sit1, gene1, cancer
    sit1, gene2, cancer
    sit1, gene3, cancer
    sit1, gene4, cancer
    sit1, gene5, cancer
    sit2, gene1, cancer
    sit2, gene2, cancer
    sit2, gene3, cancer
    sit3, gene1, cancer


    fichier 'parser.rb':

    src = open('source.txt') {|io| io.readlines }

    r = Hash.new {|h,k| h[k]=[] }

    src.inject(r) do |h,l|
    sit, *genes = l.split(', ')[0..-2]
    h[sit] << genes
    h[sit].flatten
    h
    end

    r.map {|k,v| puts "#{k}, #{v.join(', ')}, cancer" }